>> +#define PSIHB_MMIO_BAR          0x00
>> +#define PSIHB_MMIO_FSPBAR       0x08
>> +#define PSIHB_MMIO_CR           0x20
>> +#define PSIHB_MMIO_SEMR         0x28
>> +#define PSIHB_MMIO_XIVR_PSI     0x30
>> +#define PSIHB_MMIO_SCR          0x40
>> +#define PSIHB_MMIO_CCR          0x48
>> +#define PSIHB_MMIO_DMA_UPADD    0x50
>> +#define PSIHB_MMIO_IRQ_STAT     0x58
>> +#define PSIHB_MMIO_XIVR_OCC     0x60
>> +#define PSIHB_MMIO_XIVR_FSI     0x68
>> +#define PSIHB_MMIO_XIVR_LPCI2C  0x70
>> +#define PSIHB_MMIO_XIVR_LOCERR  0x78
>> +#define PSIHB_MMIO_XIVR_EXT     0x80
>> +#define PSIHB_MMIO_IRSN         0x88
>> +#define PSIHB_MMIO_MAX          0x100
>> +
>> +static const uint32_t psi_mmio_to_xscom[PSIHB_MMIO_MAX / 8] = {
> 
> AFAICT, this table lookup works out as:
>       xscom_addr = (mmio_addr / 8) + 0xa
> 
> Which makes an actual table seem like overkill.
> 
> 
> And in fact, since you have a /8 here, and the *8 in the xscom address
> space encoding, I suspect you could just alias the same IO region into
> both SCOM and MMIO address spaces to avoid having two dispatchers.

yes. I think this is possible. I will work on it.

Thanks,

C.

Reply via email to