Hi, Currently, every platform copies and pastes the diagnostic support for 8250/16x50 compatible UARTs. This is less than ideal, so I've implemented generic support for diagnostics via 8250 UARTs. The platform just needs to provide characteristics of the UARTs (base address, clock frequency, interrupt vector, any quirks for the UART, etc.). As an example, I've converted the ixp4xx hal and the pc hal to use it. A couple of points I could use feedback on: 1. uart_write(), uart_read() may not be sufficiently generic (the .base and .regshift scheme is what the Linux 8250 driver uses so it's probably good for most platforms). Should a mechanism be provided for the platform to provide it's own function to read/write to UART registers? e.g., function pointers in the serial_8250_channel_data_t structure? 2. Regarding the package name: CYGHWR_HAL_COMMON_8250_SERIAL_DIAG since it's hardware related or CYGINT_HAL_COMMON_8250_SERIAL_DIAG since it's an interface? The attached patches are: hal-common-serial-8250-diag: - The generic 8250 diagnostics driver. hal-arm-xscale-ixp4xx-use-generic-diag: - update the ixp4xx HAL to use the generic diagnostics driver. hal-i386-pc-use-generic-diag: - update the pc HAL to use the generic diagnostics driver. David Vrabel -- David Vrabel, Design Engineer Arcom, Clifton Road Tel: +44 (0)1223 411200 ext. 3233 Cambridge CB1 7EA, UK Web: http://www.arcom.com/