On Sat, 2013-06-29 at 13:37 +0200, Paul Menzel wrote: > Dear coreboot folks, >
<clip> > Searching the code for that Kconfig variable, I get the following > results > > $ git grep MMCONF_SUPPORT_DEFAULT > src/Kconfig:config MMCONF_SUPPORT_DEFAULT > src/arch/x86/include/arch/io.h:#if CONFIG_MMCONF_SUPPORT_DEFAULT > src/arch/x86/include/arch/io.h:#if CONFIG_MMCONF_SUPPORT_DEFAULT <clip> > and I wonder why this option is not selected for more platforms or even > enabled by default (for systems having `MMCONF_SUPPORT`)? Reading the > AMD whitepaper it claims that the Linux kernel can determine if MMIO is > there during runtime [3]. Though I have no idea if that is only possible > because of the firmware setting things up correctly beforehand. > > Additionally for Intel systems `MMCONF_SUPPORT` (without `_DEFAULT`) > seems to be selected in each mainboard where for AMD systems it is done > under `src/cpu`. > To use MMCONF_SUPPORT_DEFAULT you need to enable MMCONF as one of the very first things you do. For Intel see haswell/bootblock.c or gm45/early_init.c. Both use explicit PCI IO style config access to do the job. This explicit early write is missing on some other chipsets, thus you cannot blindly enable MMCONF_SUPPORT_DEFAULT. There is no hardware restriction AFAIK, patches welcome. For AMD the same enable function is in cpu/amd/car/cache_as_ram.inc. One really should not be using PCI IO configs on AMD multiprocessor platforms, please submit patch to select MMCONF_SUPPORT_DEFAULT for any AMD board with MMCONF_SUPPORT. IMHO, MMCONF_SUPPORT and MMCONF_SUPPORT_DEFAULT belong under northbridge/ while MMCONF_BASE_ADDRESS belongs under mainboard/. Kyösti -- coreboot mailing list: [email protected] http://www.coreboot.org/mailman/listinfo/coreboot

