shithub: riscv

Download patch

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;