public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Ard Biesheuvel" <ard.biesheuvel@arm.com>
To: devel@edk2.groups.io
Cc: leif@nuviainc.com, pete@akeo.ie, andrey.warkentin@gmail.com,
	Ard Biesheuvel <ard.biesheuvel@arm.com>
Subject: [PATCH edk2-platforms 0/5] Platform/RaspberryPi: fix serialportlib dependency hell
Date: Tue,  5 May 2020 16:50:24 +0200	[thread overview]
Message-ID: <20200505145029.29826-1-ard.biesheuvel@arm.com> (raw)

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


             reply	other threads:[~2020-05-05 14:50 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-05 14:50 Ard Biesheuvel [this message]
2020-05-05 14:50 ` [PATCH edk2-platforms 1/5] Platform/RaspberryPi/DualSerialPortLib: split up to ease reuse Ard Biesheuvel
2020-05-06 10:18   ` Pete Batard
2020-05-05 14:50 ` [PATCH edk2-platforms 2/5] Platform/RaspberryPi: introduce DebugDualSerialPortLib Ard Biesheuvel
2020-05-06 10:18   ` Pete Batard
2020-05-05 14:50 ` [PATCH edk2-platforms 3/5] Platform/RaspberryPi: fix 16550 divisor calculation logic Ard Biesheuvel
2020-05-05 18:10   ` Ard Biesheuvel
2020-05-06 10:18     ` [edk2-devel] " Pete Batard
2020-05-06 10:25       ` Ard Biesheuvel
2020-05-05 14:50 ` [PATCH edk2-platforms 4/5] Platform/RaspberryPi3: query firmware for 16550 input clock at boot Ard Biesheuvel
2020-05-05 18:11   ` Ard Biesheuvel
2020-05-06 10:18     ` [edk2-devel] " Pete Batard
2020-05-06 10:31       ` Ard Biesheuvel
2020-05-06 10:38         ` Pete Batard
2020-05-05 14:50 ` [PATCH edk2-platforms 5/5] Platform/RaspberryPi: create DXE phase SerialPortLib version for RPi3 Ard Biesheuvel
2020-05-06 10:19   ` Pete Batard
2020-05-06 16:16 ` [PATCH edk2-platforms 0/5] Platform/RaspberryPi: fix serialportlib dependency hell Ard Biesheuvel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200505145029.29826-1-ard.biesheuvel@arm.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox