Параметры ядра «console» и «earlycon» относятся к старому оборудованию?

Сначала я нашел это, исследуя параметры для earlycon но обнаружил, что параметры для console выглядят почти идентичными. Оба они приведены ниже и взяты из этого источника:

Из документации для console мы имеем:

 console= [KNL] Output console device and options. tty<n> Use the virtual console device <n>. ttyS<n>[,options] ttyUSB0[,options] Use the specified serial port. The options are of the form "bbbbpnf", where "bbbb" is the baud rate, "p" is parity ("n", "o", or "e"), "n" is number of bits, and "f" is flow control ("r" for RTS or omit it). Default is "9600n8". See Documentation/serial-console.txt for more information. See Documentation/networking/netconsole.txt for an alternative. uart[8250],io,<addr>[,options] uart[8250],mmio,<addr>[,options] uart[8250],mmio16,<addr>[,options] uart[8250],mmio32,<addr>[,options] uart[8250],0x<addr>[,options] Start an early, polled-mode console on the 8250/16550 UART at the specified I/O port or MMIO address, switching to the matching ttyS device later. MMIO inter-register address stride is either 8-bit (mmio), 16-bit (mmio16), or 32-bit (mmio32). If none of [io|mmio|mmio16|mmio32], <addr> is assumed to be equivalent to 'mmio'. 'options' are specified in the same format described for ttyS above; if unspecified, the h/w is not re-initialized. hvc<n> Use the hypervisor console device <n>. This is for both Xen and PowerPC hypervisors. If the device connected to the port is not a TTY but a braille device, prepend "brl," before the device type, for instance console=brl,ttyS0 For now, only VisioBraille is supported. 

Из документации для earlycon мы имеем:

 earlycon= [KNL] Output early console device and options. When used with no options, the early console is determined by the stdout-path property in device tree's chosen node. cdns,<addr> Start an early, polled-mode console on a cadence serial port at the specified address. The cadence serial port must already be setup and configured. Options are not yet supported. uart[8250],io,<addr>[,options] uart[8250],mmio,<addr>[,options] uart[8250],mmio32,<addr>[,options] uart[8250],mmio32be,<addr>[,options] uart[8250],0x<addr>[,options] Start an early, polled-mode console on the 8250/16550 UART at the specified I/O port or MMIO address. MMIO inter-register address stride is either 8-bit (mmio) or 32-bit (mmio32 or mmio32be). If none of [io|mmio|mmio32|mmio32be], <addr> is assumed to be equivalent to 'mmio'. 'options' are specified in the same format described for "console=ttyS<n>"; if unspecified, the h/w is not initialized. pl011,<addr> pl011,mmio32,<addr> Start an early, polled-mode console on a pl011 serial port at the specified address. The pl011 serial port must already be setup and configured. Options are not yet supported. If 'mmio32' is specified, then only the driver will use only 32-bit accessors to read/write the device registers. meson,<addr> Start an early, polled-mode console on a meson serial port at the specified address. The serial port must already be setup and configured. Options are not yet supported. msm_serial,<addr> Start an early, polled-mode console on an msm serial port at the specified address. The serial port must already be setup and configured. Options are not yet supported. msm_serial_dm,<addr> Start an early, polled-mode console on an msm serial dm port at the specified address. The serial port must already be setup and configured. Options are not yet supported. smh Use ARM semihosting calls for early console. s3c2410,<addr> s3c2412,<addr> s3c2440,<addr> s3c6400,<addr> s5pv210,<addr> exynos4210,<addr> Use early console provided by serial driver available on Samsung SoCs, requires selecting proper type and a correct base address of the selected UART port. The serial port must already be setup and configured. Options are not yet supported. lpuart,<addr> lpuart32,<addr> Use early console provided by Freescale LP UART driver found on Freescale Vybrid and QorIQ LS1021A processors. A valid base address must be provided, and the serial port must already be setup and configured. armada3700_uart,<addr> Start an early, polled-mode console on the Armada 3700 serial port at the specified address. The serial port must already be setup and configured. Options are not yet supported. 

Примером использования является:

earlycon=uart8250,0x21c0500

Мои вопросы:

  • Почему существует ссылка на физическое оборудование 8250/16550 ? Имеет ли эта старая реализация форму в спецификации интерфейса для современных проектов? То есть, мы все еще используем драйверы для UART, которые были совместимы, когда эти коммуникационные устройства были внешними по отношению к SoC?

  • Если MMIO – это MOPI с памятью , то что такое «нормальный» IO, ссылающийся на этот контекст?

  • Что такое параметр <addr> ? Является ли это началом регистров конфигурации UART для конкретного SoC, на котором вы запускаете это ядро? Большинство регистров конфигурации UART соответствуют конкретному макету регистра, так что общий драйвер UART может соответствующим образом настроить аппаратное обеспечение?

One Solution collect form web for “Параметры ядра «console» и «earlycon» относятся к старому оборудованию?”

Я уверен, что кто-то все еще делает это, но еще в те дни, прежде чем такие вещи, как ILO / DRAC / и т. Д. стал дешевым и ubiquitios лучшим способом получить «вне диапазона» доступ к консоли в случае чрезвычайных ситуаций или упс был через последовательный порт. Вы должны установить сервер терминалов в стойку, а затем подключить кабели к последовательному порту ваших серверов. Некоторые BIOS поддерживают перенаправление консоли на последовательный порт (например, VA Linux и SuperMicro-серверы в 1999+).

8250/16550 UARTS были одними из самых популярных чипов последовательного порта в то время, что означает, что они будут лучше всего поддерживаться в Linux, и все они использовали драйвер ядра 8250 (в этой серии было еще много моделей, которые использовали все тот же драйвер).

Я подозреваю, что много проектов SoC, предназначенных для использования в Linux совместимых с UL-совместимыми моделями 8250/16550, потому что это была простая кнопка – хорошо документированный и хорошо протестированный драйвер. Хотя, надеюсь, они построили более поздние версии многобайтовых буферов (конечно, даже «медленные» процессоры по сегодняшним стандартам могут обслуживать серийное прерывание гораздо чаще, чем последовательный порт 115 тыс., Который может получить его. IIRC у Mac был последовательный порт, используемый для локального / Apple Talk (Не могу вспомнить, какой был протокол, а также аппаратное обеспечение), который сделал 248k. Тем не менее, это было тогда, когда процессоры сделали 60 МГц.

Вероятно, это лучший ответ на разницу между MMIO и портами ввода-вывода: https://en.wikipedia.org/wiki/Memory-mapped_I/O. Я недостаточно понимаю этот уровень, чтобы его сварить.

Вышеупомянутая ссылка, вероятно, ответит на то, что для этих целей, но в основном это адрес памяти.

  • Какова связь между UART и tty?
  • Определить, какой драйвер загружен для подключенного чипа UART?
  • Linux и Unix - лучшая ОС в мире.