ref: b2b2d2cb4c5cb3153760084a55584817a2c58a24
parent: 5ea540e75def56d3c2b5ef16f0f4e91d5f5c0ad1
author: cinap_lenrek <[email protected]>
date: Sat Dec 12 13:16:06 EST 2020
sdiahci: assume 64-bit PCIWADDR()
--- a/sys/src/9/pc/sdiahci.c
+++ b/sys/src/9/pc/sdiahci.c
@@ -21,7 +21,6 @@
#define idprint(...) if(prid) print(__VA_ARGS__); else USED(prid)
#define aprint(...) if(datapi) print(__VA_ARGS__); else USED(datapi)
#define ledprint(...) if(dled) print(__VA_ARGS__); else USED(dled)
-#define Pciwaddrh(a) 0
#define Tname(c) tname[(c)->type]
#define Ticks MACHP(0)->ticks
#define MS2TK(t) (((ulong)(t)*HZ)/1000)
@@ -284,20 +283,23 @@
Actab *t;
Alist *l;
Aprdt *p;
+ uvlong pa;
t = m->ctab;
if(data && len > 0){
+ pa = PCIWADDR(data);
p = &t->prdt;
- p->dba = PCIWADDR(data);
- p->dbahi = Pciwaddrh(data);
+ p->dba = pa;
+ p->dbahi = pa>>32;
p->count = 1<<31 | len - 2 | 1;
flags |= 1<<16;
}
+ pa = PCIWADDR(t);
l = m->list;
l->flags = flags | 0x5;
l->len = 0;
- l->ctab = PCIWADDR(t);
- l->ctabhi = Pciwaddrh(t);
+ l->ctab = pa;
+ l->ctabhi = pa>>32;
return l;
}
@@ -600,6 +602,7 @@
static int
ahciconfigdrive(Ahba *h, Aportc *c, int mode)
{
+ uvlong pa;
Aportm *m;
Aport *p;
int i;
@@ -618,10 +621,12 @@
return -1;
}
- p->list = PCIWADDR(m->list);
- p->listhi = Pciwaddrh(m->list);
- p->fis = PCIWADDR(m->fis.base);
- p->fishi = Pciwaddrh(m->fis.base);
+ pa = PCIWADDR(m->list);
+ p->list = pa;
+ p->listhi = pa>>32;
+ pa = PCIWADDR(m->fis.base);
+ p->fis = pa;
+ p->fishi = pa>>32;
p->cmd |= Afre;