This proposes an alternative approach to the issue described in https://github.com/raspberrypi/firmware/issues/1376.
Instead of fiddling with HobLib internals and relying on headers being included in the correct order, this replaces all DEBUG uses of SerialPortLib with an implementation that doesn't reprogram the UART at all (and so does not need to know the value of the base clock), and updates the two remaining users to query the firmware for the correct value before touching the h/w. NOTE: build tested only. Ard Biesheuvel (5): Platform/RaspberryPi/DualSerialPortLib: split up to ease reuse Platform/RaspberryPi: introduce DebugDualSerialPortLib Platform/RaspberryPi: fix 16550 divisor calculation logic Platform/RaspberryPi3: query firmware for 16550 input clock at boot Platform/RaspberryPi: create DXE phase SerialPortLib version for RPi3 Platform/RaspberryPi/RPi3/RPi3.dsc | 16 +- Platform/RaspberryPi/RPi4/RPi4.dsc | 14 +- .../DebugDualSerialPortLib.inf | 46 ++++ ...alPortLib.inf => DualSerialPortDxeLib.inf} | 30 ++- .../DualSerialPortLib/DualSerialPortLib.inf | 5 +- .../DualSerialPortLib/DualSerialPortLib.h | 82 ++++++ .../DebugDualSerialPortLib.c | 28 ++ .../DualSerialPortLib/DualSerialPortLib.c | 243 +----------------- .../DualSerialPortLibCommon.c | 218 ++++++++++++++++ .../DualSerialPortLibConstructor.c | 40 +++ .../PlatformLib/AArch64/RaspberryPiHelper.S | 25 +- 11 files changed, 494 insertions(+), 253 deletions(-) create mode 100644 Platform/RaspberryPi/Library/DualSerialPortLib/DebugDualSerialPortLib.inf copy Platform/RaspberryPi/Library/DualSerialPortLib/{DualSerialPortLib.inf => DualSerialPortDxeLib.inf} (69%) create mode 100644 Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.h create mode 100644 Platform/RaspberryPi/Library/DualSerialPortLib/DebugDualSerialPortLib.c create mode 100644 Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLibCommon.c create mode 100644 Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLibConstructor.c -- 2.17.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#58629): https://edk2.groups.io/g/devel/message/58629 Mute This Topic: https://groups.io/mt/73999452/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-