[U-Boot] [PATCH v5 0/6] PPC 85xx: Add support for QEMU's ppce500 PV machine

Alexander Graf agraf at suse.de
Fri Apr 11 17:09:39 CEST 2014


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

v3 -> v4:

  - tlb_map_range: return unmapped size
  - tlb_map_range: take ram/io parameter as enum rather than bool
  - use new tlb map syntax
  - check that tlb map mapped everything
  - always save/restore r3 for cpu_init_early_f
  - remove CONFIG_DYNAMIC_CCSRBAR
  - make init_tlbs weak and remove all init_tlbs_dynamic() cruft
  - always map fdt to fixed virtual address
  - fold together AS=1 fdt map functions
  - use tlb_map_range for CCSR map
  - search for PCI based on device type rather than compatible
  - remove unnecessary cast
  - call get_linear_ram_size directly
  - override get_tbclk with timebase-frequency fetching code

v4 -> v5:

  - rebase to current master
  - remove CONFIG_MPC85xx from header file, it's already defined on the cmdline
  - use __weak instead of __attribute__((weak))
  - use esel parameter in map_fdt_as()
  - explicitly define start and end of PCI map range

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

 arch/powerpc/cpu/mpc85xx/Makefile            |    2 +
 arch/powerpc/cpu/mpc85xx/cpu.c               |    5 +-
 arch/powerpc/cpu/mpc85xx/cpu_init.c          |    4 -
 arch/powerpc/cpu/mpc85xx/cpu_init_early.c    |    8 +-
 arch/powerpc/cpu/mpc85xx/fixed_ivor.S        |   63 -----
 arch/powerpc/cpu/mpc85xx/release.S           |    3 -
 arch/powerpc/cpu/mpc85xx/start.S             |   17 +-
 arch/powerpc/cpu/mpc85xx/tlb.c               |   49 ++--
 arch/powerpc/cpu/mpc85xx/u-boot.lds          |    1 +
 arch/powerpc/include/asm/config_mpc85xx.h    |    4 +
 arch/powerpc/include/asm/mmu.h               |    8 +
 board/freescale/qemu-ppce500/Makefile        |    9 +
 board/freescale/qemu-ppce500/qemu-ppce500.c  |  348 ++++++++++++++++++++++++++
 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  |    6 +-
 nand_spl/board/freescale/mpc8569mds/Makefile |    6 +-
 nand_spl/board/freescale/mpc8572ds/Makefile  |    5 -
 nand_spl/board/freescale/p1023rds/Makefile   |    6 +-
 nand_spl/board/freescale/p1_p2_rdb/Makefile  |    6 +-
 22 files changed, 767 insertions(+), 126 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 include/configs/qemu-ppce500.h

-- 
1.7.10.4



More information about the U-Boot mailing list