summaryrefslogtreecommitdiff
path: root/sys/src
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2020-06-06 16:44:14 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2020-06-06 16:44:14 +0200
commit301148756eae8c9821ae0321cfe30a3a75b67a68 (patch)
treef0360ec8bd23b0fb29b1c182577a2cc4c971b3c9 /sys/src
parent4c8d2b0ebf1fd3fe5b96e227da23a82f669a82fa (diff)
aux/vga: use 64-bit physical addresses for pci membar
Diffstat (limited to 'sys/src')
-rw-r--r--sys/src/cmd/aux/vga/3dfx.c3
-rw-r--r--sys/src/cmd/aux/vga/i81x.c4
-rw-r--r--sys/src/cmd/aux/vga/mach64xx.c3
-rw-r--r--sys/src/cmd/aux/vga/main.c4
-rw-r--r--sys/src/cmd/aux/vga/pci.c4
-rw-r--r--sys/src/cmd/aux/vga/pci.h2
-rw-r--r--sys/src/cmd/aux/vga/vga.c2
-rw-r--r--sys/src/cmd/aux/vga/vga.h2
8 files changed, 13 insertions, 11 deletions
diff --git a/sys/src/cmd/aux/vga/3dfx.c b/sys/src/cmd/aux/vga/3dfx.c
index d1a4b59f8..997849497 100644
--- a/sys/src/cmd/aux/vga/3dfx.c
+++ b/sys/src/cmd/aux/vga/3dfx.c
@@ -81,7 +81,8 @@ snarf(Vga* vga, Ctlr* ctlr)
vga->n[1] = 256;
vga->p[1] = 4;
- if((v = (tdfx->pci->mem[2].bar & ~0x3)) == 0)
+ v = tdfx->pci->mem[2].bar & ~0x3;
+ if(v == 0)
error("%s: I/O not mapped\n", ctlr->name);
tdfx->io = v;
diff --git a/sys/src/cmd/aux/vga/i81x.c b/sys/src/cmd/aux/vga/i81x.c
index dc0001c0f..243512e2e 100644
--- a/sys/src/cmd/aux/vga/i81x.c
+++ b/sys/src/cmd/aux/vga/i81x.c
@@ -403,10 +403,10 @@ dump(Vga* vga, Ctlr* ctlr)
p = i81x->pci;
printitem(name, "mem[0]");
- Bprint(&stdout, "base %lux size %d\n", p->mem[0].bar & ~0x0F, p->mem[0].size);
+ Bprint(&stdout, "base %llux size %d\n", p->mem[0].bar & ~0x0F, p->mem[0].size);
printitem(name, "mem[1]");
- Bprint(&stdout, "base %lux size %d\n", p->mem[1].bar & ~0x0F, p->mem[1].size);
+ Bprint(&stdout, "base %llux size %d\n", p->mem[1].bar & ~0x0F, p->mem[1].size);
}
diff --git a/sys/src/cmd/aux/vga/mach64xx.c b/sys/src/cmd/aux/vga/mach64xx.c
index b2c549eac..a0e56fc98 100644
--- a/sys/src/cmd/aux/vga/mach64xx.c
+++ b/sys/src/cmd/aux/vga/mach64xx.c
@@ -379,7 +379,8 @@ snarf(Vga* vga, Ctlr* ctlr)
mp->iow32 = portiow32;
mp->pci = pcimatch(0, 0x1002, 0);
if (mp->pci) {
- if(v = mp->pci->mem[1].bar & ~0x3) {
+ v = mp->pci->mem[1].bar & ~0x3;
+ if(v != 0) {
mp->io = v;
mp->ior32 = pciior32;
mp->iow32 = pciiow32;
diff --git a/sys/src/cmd/aux/vga/main.c b/sys/src/cmd/aux/vga/main.c
index a3915d2ae..8d044c906 100644
--- a/sys/src/cmd/aux/vga/main.c
+++ b/sys/src/cmd/aux/vga/main.c
@@ -131,12 +131,12 @@ linear(Vga* vga)
* new: addr p 0x12345678 v 0x82345678 size 0x123
*/
if(buf[0]=='p' && buf[1]==' '){
- vga->vmb = strtoul(buf+2, 0, 0);
+ vga->vmb = strtoull(buf+2, 0, 0);
p = strstr(buf, "size");
if(p)
vga->apz = strtoul(p+4, 0, 0);
}else
- vga->vmb = strtoul(buf, 0, 0);
+ vga->vmb = strtoull(buf, 0, 0);
}
else
vgactlw("linear", "0");
diff --git a/sys/src/cmd/aux/vga/pci.c b/sys/src/cmd/aux/vga/pci.c
index ad1227101..2b4c57e0c 100644
--- a/sys/src/cmd/aux/vga/pci.c
+++ b/sys/src/cmd/aux/vga/pci.c
@@ -70,9 +70,9 @@ pcicfginit(void)
j = strtol(s+1, &s, 10);
if(j < 0 || j >= nelem(p->mem))
break;
- p->mem[j].bar = strtoul(s+1, &s, 16);
+ p->mem[j].bar = strtoull(s+1, &s, 16);
p->mem[j].size = strtoul(s+1, &s, 10);
- trace("\tmem[%d] = %lux %d\n", j, p->mem[j].bar, p->mem[j].size);
+ trace("\tmem[%d] = %llux %d\n", j, p->mem[j].bar, p->mem[j].size);
}
if(pcilist != nil)
diff --git a/sys/src/cmd/aux/vga/pci.h b/sys/src/cmd/aux/vga/pci.h
index a245b0f96..f0f886aed 100644
--- a/sys/src/cmd/aux/vga/pci.h
+++ b/sys/src/cmd/aux/vga/pci.h
@@ -92,7 +92,7 @@ typedef struct Pcidev {
uchar rid; /* revision ID */
struct {
- ulong bar; /* base address */
+ uvlong bar; /* base address */
int size;
} mem[6];
diff --git a/sys/src/cmd/aux/vga/vga.c b/sys/src/cmd/aux/vga/vga.c
index 7269a07b3..c208b81a4 100644
--- a/sys/src/cmd/aux/vga/vga.c
+++ b/sys/src/cmd/aux/vga/vga.c
@@ -459,7 +459,7 @@ dump(Vga* vga, Ctlr* ctlr)
if(vga->vma || vga->vmb){
printitem(ctlr->name, "vm a b");
- Bprint(&stdout, "%9lud %8lud\n", vga->vma, vga->vmb);
+ Bprint(&stdout, "%9lud %8llud\n", vga->vma, vga->vmb);
}
if(vga->vmz){
printitem(ctlr->name, "vmz");
diff --git a/sys/src/cmd/aux/vga/vga.h b/sys/src/cmd/aux/vga/vga.h
index 62955004b..daea27467 100644
--- a/sys/src/cmd/aux/vga/vga.h
+++ b/sys/src/cmd/aux/vga/vga.h
@@ -197,7 +197,7 @@ typedef struct Vga {
ulong r[2];
ulong vma; /* video memory linear-address alignment */
- ulong vmb; /* video memory linear-address base */
+ uvlong vmb; /* video memory linear-address base */
ulong apz; /* aperture size */
ulong vmz; /* video memory size */