diff --git a/kernel/driver/disk/ahci/ahci.c b/kernel/driver/disk/ahci/ahci.c index 14fd1e0e..77da7380 100644 --- a/kernel/driver/disk/ahci/ahci.c +++ b/kernel/driver/disk/ahci/ahci.c @@ -315,13 +315,13 @@ static bool ahci_write(HBA_PORT *port, uint32_t startl, uint32_t starth, uint32_ int i = 0; for (i = 0; i < cmdheader->prdtl - 1; ++i) { - cmdtbl->prdt_entry[i].dba = buf; + cmdtbl->prdt_entry[i].dba = virt_2_phys(buf); cmdtbl->prdt_entry[i].dbc = 8 * 1024 - 1; // 8K bytes cmdtbl->prdt_entry[i].i = 0; buf += 4 * 1024; // 4K words count -= 16; // 16 sectors } - cmdtbl->prdt_entry[i].dba = buf; + cmdtbl->prdt_entry[i].dba = virt_2_phys(buf); cmdtbl->prdt_entry[i].dbc = count << 9; // 512 bytes per sector cmdtbl->prdt_entry[i].i = 0;