Extend the serial port description to include the input clock frequency and a payload specific value. Without the input frequency it is impossible for the payload to compute the baud-rate divisor without making an assumption about the frequency. This breaks down when the UART is able to support multiple input clock frequencies. Add the UART_PCI_ADDR Kconfig value to specify the unique PCI device being used as the console UART. Specify this value as zero when the UART is not on the PCI bus. Otherwise specify the device using bus, device and function along with setting the valid bit. Currently the only payload to consume these new fields is the EDK-II CorebootPayloadPkg. Testing on Galileo: * Edit the src/mainboard/intel/galileo/Makefile.inc file: * Add "select ADD_FSP_PDAT_FILE" * Add "select ADD_FSP_RAW_BIN" * Add "select ADD_RMU_FILE" * Place the FSP.bin file in the location specified by CONFIG_FSP_FILE * Place the pdat.bin files in the location specified by CONFIG_FSP_PDAT_FILE * Place the rmu.bin file in the location specified by CONFIG_RMU_FILE * Build EDK2 CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc to generate UEFIPAYLOAD.fd * Testing is successful when CorebootPayloadPkg is able to properly initialize the serial port without using built-in values. Change-Id: Id4b4455bbf9583f0d66c315d38c493a81fd852a8 Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com> Reviewed-on: https://review.coreboot.org/14609 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com>
60 lines
1.2 KiB
Text
60 lines
1.2 KiB
Text
config DRIVERS_UART
|
|
bool
|
|
default y if CONSOLE_SERIAL
|
|
default n
|
|
|
|
config DRIVERS_UART_8250IO
|
|
bool "Serial port on SuperIO"
|
|
depends on !ARCH_ARM
|
|
default n if NO_UART_ON_SUPERIO
|
|
default y if ARCH_X86
|
|
|
|
# Select this for mainboard without SuperIO serial port.
|
|
config NO_UART_ON_SUPERIO
|
|
def_bool n
|
|
|
|
config DRIVERS_UART_8250MEM
|
|
bool
|
|
default n
|
|
|
|
config DRIVERS_UART_8250MEM_32
|
|
bool
|
|
default n
|
|
select DRIVERS_UART_8250MEM
|
|
|
|
config HAVE_UART_SPECIAL
|
|
bool
|
|
default n
|
|
|
|
config DRIVERS_UART_OXPCIE
|
|
bool "Oxford OXPCIe952"
|
|
default n
|
|
depends on PCI
|
|
select DRIVERS_UART_8250MEM
|
|
select EARLY_PCI_BRIDGE
|
|
help
|
|
Support for Oxford OXPCIe952 serial port PCIe cards.
|
|
Currently only devices with the vendor ID 0x1415 and device ID
|
|
0xc158 or 0xc11b will work.
|
|
|
|
config DRIVERS_UART_PL011
|
|
bool
|
|
default n
|
|
select HAVE_UART_SPECIAL
|
|
|
|
config UART_USE_REFCLK_AS_INPUT_CLOCK
|
|
bool
|
|
default n
|
|
help
|
|
Use uart_platform_refclk to specify the input clock value.
|
|
|
|
config UART_PCI_ADDR
|
|
hex "UART's PCI bus, device, function address"
|
|
default 0
|
|
help
|
|
Specify zero if the UART is connected to another bus type.
|
|
For PCI based UARTs, build the value as:
|
|
* 1 << 31 - Valid bit, PCI UART in use
|
|
* Bus << 20
|
|
* Device << 15
|
|
* Function << 12
|