mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
ppc/pnv: add memory regions for the ICP registers
This provides to a PowerNV chip (POWER8) access to the Interrupt Management area, which contains the registers of the Interrupt Control Presenters of each thread. These are used to accept, return, forward interrupts in the system. This area is modeled with a per-chip container memory region holding all the ICP registers. Each thread of a chip is then associated with its ICP registers using a memory subregion indexed by its PIR number in the overall region. The device tree is populated accordingly. Signed-off-by: Cédric Le Goater <clg@kaod.org> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
5509db4aec
commit
bf5615e77c
2 changed files with 100 additions and 0 deletions
|
@ -54,6 +54,7 @@ typedef struct PnvChip {
|
|||
MemoryRegion xscom_mmio;
|
||||
MemoryRegion xscom;
|
||||
AddressSpace xscom_as;
|
||||
MemoryRegion icp_mmio;
|
||||
|
||||
PnvLpcController lpc;
|
||||
} PnvChip;
|
||||
|
@ -136,4 +137,22 @@ typedef struct PnvMachineState {
|
|||
#define PNV_XSCOM_BASE(chip) \
|
||||
(chip->xscom_base + ((uint64_t)(chip)->chip_id) * PNV_XSCOM_SIZE)
|
||||
|
||||
/*
|
||||
* XSCOM 0x20109CA defines the ICP BAR:
|
||||
*
|
||||
* 0:29 : bits 14 to 43 of address to define 1 MB region.
|
||||
* 30 : 1 to enable ICP to receive loads/stores against its BAR region
|
||||
* 31:63 : Constant 0
|
||||
*
|
||||
* Usually defined as :
|
||||
*
|
||||
* 0xffffe00200000000 -> 0x0003ffff80000000
|
||||
* 0xffffe00600000000 -> 0x0003ffff80100000
|
||||
* 0xffffe02200000000 -> 0x0003ffff80800000
|
||||
* 0xffffe02600000000 -> 0x0003ffff80900000
|
||||
*/
|
||||
#define PNV_ICP_SIZE 0x0000000000100000ull
|
||||
#define PNV_ICP_BASE(chip) \
|
||||
(0x0003ffff80000000ull + (uint64_t) PNV_CHIP_INDEX(chip) * PNV_ICP_SIZE)
|
||||
|
||||
#endif /* _PPC_PNV_H */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue