53f18b3ef2
This implements a framework for an ADU unit model. The ADU unit actually implements XSCOM, which is the bridge between MMIO and PIB. However it also includes control and status registers and other functions that are exposed as PIB (xscom) registers. To keep things simple, pnv_xscom.c remains the XSCOM bridge implementation, and pnv_adu.c implements the ADU registers and other functions. So far, just the ADU no-op registers in the pnv_xscom.c default handler are moved over to the adu model. Reviewed-by: Cédric Le Goater <clg@kaod.org> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
97 lines
2.6 KiB
Meson
97 lines
2.6 KiB
Meson
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'))
|
|
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_adu.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}
|