[Pdbg] [PATCH v3 00/25] Add sbefifo backend
Amitay Isaacs
amitay at ozlabs.org
Fri Apr 17 17:07:24 AEST 2020
This patch set adds per backend support of hardware drivers. All hardware
drivers are assigned to a specific backend. When looking up a driver
for a target in device tree, first lookup the specific backend and then
the default backend.
All targets in backend device tree, use compatible properties that
describe the hardware access (e.g. ibm,bmcfsi). There is only single
compatible property assigned to targets in backend device trees.
All targets in system device tree, use compatible properties that describe
the hardware (ibm,power9-adu) and can have multiple compatible properties
(e.g. ibm,power9-thread and ibm,power-thread) to load different drivers
based on the backend.
For openbmc, all the hardware access is required to go via sbefifo.
Currently some of the operations are hacked in to go via sbefifo
(e.g. all thread operations). This patchset removes temporary hacks
and adds infrastructure to create sbefifo backend.
Also fix couple of bugs in libsbefifo.
V2 changes:
- Rebased on top of latest master
(resolved conflicts and add missing code due to upstream changes)
V3 changes:
- Compatible properties in system device tree updated as per defined
convetion (mentioned above)
Amitay Isaacs (25):
libsbefifo: Fix compilation error for undefined variable
libsbefifo: Use the correct sized pointer
libpdbg: Add a private api to get current backend
libpdbg: Register hwunit drivers per backend
libpdbg: Use const char * for filenames
libpdbg: Backend device tree cannot be overriden
libpdbg: Register fsi drivers with fsi backend
libpdbg: Register i2c driver with i2c backend
libpdbg: Register kernel drivers with kernel backend
libpdbg: Register fake drivers with fake backend
libpdbg: Register host drivers with host backend
libpdbg: Register cronus drivers with cronus backend
dts: Backend device trees must use specific driver
libpdbg: Rename ibm,processor -> ibm,power-proc
dts: Add a generic compatible property for core and thread
libpdbg: Add sbefifo backend
libpdbg: Add pib driver using sbefifo
libpdbg: Add thread driver using sbefifo
libpdbg: Add all thread procedures to pib target
libpdbg: Implement all thread procedures using sbefifo
libpdbg: Remove special case thread procedures using sbefifo
libpdbg: Drop thread procedures from chipop target
dts: Add sbefifo backend device tree
libpdbg: Enable sbefifo backend
main: Add sbefifo backend
Makefile.am | 1 +
libpdbg/adu.c | 4 +-
libpdbg/bmcfsi.c | 2 +-
libpdbg/cfam.c | 8 +-
libpdbg/chip.c | 64 ++--
libpdbg/cronus.c | 6 +-
libpdbg/dtb.c | 56 +++-
libpdbg/fake.c | 8 +-
libpdbg/host.c | 2 +-
libpdbg/htm.c | 6 +-
libpdbg/hwunit.c | 31 +-
libpdbg/hwunit.h | 10 +-
libpdbg/i2c.c | 2 +-
libpdbg/kernel.c | 4 +-
libpdbg/libpdbg.h | 7 +-
libpdbg/p8chip.c | 4 +-
libpdbg/p9_fapi_targets.c | 52 ++--
libpdbg/p9chip.c | 4 +-
libpdbg/sbefifo.c | 163 ++++++++--
libpdbg/target.h | 1 +
libsbefifo/cmd_scom.c | 4 +-
libsbefifo/operation.c | 5 +-
p8-fsi.dts.m4 | 6 +-
p8-i2c.dts.m4 | 4 +-
p8-kernel.dts.m4 | 4 +-
p8.dts.m4 | 2 +-
p9-fsi.dtsi.m4 | 4 +-
p9-sbefifo.dts.m4 | 86 ++++++
p9.dts | 484 +++++++++++++++---------------
src/main.c | 3 +
tests/test_p9_fapi_translation.sh | 2 +-
31 files changed, 639 insertions(+), 400 deletions(-)
create mode 100644 p9-sbefifo.dts.m4
--
2.25.2
More information about the Pdbg
mailing list