ppc_ss = ss.source_set()
ppc_ss.add(files(
  'ppc.c',
  'ppc_booke.c',
))
ppc_ss.add(when: 'CONFIG_FDT_PPC', if_true: [files(
  'fdt.c',
), fdt])
ppc_ss.add(when: 'CONFIG_FW_CFG_PPC', if_true: files('fw_cfg.c'))

# IBM pSeries (sPAPR)
ppc_ss.add(when: 'CONFIG_PSERIES', if_true: files(
  'spapr.c',
  'spapr_caps.c',
  'spapr_vio.c',
  'spapr_events.c',
  'spapr_hcall.c',
  'spapr_nested.c',
  'spapr_iommu.c',
  'spapr_rtas.c',
  'spapr_pci.c',
  'spapr_rtc.c',
  'spapr_drc.c',
  'spapr_cpu_core.c',
  'spapr_ovec.c',
  'spapr_irq.c',
  'spapr_tpm_proxy.c',
  'spapr_nvdimm.c',
  'spapr_rtas_ddw.c',
  'spapr_numa.c',
  'pef.c',
))
ppc_ss.add(when: ['CONFIG_PSERIES', 'CONFIG_TCG'], if_true: files(
  'spapr_vhyp_mmu.c',
))
ppc_ss.add(when: 'CONFIG_SPAPR_RNG', if_true: files('spapr_rng.c'))
if host_os == 'linux'
  ppc_ss.add(when: 'CONFIG_PSERIES', if_true: files(
    'spapr_pci_vfio.c',
  ))
endif

# IBM PowerNV
ppc_ss.add(when: 'CONFIG_POWERNV', if_true: files(
  'pnv.c',
  'pnv_xscom.c',
  'pnv_core.c',
  'pnv_i2c.c',
  'pnv_lpc.c',
  'pnv_psi.c',
  'pnv_chiptod.c',
  'pnv_occ.c',
  'pnv_sbe.c',
  'pnv_bmc.c',
  'pnv_homer.c',
  'pnv_pnor.c',
  'pnv_nest_pervasive.c',
  'pnv_n1_chiplet.c',
))
# PowerPC 4xx boards
ppc_ss.add(when: 'CONFIG_PPC405', if_true: files(
  'ppc405_boards.c',
  'ppc405_uc.c'))
ppc_ss.add(when: 'CONFIG_PPC440', if_true: files(
  'ppc440_bamboo.c',
  'ppc440_uc.c'))
ppc_ss.add(when: 'CONFIG_PPC4XX', if_true: files(
  'ppc4xx_devs.c',
  'ppc4xx_sdram.c'))
ppc_ss.add(when: 'CONFIG_SAM460EX', if_true: files('sam460ex.c'))
# PReP
ppc_ss.add(when: 'CONFIG_PREP', if_true: files('prep.c'))
ppc_ss.add(when: 'CONFIG_PREP', if_true: files('prep_systemio.c'))
ppc_ss.add(when: 'CONFIG_RS6000_MC', if_true: files('rs6000_mc.c'))
# OldWorld PowerMac
ppc_ss.add(when: 'CONFIG_MAC_OLDWORLD', if_true: files('mac_oldworld.c'))
# NewWorld PowerMac
ppc_ss.add(when: 'CONFIG_MAC_NEWWORLD', if_true: files('mac_newworld.c'))
# e500
ppc_ss.add(when: 'CONFIG_E500PLAT', if_true: files('e500plat.c'))
ppc_ss.add(when: 'CONFIG_MPC8544DS', if_true: files('mpc8544ds.c'))
ppc_ss.add(when: 'CONFIG_E500', if_true: files(
  'e500.c',
  'mpc8544_guts.c',
  'ppce500_spin.c'
))
# PowerPC 440 Xilinx ML507 reference board.
ppc_ss.add(when: 'CONFIG_VIRTEX', if_true: files('virtex_ml507.c'))
# AmigaOne
ppc_ss.add(when: 'CONFIG_AMIGAONE', if_true: files('amigaone.c'))
# Pegasos2
ppc_ss.add(when: 'CONFIG_PEGASOS2', if_true: files('pegasos2.c'))

ppc_ss.add(when: 'CONFIG_VOF', if_true: files('vof.c'))
ppc_ss.add(when: ['CONFIG_VOF', 'CONFIG_PSERIES'], if_true: files('spapr_vof.c'))

hw_arch += {'ppc': ppc_ss}
