In QEMU we implement a PV machine type called "ppce500". That board is able to run any e500+ FSL cores (e500v2, e500mc, e5500, e6500).
It is heavily inspired by the MPC8544DS SoC and board combination, but implements only the bare minimum to make Linux happy enough to drive a virtual machine. This patch set implements support for this PV machine type in U-Boot, enabling users to run their virtual machines with netboot, u-boot payload binaries or other fun things they come up with. --- v1 -> v2: - Write device tree offset directly into global variable - use r4 rather than r2 for that - access fdt directly from in-memory copy - remove unneeded header includes - clean up pci enumeration - coding style fixes - populate and only use fdt_addr_r - remove unused exported functions - remove unused TLB0 entries - make TLB1 I/O maps non-executable - remove unused defines in board header - make -kernel boot variables more clear - remove TLB0 invalidation - use tlb1.14 for temporary as=1 map - use CONFIG_SYS_MPC85XX_NO_RESETVEC - store fdt pointer in gd through cpu_init_early_f() - replace fixup_tlb1() with dynamic TLB creation hook - find CCSRBAR from device tree - find PCI controllers from device tree - find CPU speed from device tree v2 -> v3: - new patch: fdt_support: split fdt_getprop_u32_default - new patch: fdt_support: Add helper function to read "ranges" property - new patch: PPC: 85xx: Remove IVOR reset - removed patch: PPC 85xx: Detect e500v2 / e500mc during runtime - merge dt patches into machine patch - Document and rename CONFIG_SYS_USE_DYNAMIC_TLBS - remove CONFIG_DDR_SPD - Reduce PCI message to only base address - Map AS=1 fdt behind CCSRBAR - Use CONFIG_SYS_CCSR_DO_NOT_RELOCATE - remove unnecessary ccsr map - s/cell size/cell count/ - add temporary map define - use fdt_get_base_address() to find region - use new APIs - remove myfdt helpers Alexander Graf (6): fdt_support: split fdt_getprop_u32_default fdt_support: Add helper function to read "ranges" property PPC: 85xx: Remove IVOR reset PPC: 85xx: Generalize DDR TLB mapping function PPC 85xx: Add ELF entry point PPC 85xx: Add qemu-ppce500 machine README | 5 + arch/powerpc/cpu/mpc85xx/Makefile | 2 + arch/powerpc/cpu/mpc85xx/cpu.c | 3 +- arch/powerpc/cpu/mpc85xx/cpu_init.c | 4 - arch/powerpc/cpu/mpc85xx/cpu_init_early.c | 10 +- arch/powerpc/cpu/mpc85xx/fixed_ivor.S | 63 ----- arch/powerpc/cpu/mpc85xx/release.S | 3 - arch/powerpc/cpu/mpc85xx/start.S | 19 +- arch/powerpc/cpu/mpc85xx/tlb.c | 52 ++-- arch/powerpc/cpu/mpc85xx/u-boot.lds | 1 + arch/powerpc/include/asm/config_mpc85xx.h | 4 + arch/powerpc/include/asm/mmu.h | 3 + board/freescale/qemu-ppce500/Makefile | 10 + board/freescale/qemu-ppce500/qemu-ppce500.c | 334 ++++++++++++++++++++++++++ board/freescale/qemu-ppce500/tlb.c | 16 ++ boards.cfg | 1 + common/fdt_support.c | 132 +++++++++- include/configs/qemu-ppce500.h | 206 ++++++++++++++++ include/fdt_support.h | 4 + nand_spl/board/freescale/mpc8536ds/Makefile | 4 - nand_spl/board/freescale/mpc8569mds/Makefile | 4 - nand_spl/board/freescale/mpc8572ds/Makefile | 4 - nand_spl/board/freescale/p1023rds/Makefile | 4 - nand_spl/board/freescale/p1_p2_rdb/Makefile | 4 - 24 files changed, 771 insertions(+), 121 deletions(-) delete mode 100644 arch/powerpc/cpu/mpc85xx/fixed_ivor.S create mode 100644 board/freescale/qemu-ppce500/Makefile create mode 100644 board/freescale/qemu-ppce500/qemu-ppce500.c create mode 100644 board/freescale/qemu-ppce500/tlb.c create mode 100644 include/configs/qemu-ppce500.h -- 1.7.10.4 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot