Dear GRUB folks,
as already mentioned, currently using coreboot with the GRUB payload on the ASRock E350M1, the HDD connected over Serial ATA (SATA) at port 2, or any other port, is not detected. Using an SSD instead it’s also *not* detected. This issue is present since at least last year and probably since the rewrite of `grub-core/disk/ahci.c`. I was able to reproduce it with latest master, that means commit 5e74a3e6 (disk/ahci: Use defines `GRUB_ATA_STATUS_BUSY` and `GRUB_ATA_STATUS_DRQ`). Doing `rmmod ahci` and `insmod ahci` the connected drive is mostly detected. Below are my changes for debugging. I added resetting the host bus adapter (HBA) and debug statements for port 2. diff --git a/grub-core/disk/ahci.c b/grub-core/disk/ahci.c index 7f75724..cf2075b 100644 --- a/grub-core/disk/ahci.c +++ b/grub-core/disk/ahci.c @@ -173,6 +173,7 @@ grub_ahci_pciinit (grub_pci_device_t dev, grub_pci_address_t addr; grub_uint32_t class; grub_uint32_t bar; + grub_uint64_t endtime; unsigned i, nports; volatile struct grub_ahci_hba *hba; @@ -199,7 +200,7 @@ grub_ahci_pciinit (grub_pci_device_t dev, hba = grub_pci_device_map_range (dev, bar & GRUB_PCI_ADDR_MEM_MASK, sizeof (*hba)); - grub_dprintf ("ahci", "dev: %x:%x.%x\n", dev.bus, dev.device, dev.function); + grub_dprintf ("ahci", "dev: %x:%x.%x, (%04x,%04x)\n", dev.bus, dev.device, dev.function, class, class); grub_dprintf ("ahci", "tfd[0]: %x\n", hba->ports[0].task_file_data); @@ -219,16 +220,62 @@ grub_ahci_pciinit (grub_pci_device_t dev, grub_dprintf ("ahci", "err[1]: %x\n", hba->ports[1].sata_error); - hba->ports[1].sata_error = hba->ports[1].sata_error; + grub_dprintf ("ahci", "tfd[2]: %x\n", + hba->ports[2].task_file_data); + grub_dprintf ("ahci", "cmd[2]: %x\n", + hba->ports[2].command); + grub_dprintf ("ahci", "st[2]: %x\n", + hba->ports[2].status); + grub_dprintf ("ahci", "err[2]: %x\n", + hba->ports[2].sata_error); + + /* Reset host bus adapter (HBA). */ + grub_dprintf ("ahci", "Reset host bus adapter (HBA).\n"); + grub_dprintf ("ahci", "GLC:%x, %4" PRIuGRUB_UINT64_T "\n", hba->global_control, grub_get_time_ms ()); + hba->global_control |= GRUB_AHCI_HBA_GLOBAL_CONTROL_RESET; + /* Reset has to be finished after 1s. */ + endtime = grub_get_time_ms () + 1000; + while ((hba->global_control & GRUB_AHCI_HBA_GLOBAL_CONTROL_RESET) + && grub_get_time_ms () < endtime); + if (hba->global_control & GRUB_AHCI_HBA_GLOBAL_CONTROL_RESET) + { + grub_dprintf ("ahci", "Controller reset didn't finish within 1s.\n"); + } + grub_dprintf ("ahci", "GLC:%x, time: %4" PRIuGRUB_UINT64_T "\n", hba->global_control, grub_get_time_ms ()); + + grub_dprintf ("ahci", "tfd[0]: %x\n", + hba->ports[0].task_file_data); + grub_dprintf ("ahci", "cmd[0]: %x\n", + hba->ports[0].command); + grub_dprintf ("ahci", "st[0]: %x\n", + hba->ports[0].status); + grub_dprintf ("ahci", "err[0]: %x\n", + hba->ports[0].sata_error); + grub_dprintf ("ahci", "tfd[1]: %x\n", + hba->ports[1].task_file_data); + grub_dprintf ("ahci", "cmd[1]: %x\n", + hba->ports[1].command); + grub_dprintf ("ahci", "st[1]: %x\n", + hba->ports[1].status); grub_dprintf ("ahci", "err[1]: %x\n", hba->ports[1].sata_error); + hba->ports[1].sata_error = hba->ports[1].sata_error; + + grub_dprintf ("ahci", "tfd[2]: %x\n", + hba->ports[2].task_file_data); + grub_dprintf ("ahci", "cmd[2]: %x\n", + hba->ports[2].command); + grub_dprintf ("ahci", "st[2]: %x\n", + hba->ports[2].status); + grub_dprintf ("ahci", "err[2]: %x\n", + hba->ports[2].sata_error); + grub_dprintf ("ahci", "BH:%x\n", hba->bios_handoff); if (! (hba->bios_handoff & GRUB_AHCI_BIOS_HANDOFF_OS_OWNED)) { - grub_uint64_t endtime; grub_dprintf ("ahci", "Requesting AHCI ownership\n"); hba->bios_handoff = (hba->bios_handoff & ~GRUB_AHCI_BIOS_HANDOFF_RWC) @@ -265,7 +312,6 @@ grub_ahci_pciinit (grub_pci_device_t dev, grub_dprintf ("ahci", "GLC:%x\n", hba->global_control); /* { - grub_uint64_t endtime; hba->global_control |= 1; endtime = grub_get_time_ms () + 1000; while (hba->global_control & 1) @@ -392,7 +438,6 @@ grub_ahci_pciinit (grub_pci_device_t dev, adevs[i]->hba->ports[adevs[i]->port].command &= ~GRUB_AHCI_HBA_PORT_CMD_FRE; } - grub_uint64_t endtime; endtime = grub_get_time_ms () + 1000; while (grub_get_time_ms () < endtime) With these changes the following debug output is created. disk/ahci.c:203: dev: 0:11.0, (1060140,1060140) disk/ahci.c:206: tfd[0]: 7f disk/ahci.c:208: cmd[0]: 2006 disk/ahci.c:210: st[0]: 0 disk/ahci.c:212: err[0]: 0 disk/ahci.c:215: tfd[1]: 7f disk/ahci.c:217: cmd[1]: 2006 disk/ahci.c:219: st[1]: 0 disk/ahci.c:221: err[1]: 0 disk/ahci.c:224: tfd[2]: 80 disk/ahci.c:226: cmd[2]: 2006 disk/ahci.c:228: st[2]: 123 disk/ahci.c:230: err[2]: 0 disk/ahci.c:233: Reset host bus adapter (HBA). disk/ahci.c:234: GLC:0, 1095 disk/ahci.c:244: GLC:0, time: 1095 disk/ahci.c:247: tfd[0]: 7f disk/ahci.c:249: cmd[0]: 2006 disk/ahci.c:251: st[0]: 0 disk/ahci.c:253: err[0]: 0 disk/ahci.c:256: tfd[1]: 7f disk/ahci.c:258: cmd[1]: 2006 disk/ahci.c:260: st[1]: 0 disk/ahci.c:262: err[1]: 0 disk/ahci.c:267: tfd[2]: 80 disk/ahci.c:269: cmd[2]: 2006 disk/ahci.c:271: st[2]: 123 disk/ahci.c:273: err[2]: 40d0000 disk/ahci.c:275: BH:0 disk/ahci.c:280: Requesting AHCI ownership disk/ahci.c:283: Waiting for BIOS to give up ownership disk/ahci.c:294: AHCI ownership obtained disk/ahci.c:299: GLC:0 disk/ahci.c:302: err[1]: 0 disk/ahci.c:305: AHCI is in compat mode. Switching disk/ahci.c:310: err[1]: 0 disk/ahci.c:312: GLC:0 disk/ahci.c:325: GLC:0 disk/ahci.c:328: err[1]: 0 disk/ahci.c:343: GLC:80000000 disk/ahci.c:346: err[1]: 0 disk/ahci.c:349: err[1]: 0 disk/ahci.c:351: GLC:80000000 disk/ahci.c:367: err[1]: 0 disk/ahci.c:369: GLC:80000000 disk/ahci.c:374: 32 AHCI ports, PI = 0x3f disk/ahci.c:405: err: 0 disk/ahci.c:436: found device ahci0 (port 0), command_table = 0xc7e42400, command_list = 0xc7e42c00 disk/ahci.c:405: err: 0 disk/ahci.c:436: found device ahci1 (port 1), command_table = 0xc7e41400, command_list = 0xc7e41c00 disk/ahci.c:405: err: 0 disk/ahci.c:436: found device ahci2 (port 2), command_table = 0xc7e40400, command_list = 0xc7e40c00 disk/ahci.c:405: err: 0 disk/ahci.c:436: found device ahci3 (port 3), command_table = 0xc7df7000, command_list = 0xc7e3fc00 disk/ahci.c:405: err: 0 disk/ahci.c:436: found device ahci4 (port 4), command_table = 0xc7df6000, command_list = 0xc7df6800 disk/ahci.c:405: err: 0 disk/ahci.c:436: found device ahci5 (port 5), command_table = 0xc7df5000, command_list = 0xc7df5800 disk/ahci.c:489: err: 0 disk/ahci.c:489: err: 0 disk/ahci.c:489: err: 0 disk/ahci.c:489: err: 0 disk/ahci.c:489: err: 0 disk/ahci.c:489: err: 0 disk/ahci.c:529: err: 0 disk/ahci.c:537: err: 0 disk/ahci.c:529: err: 0 disk/ahci.c:537: err: 0 disk/ahci.c:529: err: 0 disk/ahci.c:537: err: 0 disk/ahci.c:529: err: 0 disk/ahci.c:537: err: 0 disk/ahci.c:529: err: 0 disk/ahci.c:537: err: 0 disk/ahci.c:529: err: 0 disk/ahci.c:537: err: 0 disk/ahci.c:555: couldn't detect device on port 0 disk/ahci.c:555: couldn't detect device on port 1 disk/ahci.c:555: couldn't detect device on port 3 disk/ahci.c:555: couldn't detect device on port 4 disk/ahci.c:555: couldn't detect device on port 5 disk/ahci.c:564: err: 0 disk/ahci.c:570: err: 0 disk/ahci.c:574: err: 0 disk/ahci.c:580: offset: 220, tfd:80, CMD: 6016 disk/ahci.c:583: err: 0 disk/ahci.c:594: offset: 220, tfd:80, CMD: 6016 disk/ahci.c:597: err: 0 disk/ahci.c:622: port 2 is busy disk/ahci.c:650: cleaning up failed devs No RSDPv1 RSDPv2 signature:RSD PTR chksum:04 (valid), OEM-ID: CORE rev=2 RSDT=c7fb8030 len=36 chksum=ba (valid) XSDT=00000000c7fb80e0 XSDT 92B rev=1 chksum=0x11 (valid) OEM=CORE COREBOOT OEMrev=00000000 CORE 00000000 FACP 244B rev=4 chksum=0xd0 (valid) OEM=CORE COREBOOT OEMrev=00000000 CORE 00000000 SSDT 69B rev=2 chksum=0xa1 (valid) OEM=CORE COREBOOT OEMrev=0000002a CORE 0000002a APIC 92B rev=1 chksum=0x9c (valid) OEM=CORE COREBOOT OEMrev=00000000 CORE 00000000 Local APIC=fee00000 Flags=00000001 LAPIC ACPI_ID=00 APIC_ID=00 Flags=00000001 LAPIC ACPI_ID=01 APIC_ID=01 Flags=00000001 IOAPIC ID=02 address=fec00000 GSI=00000000 Int Override bus=0 src=0 GSI=00000002 Flags=0000 Int Override bus=0 src=9 GSI=00000009 Flags=000f HEST 40B rev=1 chksum=0xb4 (valid) OEM=CORE COREBOOT OEMrev=00000000 CORE 00000000 SSDT 5774B rev=2 chksum=0x6e (valid) OEM=AMD ALIB OEMrev=00000001 MSFT 04000000 SSDT 990B rev=1 chksum=0xca (valid) OEM=AMD POWERNOW OEMrev=00000001 AMD 00000001 HPET 56B rev=1 chksum=0x71 (valid) OEM=CORE COREBOOT OEMrev=00000000 CORE 00000000 00:00.0 1022:1510 [0600] Host Bridge 00:01.0 1002:9802 [0300] VGA Controller 00:01.1 1002:1314 [0403] Multimedia device 00:11.0 1002:4391 [0106] SATA Controller [PI 01] 00:12.0 1002:4397 [0c03] USB Controller [PI 10] 00:12.2 1002:4396 [0c03] USB Controller [PI 20] 00:13.0 1002:4397 [0c03] USB Controller [PI 10] 00:13.2 1002:4396 [0c03] USB Controller [PI 20] 00:14.0 1002:4385 [0c05] Serial Bus Controller 00:14.2 1002:4383 [0403] Multimedia device 00:14.3 1002:439d [0601] ISA Bridge 00:14.4 1002:4384 [0604] PCI-PCI Bridge [PI 01] 00:14.5 1002:4399 [0c03] USB Controller [PI 10] 00:15.0 1002:43a0 [0604] PCI-PCI Bridge 00:15.1 1002:43a1 [0604] PCI-PCI Bridge 00:18.0 1022:1700 [0600] Host Bridge 00:18.1 1022:1701 [0600] Host Bridge 00:18.2 1022:1702 [0600] Host Bridge 00:18.3 1022:1703 [0600] Host Bridge 00:18.4 1022:1704 [0600] Host Bridge 00:18.5 1022:1718 [0600] Host Bridge 00:18.6 1022:1716 [0600] Host Bridge 00:18.7 1022:1719 [0600] Host Bridge 03:00.0 10ec:8168 [0200] Ethernet Controller GNU GRUB version 2.02~beta2 […] grub> ls (memdisk) (cbfsdisk) grub> rmmod ahci grub> insmod ahci disk/ahci.c:203: dev: 0:11.0, (1060140,1060140) disk/ahci.c:206: tfd[0]: 7f disk/ahci.c:208: cmd[0]: 2006 disk/ahci.c:210: st[0]: 0 disk/ahci.c:212: err[0]: 0 disk/ahci.c:215: tfd[1]: 7f disk/ahci.c:217: cmd[1]: 2006 disk/ahci.c:219: st[1]: 0 disk/ahci.c:221: err[1]: 0 disk/ahci.c:224: tfd[2]: 80 disk/ahci.c:226: cmd[2]: 2006 disk/ahci.c:228: st[2]: 123 disk/ahci.c:230: err[2]: 0 disk/ahci.c:233: Reset host bus adapter (HBA). disk/ahci.c:234: GLC:80000000, 134260 disk/ahci.c:244: GLC:0, time: 134263 disk/ahci.c:247: tfd[0]: 7f disk/ahci.c:249: cmd[0]: 2006 disk/ahci.c:251: st[0]: 0 disk/ahci.c:253: err[0]: 0 disk/ahci.c:256: tfd[1]: 7f disk/ahci.c:258: cmd[1]: 2006 disk/ahci.c:260: st[1]: 0 disk/ahci.c:262: err[1]: 0 disk/ahci.c:267: tfd[2]: 150 disk/ahci.c:269: cmd[2]: 2006 disk/ahci.c:271: st[2]: 123 disk/ahci.c:273: err[2]: 40d0000 disk/ahci.c:275: BH:0 disk/ahci.c:280: Requesting AHCI ownership disk/ahci.c:283: Waiting for BIOS to give up ownership disk/ahci.c:294: AHCI ownership obtained disk/ahci.c:299: GLC:0 disk/ahci.c:302: err[1]: 0 disk/ahci.c:305: AHCI is in compat mode. Switching disk/ahci.c:310: err[1]: 0 disk/ahci.c:312: GLC:0 disk/ahci.c:325: GLC:0 disk/ahci.c:328: err[1]: 0 disk/ahci.c:343: GLC:80000000 disk/ahci.c:346: err[1]: 0 disk/ahci.c:349: err[1]: 0 disk/ahci.c:351: GLC:80000000 disk/ahci.c:367: err[1]: 0 disk/ahci.c:369: GLC:80000000 disk/ahci.c:374: 32 AHCI ports, PI = 0x3f disk/ahci.c:405: err: 0 disk/ahci.c:436: found device ahci0 (port 0), command_table = 0xc7e97000, command_list = 0xc7e97800 disk/ahci.c:405: err: 0 disk/ahci.c:436: found device ahci1 (port 1), command_table = 0xc7e89c00, command_list = 0xc7e96800 disk/ahci.c:405: err: 0 disk/ahci.c:436: found device ahci2 (port 2), command_table = 0xc7e88c00, command_list = 0xc7e89400 disk/ahci.c:405: err: 0 disk/ahci.c:436: found device ahci3 (port 3), command_table = 0xc7e87c00, command_list = 0xc7e88400 disk/ahci.c:405: err: 0 disk/ahci.c:436: found device ahci4 (port 4), command_table = 0xc7e86c00, command_list = 0xc7e87400 disk/ahci.c:405: err: 0 disk/ahci.c:436: found device ahci5 (port 5), command_table = 0xc7e60c00, command_list = 0xc7e61400 disk/ahci.c:489: err: 0 disk/ahci.c:489: err: 0 disk/ahci.c:489: err: 0 disk/ahci.c:489: err: 0 disk/ahci.c:489: err: 0 disk/ahci.c:489: err: 0 disk/ahci.c:529: err: 0 disk/ahci.c:537: err: 0 disk/ahci.c:529: err: 0 disk/ahci.c:537: err: 0 disk/ahci.c:529: err: 0 disk/ahci.c:537: err: 0 disk/ahci.c:529: err: 0 disk/ahci.c:537: err: 0 disk/ahci.c:529: err: 0 disk/ahci.c:537: err: 0 disk/ahci.c:529: err: 0 disk/ahci.c:537: err: 0 disk/ahci.c:555: couldn't detect device on port 0 disk/ahci.c:555: couldn't detect device on port 1 disk/ahci.c:555: couldn't detect device on port 3 disk/ahci.c:555: couldn't detect device on port 4 disk/ahci.c:555: couldn't detect device on port 5 disk/ahci.c:564: err: 0 disk/ahci.c:570: err: 0 disk/ahci.c:574: err: 0 disk/ahci.c:580: offset: 220, tfd:150, CMD: 6016 disk/ahci.c:583: err: 0 disk/ahci.c:594: offset: 220, tfd:150, CMD: 6016 disk/ahci.c:597: err: 0 disk/ahci.c:650: cleaning up failed devs grub> ls disk/ahci.c:1145: opening AHCI dev `ahci2' disk/ahci.c:956: AHCI tfd = 150 disk/ahci.c:962: AHCI tfd = 150 disk/ahci.c:966: AHCI tfd = 150 disk/ahci.c:972: grub_ahci_read (size=512, cmdsize = 0) disk/ahci.c:987: AHCI tfd = 150, CL=0xc7e89400 disk/ahci.c:998: AHCI tfd = 150 disk/ahci.c:1010: AHCI tfd = 150 disk/ahci.c:1017: AHCI tfd = 150 disk/ahci.c:1028: cfis: 27 80 ec 00 00 00 00 e0 disk/ahci.c:1033: cfis: 00 00 00 00 00 00 00 00 disk/ahci.c:1045: PRDT = c7e9e000, 0, 1ff (128) disk/ahci.c:1050: AHCI command schedulded disk/ahci.c:1052: AHCI tfd = 150 disk/ahci.c:1054: AHCI inten = 0 disk/ahci.c:1056: AHCI intstatus = 0 disk/ahci.c:1061: AHCI inten = fdc000ff disk/ahci.c:1063: AHCI tfd = 150 disk/ahci.c:1066: AHCI sig = 101 disk/ahci.c:1068: AHCI tfd = 1d0 disk/ahci.c:1093: AHCI command completed <0 2 50 200 0, 0 0> disk/ahci.c:1103: last PIO FIS 0058605f e0000000 00000000 500000ff 00000200 00000000 00000000 00000000 disk/ahci.c:1113: last REG FIS 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 disk/ata.c:48: Serial: WD-WCAZA4234015 disk/ata.c:50: Firmware: 51.0AB51 disk/ata.c:52: Model: WDC WD20EARS-60MVWB0 disk/ata.c:56: Addressing: 2 disk/ata.c:57: Sectors: 3907029168 disk/ata.c:58: Sector size: 512 (ahci2) disk/ahci.c:1145: opening AHCI dev `ahci2' disk/ahci.c:956: AHCI tfd = 50 disk/ahci.c:962: AHCI tfd = 50 disk/ahci.c:966: AHCI tfd = 50 disk/ahci.c:972: grub_ahci_read (size=512, cmdsize = 0) disk/ahci.c:987: AHCI tfd = 50, CL=0xc7e89400 disk/ahci.c:998: AHCI tfd = 50 disk/ahci.c:1010: AHCI tfd = 50 disk/ahci.c:1017: AHCI tfd = 50 disk/ahci.c:1028: cfis: 27 80 ec 00 00 00 00 e0 disk/ahci.c:1033: cfis: 00 00 00 00 00 00 00 00 disk/ahci.c:1045: PRDT = c7e9e000, 0, 1ff (128) disk/ahci.c:1050: AHCI command schedulded disk/ahci.c:1052: AHCI tfd = 50 disk/ahci.c:1054: AHCI inten = fdc000ff disk/ahci.c:1056: AHCI intstatus = 2 disk/ahci.c:1061: AHCI inten = fdc000ff disk/ahci.c:1063: AHCI tfd = 50 disk/ahci.c:1066: AHCI sig = 101 disk/ahci.c:1068: AHCI tfd = d0 disk/ahci.c:1093: AHCI command completed <0 2 50 200 0, 0 0> disk/ahci.c:1103: last PIO FIS 0058605f e0000000 00000000 500000ff 00000200 00000000 00000000 00000000 disk/ahci.c:1113: last REG FIS 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 disk/ata.c:48: Serial: WD-WCAZA4234015 disk/ata.c:50: Firmware: 51.0AB51 disk/ata.c:52: Model: WDC WD20EARS-60MVWB0 disk/ata.c:56: Addressing: 2 disk/ata.c:57: Sectors: 3907029168 disk/ata.c:58: Sector size: 512 disk/ata.c:293: grub_ata_readwrite (size=64, rw=0) disk/ata.c:337: rw=0, sector=0, batch=64 disk/ahci.c:956: AHCI tfd = 50 disk/ahci.c:962: AHCI tfd = 50 disk/ahci.c:966: AHCI tfd = 50 disk/ahci.c:972: grub_ahci_read (size=32768, cmdsize = 0) disk/ahci.c:987: AHCI tfd = 50, CL=0xc7e89400 disk/ahci.c:998: AHCI tfd = 50 disk/ahci.c:1010: AHCI tfd = 50 disk/ahci.c:1017: AHCI tfd = 50 disk/ahci.c:1028: cfis: 27 80 c8 00 00 00 00 e0 disk/ahci.c:1033: cfis: 00 00 00 00 40 00 00 00 disk/ahci.c:1045: PRDT = c7e4f000, 0, 7fff (128) disk/ahci.c:1050: AHCI command schedulded disk/ahci.c:1052: AHCI tfd = 50 disk/ahci.c:1054: AHCI inten = fdc000ff disk/ahci.c:1056: AHCI intstatus = 2 disk/ahci.c:1061: AHCI inten = fdc000ff disk/ahci.c:1063: AHCI tfd = 50 disk/ahci.c:1066: AHCI sig = 101 disk/ahci.c:1068: AHCI tfd = d0 disk/ahci.c:1093: AHCI command completed <0 1 50 8000 0, 0 0> disk/ahci.c:1103: last PIO FIS 0058605f e0000000 00000000 500000ff 00000200 00000000 00000000 00000000 disk/ahci.c:1113: last REG FIS 00504034 e000003f 00000000 00000000 00000000 00000000 00000000 00000000 (ahci2,msdos2) (ahci2,msdos1) disk/ahci.c:1145: opening AHCI dev `ahci2' disk/ahci.c:956: AHCI tfd = 50 disk/ahci.c:962: AHCI tfd = 50 disk/ahci.c:966: AHCI tfd = 50 disk/ahci.c:972: grub_ahci_read (size=512, cmdsize = 0) disk/ahci.c:987: AHCI tfd = 50, CL=0xc7e89400 disk/ahci.c:998: AHCI tfd = 50 disk/ahci.c:1010: AHCI tfd = 50 disk/ahci.c:1017: AHCI tfd = 50 disk/ahci.c:1028: cfis: 27 80 ec 00 00 00 00 e0 disk/ahci.c:1033: cfis: 00 00 00 00 00 00 00 00 disk/ahci.c:1045: PRDT = c7e88400, 0, 1ff (128) disk/ahci.c:1050: AHCI command schedulded disk/ahci.c:1052: AHCI tfd = 50 disk/ahci.c:1054: AHCI inten = fdc000ff disk/ahci.c:1056: AHCI intstatus = 1 disk/ahci.c:1061: AHCI inten = fdc000ff disk/ahci.c:1063: AHCI tfd = 50 disk/ahci.c:1066: AHCI sig = 101 disk/ahci.c:1068: AHCI tfd = d0 disk/ahci.c:1093: AHCI command completed <0 2 50 200 0, 0 0> disk/ahci.c:1103: last PIO FIS 0058605f e0000000 00000000 500000ff 00000200 00000000 00000000 00000000 disk/ahci.c:1113: last REG FIS 00504034 e000003f 00000000 00000000 00000000 00000000 00000000 00000000 disk/ata.c:48: Serial: WD-WCAZA4234015 disk/ata.c:50: Firmware: 51.0AB51 disk/ata.c:52: Model: WDC WD20EARS-60MVWB0 disk/ata.c:56: Addressing: 2 disk/ata.c:57: Sectors: 3907029168 disk/ata.c:58: Sector size: 512 (memdisk) (cbfsdisk) grub> set debug= Judging from the following register values disk/ahci.c:267: tfd[2]: 80 disk/ahci.c:269: cmd[2]: 2006 disk/ahci.c:271: st[2]: 123 disk/ahci.c:273: err[2]: 40d0000 I’d say a port reset is missing. The ASRock E350M1 uses AMD’s AGESA code which, I think, also does some SATA initialization. That might be the reason, that coreboot/GRUB payload users do not experience this with Intel hardware. Thanks, Paul
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel