Dear Coreboot Community,
I am trying to understand the execution of coreboot’s ROM stage on my ASUS F2A85-M motherboard and was hoping to get your advice and guidance.
I have an ASUS F2A85-M motherboard with an AMD A6-5400K processor, and a single Kingston KVR1333D3N9/2G DDR3 DIMM memory in DIMM_A2. I followed the Lesson 1 guide for building coreboot (built with the coreinfo payload) and flashed the resulting image to the appropriate BIOS chip for the F2A85-M motherboard. Because my processor was not supported I needed to add the appropriate CPU device ID in src/cpu/amd/agesa/family15tn/model_15_init.c and switch the == to != on line 255 of src/vendorcode/amd/agesa/f15tn/Proc/CPU/cpuFamilyTranslation.c (I saw this hack in a previous exchangehttps://www.coreboot.org/pipermail/coreboot/2014-February/077383.html). The resulting defconfig of the build looks like this:
CONFIG_VENDOR_ASUS=y CONFIG_BOARD_ASUS_F2A85_M=y CONFIG_CONSOLE_POST=y CONFIG_PAYLOAD_ELF=y CONFIG_PAYLOAD_FILE="payloads/coreinfo/build/coreinfo.elf”
I also have a serial port adapter (to USB) so that I can see the output of the coreboot process. Using this setup I am able to start up the machine with coreboot and get to the coreinfo screen (which I can then interact with).
I am confused, however, by the output I am seeing from the boot process (attached). Specifically, it appears that the AmdInitReset procedure never exits, as shown below.
coreboot-4.5-1349-g41dded3-dirty Mon Mar 20 03:04:09 UTC 2017 romstage starting... POST: 0x34 BSP Family_Model: 00610f21 cpu_init_detectedx = 00000000 POST: 0x37 AmdInitReset: Start *** !!AGESA cb_AgesaV0.0.0.1 *** FCH Reset Data Block Allocation: [0x0], Ptr = 0x004001e0 Fch OEM config in INIT RESET Done PCI: 00:14.4 bridge ctrl <- 0003 PCI: 00:14.4 cmd <- 00 PCI: 00:14.5 subsystem <- 1022/1410 PCI: 00:14.5 cmd <- 02 PCI: 00:15.0 bridge ctrl <- 0003 PCI: 00:15.0 cmd <- 00 PCI: 00:15.1 bridge ctrl <- 0003 …
Then, procedures like AmdInitPost are never called.. How then is the memory controller and DRAM being initialized and configured? I thought this was being done by AmdInitPost but it appears it is never running this code. I am especially confused as to how coreinfo can function (and read DRAM contents) without the memory controller and DRAM being configured first.. Based on the few exampleshttp://pastebin.com/2Lbew82b of outputs for F2A85-M I can find online, this output seems to be an anomaly and I’d like to understand what may be causing AmdInitReset to not end properly and the processor to never enter cache-as-ram mode in the romstage.
For reference, the last commit of my coreboot source is thishttps://github.com/coreboot/coreboot/commit/41dded3548327d2cb6bd8845e78b94e51207f8f6 (which seems to be up-to-date at present).
Thank you for any guidance you can provide on this issue; it is much appreciated!
Best, Berj
On Mon, Mar 20, 2017 at 11:51 AM, Berj K Chilingirian berjc@mit.edu wrote:
Dear Coreboot Community,I also have a serial port adapter (to USB) so that I can see the output of the coreboot process. Using this setup I am able to start up the machine with coreboot and get to the coreinfo screen (which I can then interact with).
I am confused, however, by the output I am seeing from the boot process (attached). Specifically, it appears that the AmdInitReset procedure never exits, as shown below.
coreboot-4.5-1349-g41dded3-dirty Mon Mar 20 03:04:09 UTC 2017 romstage starting... POST: 0x34 BSP Family_Model: 00610f21 cpu_init_detectedx = 00000000 POST: 0x37 AmdInitReset: Start *** !!AGESA cb_AgesaV0.0.0.1 *** FCH Reset Data Block Allocation: [0x0], Ptr = 0x004001e0 Fch OEM config in INIT RESET Done PCI: 00:14.4 bridge ctrl <- 0003 PCI: 00:14.4 cmd <- 00 PCI: 00:14.5 subsystem <- 1022/1410 PCI: 00:14.5 cmd <- 02 PCI: 00:15.0 bridge ctrl <- 0003 PCI: 00:15.0 cmd <- 00 PCI: 00:15.1 bridge ctrl <- 0003 …
Hi
I think this is just a case that the routing of serial port IO address range to LPC bus and further down to the UART is blocked as part of AmdInitReset. And we recover it as part of device resource assignment late in ramstage.
Try build with HUDSON_LEGACY_FREE=n, should be visible "System is legacy free" choice in menuconfig. The help text there does not really match what it does and default setting seems incorrect for all the cases where board has super-io and serial port.
Kyösti