From cba669cd959299f2f4fe44f9adee6a8ddaebd448 Mon Sep 17 00:00:00 2001 From: Angel Pons Date: Thu, 28 Jan 2021 11:56:45 +0100 Subject: mb/emulation/qemu-q35: Define and use MMCONF_BUS_NUMBER Also refactor the machine type checks to avoid code duplication. Tested, still boots to payload with 256, 128 and 64 busses. Change-Id: Ib394ba605bbfeee75aa645e989c23034cceff348 Signed-off-by: Angel Pons Reviewed-on: https://review.coreboot.org/c/coreboot/+/50025 Reviewed-by: Nico Huber Reviewed-by: Arthur Heymans Tested-by: build bot (Jenkins) --- src/mainboard/emulation/qemu-q35/bootblock.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) (limited to 'src/mainboard/emulation/qemu-q35/bootblock.c') diff --git a/src/mainboard/emulation/qemu-q35/bootblock.c b/src/mainboard/emulation/qemu-q35/bootblock.c index 73036805c5..cdca27ab14 100644 --- a/src/mainboard/emulation/qemu-q35/bootblock.c +++ b/src/mainboard/emulation/qemu-q35/bootblock.c @@ -10,8 +10,6 @@ static void bootblock_northbridge_init(void) { - uint32_t reg; - /* * The "io" variant of the config access is explicitly used to * setup the PCIEXBAR because CONFIG(MMCONF_SUPPORT) is set to @@ -24,16 +22,12 @@ static void bootblock_northbridge_init(void) * The PCIEXBAR is assumed to live in the memory mapped IO space under * 4GiB. */ - reg = 0; - pci_io_write_config32(HOST_BRIDGE, D0F0_PCIEXBAR_HI, reg); - reg = CONFIG_MMCONF_BASE_ADDRESS | 1; /* 256MiB - 0-255 buses. */ - pci_io_write_config32(HOST_BRIDGE, D0F0_PCIEXBAR_LO, reg); + const uint32_t pciexbar = make_pciexbar(); + pci_io_write_config32(HOST_BRIDGE, D0F0_PCIEXBAR_HI, 0); + pci_io_write_config32(HOST_BRIDGE, D0F0_PCIEXBAR_LO, pciexbar); - /* MCFG is now active. If it's not qemu was started for machine PC */ - if (CONFIG(BOOTBLOCK_CONSOLE) && - (pci_read_config32(HOST_BRIDGE, D0F0_PCIEXBAR_LO) != - (CONFIG_MMCONF_BASE_ADDRESS | 1))) - die("You must run qemu for machine Q35 (-M q35)"); + if (CONFIG(BOOTBLOCK_CONSOLE)) + mainboard_machine_check(); } static void bootblock_southbridge_init(void) -- cgit v1.2.3