[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
AHCI: SATA drive not detected by GRUB payload for coreboot
From: |
Paul Menzel |
Subject: |
AHCI: SATA drive not detected by GRUB payload for coreboot |
Date: |
Mon, 25 May 2015 14:57:20 +0200 |
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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- AHCI: SATA drive not detected by GRUB payload for coreboot,
Paul Menzel <=