[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH 00/31] PPC: mpc8544ds: Create device tree dynamically
From: |
Alexander Graf |
Subject: |
[Qemu-ppc] [PATCH 00/31] PPC: mpc8544ds: Create device tree dynamically |
Date: |
Tue, 19 Jun 2012 21:14:53 +0200 |
Today we have two separate places where we keep information which device
is where:
- hw/ppce500_mpc8544ds.c to instantiate all devices
- pc-bios/mpc8544ds.dtb as device tree to tell the guest about devices
Every time we split crucial information, things can go terribly wrong. If
you update one file, but not the other, you can screw things up without
realizing it quickly.
The redundancy is also unnecessary, because QEMU already knows all the
information at which addresses its devices live. So we can generate the
device tree from the same variables - and even have the device tree adjust
if something changes in there.
The one functionality we lose with this approach is the ability to manually
patch the device tree to contain additional devices. To still be able to do
so easily, we introduce a new option -machine dumpdtb=<file> that creates a
dtb output file which can be used with -machine dtb=<file> later. In between
these 2 executions of QEMU, the dtb can be modified however much you like.
A lot of bits in this patch set are still hardcoded. We also don't accomodate
for dynamic creation of device tree nodes when -device is used. This requires
a bit more QOM'ification for us to be able to loop through all devices, so we
can dynamically create the device tree nodes for them. The basic concept should
still hold as is though.
Alex
v1 -> v2:
- rename cell64 -> u64
- don't treat memory as single u64
- remove commit id from patch description
- NEW: PPC: e500: Use new MPIC dt format
PPC: e500: Use new SOC dt format
PPC: e500: Define addresses as always 64bit
PPC: e500: Extend address/size of / to 64bit
dt: Add global option to set phandle start offset
PPC: e500: Refactor serial dt generation
v2 -> v3:
- [phandle helper] rename "string" to target_node_path
- [phandle helper] add correct header includes
- use snprintf
- create and use new multi-cell setting api
Alexander Graf (31):
dt: allow add_subnode to create root subnodes
dt: add helpers for multi-cell adds
dt: add helper for phandle references
dt: temporarily disable subtree creation failure check
dt: add helper for phandle enumeration
dt: add helper for empty dt creation
dt: add helper for phandle allocation
dt: add helper for 64bit cell adds
PPC: e500: require libfdt
PPC: e500: dt: create memory node dynamically
PPC: e500: dt: create /cpus node dynamically
PPC: e500: dt: create /hypervisor node dynamically
PPC: e500: dt: create / node dynamically
PPC: e500: dt: create /chosen node dynamically
PPC: e500: dt: create /soc8544 node dynamically
PPC: e500: dt: create serial nodes dynamically
PPC: e500: dt: create mpic node dynamically
PPC: e500: dt: create global-utils node dynamically
PPC: e500: dt: create pci node dynamically
PPC: e500: dt: start with empty device tree
dt: Add -machine dumpdtb option to dump the current dtb
PPC: e500: dt: use 64bit cell helper
PPC: e500: dt: use target_phys_addr_t for ramsize
PPC: e500: enable manual loading of dtb blob
Revert "dt: temporarily disable subtree creation failure check"
PPC: e500: Use new MPIC dt format
PPC: e500: Use new SOC dt format
PPC: e500: Define addresses as always 64bit
PPC: e500: Extend address/size of / to 64bit
dt: Add global option to set phandle start offset
PPC: e500: Refactor serial dt generation
Makefile | 1 -
device_tree.c | 106 +++++++++++++++++++++-
device_tree.h | 20 ++++
hw/ppc/Makefile.objs | 2 +-
hw/ppce500_mpc8544ds.c | 237 +++++++++++++++++++++++++++++++++++++++++------
pc-bios/mpc8544ds.dtb | Bin 2028 -> 0 bytes
pc-bios/mpc8544ds.dts | 119 ------------------------
qemu-config.c | 8 ++
8 files changed, 340 insertions(+), 153 deletions(-)
delete mode 100644 pc-bios/mpc8544ds.dtb
delete mode 100644 pc-bios/mpc8544ds.dts
- [Qemu-ppc] [PATCH 27/31] PPC: e500: Use new SOC dt format, (continued)
- [Qemu-ppc] [PATCH 00/31] PPC: mpc8544ds: Create device tree dynamically,
Alexander Graf <=
- [Qemu-ppc] [PATCH 06/31] dt: add helper for empty dt creation, Alexander Graf, 2012/06/19
- [Qemu-ppc] [PATCH 09/31] PPC: e500: require libfdt, Alexander Graf, 2012/06/19
- [Qemu-ppc] [PATCH 03/31] dt: add helper for phandle references, Alexander Graf, 2012/06/19
- [Qemu-ppc] [PATCH 05/31] dt: add helper for phandle enumeration, Alexander Graf, 2012/06/19
- [Qemu-ppc] [PATCH 02/31] dt: add helpers for multi-cell adds, Alexander Graf, 2012/06/19
- [Qemu-ppc] [PATCH 15/31] PPC: e500: dt: create /soc8544 node dynamically, Alexander Graf, 2012/06/19
- [Qemu-ppc] [PATCH 12/31] PPC: e500: dt: create /hypervisor node dynamically, Alexander Graf, 2012/06/19