device/Kconfig: Introduce MMCONF_LENGTH
This is necessary because ASL Memory32Fixed values cannot contain operations, even if they can be evaluated to constants. Add a sanity check in pci_mmio_cfg.h to ensure consistency with MMCONF_BUS_NUMBER. Change-Id: I8f0b5edf166580cc12c1363d8d6b6ef0f2854be9 Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/50033 Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
@@ -521,6 +521,14 @@ config MMCONF_BUS_NUMBER
|
|||||||
int
|
int
|
||||||
depends on MMCONF_SUPPORT
|
depends on MMCONF_SUPPORT
|
||||||
|
|
||||||
|
config MMCONF_LENGTH
|
||||||
|
hex
|
||||||
|
depends on MMCONF_SUPPORT
|
||||||
|
default 0x04000000 if MMCONF_BUS_NUMBER = 64
|
||||||
|
default 0x08000000 if MMCONF_BUS_NUMBER = 128
|
||||||
|
default 0x10000000 if MMCONF_BUS_NUMBER = 256
|
||||||
|
default 0x0
|
||||||
|
|
||||||
config PCI_ALLOW_BUS_MASTER
|
config PCI_ALLOW_BUS_MASTER
|
||||||
bool "Allow coreboot to set optional PCI bus master bits"
|
bool "Allow coreboot to set optional PCI bus master bits"
|
||||||
default y
|
default y
|
||||||
|
@@ -101,6 +101,10 @@ uint32_t *pci_mmio_config32_addr(pci_devfn_t dev, uint16_t reg)
|
|||||||
#error "CONFIG_MMCONF_BASE_ADDRESS undefined!"
|
#error "CONFIG_MMCONF_BASE_ADDRESS undefined!"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if CONFIG_MMCONF_BUS_NUMBER * MiB != CONFIG_MMCONF_LENGTH
|
||||||
|
#error "CONFIG_MMCONF_LENGTH does not correspond with CONFIG_MMCONF_BUS_NUMBER!"
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Avoid name collisions as different stages have different signature
|
/* Avoid name collisions as different stages have different signature
|
||||||
* for these functions. The _s_ stands for simple, fundamental IO or
|
* for these functions. The _s_ stands for simple, fundamental IO or
|
||||||
* MMIO variant.
|
* MMIO variant.
|
||||||
|
Reference in New Issue
Block a user