aux/vga: use 64-bit physical addresses for pci membar
This commit is contained in:
parent
4c8d2b0ebf
commit
301148756e
8 changed files with 13 additions and 11 deletions
|
@ -81,7 +81,8 @@ snarf(Vga* vga, Ctlr* ctlr)
|
||||||
vga->n[1] = 256;
|
vga->n[1] = 256;
|
||||||
vga->p[1] = 4;
|
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);
|
error("%s: I/O not mapped\n", ctlr->name);
|
||||||
tdfx->io = v;
|
tdfx->io = v;
|
||||||
|
|
||||||
|
|
|
@ -403,10 +403,10 @@ dump(Vga* vga, Ctlr* ctlr)
|
||||||
|
|
||||||
p = i81x->pci;
|
p = i81x->pci;
|
||||||
printitem(name, "mem[0]");
|
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]");
|
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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -379,7 +379,8 @@ snarf(Vga* vga, Ctlr* ctlr)
|
||||||
mp->iow32 = portiow32;
|
mp->iow32 = portiow32;
|
||||||
mp->pci = pcimatch(0, 0x1002, 0);
|
mp->pci = pcimatch(0, 0x1002, 0);
|
||||||
if (mp->pci) {
|
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->io = v;
|
||||||
mp->ior32 = pciior32;
|
mp->ior32 = pciior32;
|
||||||
mp->iow32 = pciiow32;
|
mp->iow32 = pciiow32;
|
||||||
|
|
|
@ -131,12 +131,12 @@ linear(Vga* vga)
|
||||||
* new: addr p 0x12345678 v 0x82345678 size 0x123
|
* new: addr p 0x12345678 v 0x82345678 size 0x123
|
||||||
*/
|
*/
|
||||||
if(buf[0]=='p' && buf[1]==' '){
|
if(buf[0]=='p' && buf[1]==' '){
|
||||||
vga->vmb = strtoul(buf+2, 0, 0);
|
vga->vmb = strtoull(buf+2, 0, 0);
|
||||||
p = strstr(buf, "size");
|
p = strstr(buf, "size");
|
||||||
if(p)
|
if(p)
|
||||||
vga->apz = strtoul(p+4, 0, 0);
|
vga->apz = strtoul(p+4, 0, 0);
|
||||||
}else
|
}else
|
||||||
vga->vmb = strtoul(buf, 0, 0);
|
vga->vmb = strtoull(buf, 0, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
vgactlw("linear", "0");
|
vgactlw("linear", "0");
|
||||||
|
|
|
@ -70,9 +70,9 @@ pcicfginit(void)
|
||||||
j = strtol(s+1, &s, 10);
|
j = strtol(s+1, &s, 10);
|
||||||
if(j < 0 || j >= nelem(p->mem))
|
if(j < 0 || j >= nelem(p->mem))
|
||||||
break;
|
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);
|
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)
|
if(pcilist != nil)
|
||||||
|
|
|
@ -92,7 +92,7 @@ typedef struct Pcidev {
|
||||||
uchar rid; /* revision ID */
|
uchar rid; /* revision ID */
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
ulong bar; /* base address */
|
uvlong bar; /* base address */
|
||||||
int size;
|
int size;
|
||||||
} mem[6];
|
} mem[6];
|
||||||
|
|
||||||
|
|
|
@ -459,7 +459,7 @@ dump(Vga* vga, Ctlr* ctlr)
|
||||||
|
|
||||||
if(vga->vma || vga->vmb){
|
if(vga->vma || vga->vmb){
|
||||||
printitem(ctlr->name, "vm a b");
|
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){
|
if(vga->vmz){
|
||||||
printitem(ctlr->name, "vmz");
|
printitem(ctlr->name, "vmz");
|
||||||
|
|
|
@ -197,7 +197,7 @@ typedef struct Vga {
|
||||||
ulong r[2];
|
ulong r[2];
|
||||||
|
|
||||||
ulong vma; /* video memory linear-address alignment */
|
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 apz; /* aperture size */
|
||||||
ulong vmz; /* video memory size */
|
ulong vmz; /* video memory size */
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue