Skip to content

Platform Structure

Michael Ellerman edited this page Apr 13, 2023 · 1 revision

The arch/powerpc code base supports many different platforms, this page tries to provide an overview of how they are structured.

Note that some platforms support 64-bit and 32-bit, or big and little endian, so some platforms appear twice in the tree below.

Some platforms can be built together into a single kernel image. Platforms marked with a 🟢 can be built with other platforms at the same level of the tree.

  • 64-bit
    • Book3S
      • Little Endian
        • pseries (CONFIG_PPC_PSERIES) 🟢
        • powernv (CONFIG_PPC_POWERNV) 🟢
        • microwatt (CONFIG_PPC_MICROWATT) 🟢 SMP=n only
      • Big Endian
        • pseries (CONFIG_PPC_PSERIES) 🟢
        • powernv (CONFIG_PPC_POWERNV) 🟢
        • microwatt (CONFIG_PPC_MICROWATT) 🟢 SMP=n only
        • powermac (PPC_PMAC64) 🟢
        • PS3 (CONFIG_PPC_PS3) 🟢
        • Cell (CONFIG_PPC_CELL) 🟢
        • pasemi (CONFIG_PPC_PASEMI) 🟢
        • Maple (CONFIG_PPC_MAPLE) 🟢
    • Book3E
      • 85xx (CONFIG_FSL_SOC_BOOKE)
  • 32-bit
    • Book3S
      • 512x (CONFIG_PPC_MPC512x) 🟢
      • 52xx (CONFIG_PPC_MPC52xx) 🟢
      • 82xx (CONFIG_PPC_82xx) 🟢
      • 83xx (CONFIG_PPC_83xx) 🟢
      • 86xx (CONFIG_PPC_86xx) 🟢
      • amigaone (CONFIG_AMIGAONE) 🟢 SMP=n only
      • chrp (CONFIG_PPC_CHRP) 🟢
      • embedded6xx (CONFIG_EMBEDDED6xx) 🟢 SMP=n only
      • powermac (CONFIG_PPC_PMAC) 🟢
    • 85xx (CONFIG_PPC_85xx)
    • 8xx (CONFIG_PPC_8xx)
    • 40x (CONFIG_40x)
    • 44x (CONFIG_4xx)

Because there are so many build-time decision points, getting build coverage for the entire architecture is non-trivial.

To get at least some build coverage for each of the platforms above, the following set of defconfigs should be built:

  • ppc64_allmodconfig
  • ppc64le_allmodconfig
  • microwatt_defconfig
  • corenet64_smp_defconfig
  • corenet32_smp_defconfig
  • ppc32_allmodconfig
  • amigaone_defconfig
  • wii_defconfig
  • ppc40x_defconfig
  • ppc44x_defconfig