[SeaBIOS] [PATCH] searialio: Support for mmap serial ports

Ricardo Ribalda Delgado ricardo.ribalda at gmail.com
Tue Dec 20 18:48:08 CET 2016


Hi Kent

Thanks for your fast response :)

On Tue, Dec 20, 2016 at 5:48 PM, Kevin O'Connor <kevin at koconnor.net> wrote:

>
> Does this chipset hardcode the uart at that memory address or is that
> address part of a PCI BAR?  If it's on a PCI device it would be
> preferable to do a pci scan and find the address.

Seems that it is hardcoded. Check out
https://github.com/coreboot/coreboot/blob/master/src/southbridge/amd/pi/hudson/Kconfig#L232

"""
 There are two UART controllers in Kern.
 The UART registers are memory-mapped. UART
 controller 0 registers range from FEDC_6000h
 to FEDC_6FFFh. UART controller 1 registers
 range from FEDC_8000h to FEDC_8FFFh.
"""
>> -    outb(c, CONFIG_DEBUG_SERIAL_PORT+SEROFF_DATA);
>> +    serial_outb(c, CONFIG_DEBUG_SERIAL_PORT, SEROFF_DATA);
>>  }
>
> The above code (along with serial_debug_flush() ) can be called in
> 16bit mode and writing to a 32bit memory address there can cause
> failures (crashes or memory corruption).  Simplest solution is
> probably to only write to memory if !MODE_SEGMENT - thus providing
> debug support only in 32bit mode (init and boot phases).

Will fix and resend. Thanks!



More information about the SeaBIOS mailing list