[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [Qemu-devel] [PATCH 00/31] PPC: mpc8544ds: Create device
From: |
Blue Swirl |
Subject: |
Re: [Qemu-ppc] [Qemu-devel] [PATCH 00/31] PPC: mpc8544ds: Create device tree dynamically |
Date: |
Thu, 7 Jun 2012 21:09:18 +0000 |
On Tue, Jun 5, 2012 at 11:52 PM, Alexander Graf <address@hidden> wrote:
> 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
Please use snprintf() instead of sprintf().
>
> 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
>
> Alexander Graf (31):
> dt: allow add_subnode to create root subnodes
> dt: add helpers for 2, 3 and 4 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 -
> Makefile.target | 2 +-
> device_tree.c | 134 +++++++++++++++++++++++++++-
> device_tree.h | 16 +++
> hw/ppce500_mpc8544ds.c | 237 +++++++++++++++++++++++++++++++++++++++++------
> pc-bios/mpc8544ds.dtb | Bin 2028 -> 0 bytes
> pc-bios/mpc8544ds.dts | 119 ------------------------
> qemu-config.c | 8 ++
> roms/openbios | 2 +-
> 9 files changed, 365 insertions(+), 154 deletions(-)
> delete mode 100644 pc-bios/mpc8544ds.dtb
> delete mode 100644 pc-bios/mpc8544ds.dts
>
>
- [Qemu-ppc] [PATCH 09/31] PPC: e500: require libfdt, (continued)
- [Qemu-ppc] [PATCH 09/31] PPC: e500: require libfdt, Alexander Graf, 2012/06/05
- [Qemu-ppc] [PATCH 24/31] PPC: e500: enable manual loading of dtb blob, Alexander Graf, 2012/06/05
- [Qemu-ppc] [PATCH 26/31] PPC: e500: Use new MPIC dt format, Alexander Graf, 2012/06/05
- [Qemu-ppc] [PATCH 27/31] PPC: e500: Use new SOC dt format, Alexander Graf, 2012/06/05
- [Qemu-ppc] [PATCH 04/31] dt: temporarily disable subtree creation failure check, Alexander Graf, 2012/06/05
- [Qemu-ppc] [PATCH 08/31] dt: add helper for 64bit cell adds, Alexander Graf, 2012/06/05
- Re: [Qemu-ppc] [Qemu-devel] [PATCH 00/31] PPC: mpc8544ds: Create device tree dynamically,
Blue Swirl <=
- [Qemu-ppc] [PATCH 00/31] PPC: mpc8544ds: Create device tree dynamically, Alexander Graf, 2012/06/19