Small changes in the Voodoo Banshee code.
- Redirect byte and word writes into CMDFIFO space to LFB (FIXME). - Added stub for the CMDFIFO code #6 (AGP-to-VRAM transfer).
This commit is contained in:
parent
7e75d3d66b
commit
a23db5e82a
@ -935,10 +935,20 @@ void bx_banshee_c::mem_write(bx_phy_address addr, unsigned len, void *data)
|
||||
} else if ((addr & ~0x1ffffff) == pci_bar[1].addr) {
|
||||
if (v->fbi.cmdfifo[0].enabled && (offset >= v->fbi.cmdfifo[0].base) &&
|
||||
(offset < v->fbi.cmdfifo[0].end)) {
|
||||
cmdfifo_w(&v->fbi.cmdfifo[0], offset, value);
|
||||
if (len == 4) {
|
||||
cmdfifo_w(&v->fbi.cmdfifo[0], offset, value);
|
||||
} else {
|
||||
BX_ERROR(("CMDFIFO #0 write with len = %d redirected to LFB", len));
|
||||
mem_write_linear(offset, value, len);
|
||||
}
|
||||
} else if (v->fbi.cmdfifo[1].enabled && (offset >= v->fbi.cmdfifo[1].base) &&
|
||||
(offset < v->fbi.cmdfifo[1].end)) {
|
||||
cmdfifo_w(&v->fbi.cmdfifo[1], offset, value);
|
||||
if (len == 4) {
|
||||
cmdfifo_w(&v->fbi.cmdfifo[1], offset, value);
|
||||
} else {
|
||||
BX_ERROR(("CMDFIFO #1 write with len = %d redirected to LFB", len));
|
||||
mem_write_linear(offset, value, len);
|
||||
}
|
||||
} else {
|
||||
mem_write_linear(offset, value, len);
|
||||
}
|
||||
|
@ -2962,7 +2962,7 @@ void cmdfifo_process(cmdfifo_info *f)
|
||||
BX_DEBUG(("cmdfifo_process(): JMP 0x%08x", f->rdptr));
|
||||
}
|
||||
break;
|
||||
case 4: // JMP AGP
|
||||
case 4: // TODO: JMP AGP
|
||||
data = cmdfifo_r(f);
|
||||
default:
|
||||
BX_ERROR(("CMDFIFO packet type 0: unsupported code %d", code));
|
||||
@ -3194,6 +3194,12 @@ void cmdfifo_process(cmdfifo_info *f)
|
||||
BX_ERROR(("CMDFIFO packet type 5: unsupported destination type %d", code));
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
// TODO: AGP to VRAM transfer
|
||||
cmdfifo_r(f);
|
||||
cmdfifo_r(f);
|
||||
cmdfifo_r(f);
|
||||
cmdfifo_r(f);
|
||||
default:
|
||||
BX_ERROR(("CMDFIFO: unsupported packet type %d", type));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user