Re: 16550 UART Requirement for OS-A Platforms

Jonathan Behrens <behrensj@...>

Could you say a bit more about the OS aspect? Is the idea that an OS must be provided access to a UART, but has the option to ignore it in favor of other I/O methods? I don't think we should allow firmware to block the OS from using the UART, but I'm not sure if that is being proposed


On Mon, Nov 15, 2021 at 3:08 PM Kumar Sankaran via <> wrote:

Hi All,

During our Platform HSC meeting today, one of the topics that came up for discussion was whether we should mandate the 16550 UART for all OS-A platforms and keep this requirement within the “Common Requirements” document that would apply to all OS-A platforms.

I am starting this thread to discuss this topic. Please provide all your feedback in this thread.


Currently, we are mandating the 16550 UART requirement for both the OS-A Embedded and OS-A Server platforms. The goal is for hardware to implement support for the 16550 UART and the low-level bring-up firmware to support this UART as a console. We are not mandating any OS requirements for UART.

Below are some of the reasons for this.

  • All OS-A platforms will need some kind of early console serial port access in boot firmware
  • 16550 UART is a pretty standard UART supported widely. ARM mandates 8250 UART for all servers.
  • To cover the case for OS flavors that won’t have any UART support, we limited this requirement to firmware only.


To give context, the below is the wording we proposed for the UART feature requirement as is mentioned in the spec currently.

2.1.5. System Peripherals UART/Serial Console

In order to facilitate the bring-up and debug of the low level initial platform, hardware is required to implement a UART port that confirms to the following requirements and firmware must support the console using this UART:

  • The UART register addresses are required to be aligned to 4 byte boundaries. If the implemented register width is less than 4 bytes then the implemented bytes are required to be mapped starting at the smallest address.
  • The UART port implementation is required to be register-compatible with one of the following:
    • UART 16550 - MANDATORY
    • UART 8250 - DEPRECATED





Join { to automatically receive all group messages.