From 3063a340e23bdd4be7e4ea62cb861e51d9abda5f Mon Sep 17 00:00:00 2001 From: fslongjin Date: Sat, 9 Apr 2022 21:15:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dahci=E7=BC=93=E5=86=B2?= =?UTF-8?q?=E5=8C=BA=E5=9C=B0=E5=9D=80=E9=94=99=E8=AF=AF=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/driver/disk/ahci/ahci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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;