Improve Banshee error reporting
Stubbed Banshee AGP registers
This commit is contained in:
@@ -98,6 +98,12 @@ typedef struct banshee_t {
|
||||
uint32_t vidScreenSize;
|
||||
uint32_t vidSerialParallelPort;
|
||||
|
||||
uint32_t agpReqSize;
|
||||
uint32_t agpHostAddressHigh;
|
||||
uint32_t agpHostAddressLow;
|
||||
uint32_t agpGraphicsAddress;
|
||||
uint32_t agpGraphicsStride;
|
||||
|
||||
int overlay_pix_fmt;
|
||||
|
||||
uint32_t hwCurPatAddr, hwCurLoc, hwCurC0, hwCurC1;
|
||||
@@ -161,19 +167,25 @@ enum {
|
||||
Video_vidOverlayDvdy = 0xac,
|
||||
Video_vidOverlayDvdyOffset = 0xe0,
|
||||
Video_vidDesktopStartAddr = 0xe4,
|
||||
Video_vidDesktopOverlayStride = 0xe8
|
||||
Video_vidDesktopOverlayStride = 0xe8,
|
||||
};
|
||||
|
||||
enum {
|
||||
cmdBaseAddr0 = 0x20,
|
||||
cmdBaseSize0 = 0x24,
|
||||
cmdBump0 = 0x28,
|
||||
cmdRdPtrL0 = 0x2c,
|
||||
cmdRdPtrH0 = 0x30,
|
||||
cmdAMin0 = 0x34,
|
||||
cmdAMax0 = 0x3c,
|
||||
cmdFifoDepth0 = 0x44,
|
||||
cmdHoleCnt0 = 0x48
|
||||
cmdBaseAddr0 = 0x20,
|
||||
cmdBaseSize0 = 0x24,
|
||||
cmdBump0 = 0x28,
|
||||
cmdRdPtrL0 = 0x2c,
|
||||
cmdRdPtrH0 = 0x30,
|
||||
cmdAMin0 = 0x34,
|
||||
cmdAMax0 = 0x3c,
|
||||
cmdFifoDepth0 = 0x44,
|
||||
cmdHoleCnt0 = 0x48,
|
||||
|
||||
Agp_agpReqSize = 0x00,
|
||||
Agp_agpHostAddressLow = 0x04,
|
||||
Agp_agpHostAddressHigh = 0x08,
|
||||
Agp_agpGraphicsAddress = 0x0C,
|
||||
Agp_agpGraphicsStride = 0x10,
|
||||
};
|
||||
|
||||
#define VGAINIT0_EXTENDED_SHIFT_OUT (1 << 12)
|
||||
@@ -1123,6 +1135,26 @@ banshee_cmd_read(banshee_t *banshee, uint32_t addr)
|
||||
uint32_t ret = 0xffffffff;
|
||||
|
||||
switch (addr & 0x1fc) {
|
||||
case Agp_agpHostAddressLow:
|
||||
ret = banshee->agpHostAddressLow;
|
||||
break;
|
||||
|
||||
case Agp_agpHostAddressHigh:
|
||||
ret = banshee->agpHostAddressHigh;
|
||||
break;
|
||||
|
||||
case Agp_agpGraphicsAddress:
|
||||
ret = banshee->agpGraphicsAddress;
|
||||
break;
|
||||
|
||||
case Agp_agpGraphicsStride:
|
||||
ret = banshee->agpGraphicsStride;
|
||||
break;
|
||||
|
||||
case Agp_agpReqSize:
|
||||
ret = banshee->agpReqSize;
|
||||
break;
|
||||
|
||||
case cmdBaseAddr0:
|
||||
ret = voodoo->cmdfifo_base >> 12;
|
||||
// banshee_log("Read cmdfifo_base %08x\n", ret);
|
||||
@@ -1142,7 +1174,7 @@ banshee_cmd_read(banshee_t *banshee, uint32_t addr)
|
||||
break;
|
||||
|
||||
default:
|
||||
fatal("Unknown banshee_cmd_read %08x\n", addr);
|
||||
fatal("Unknown banshee_cmd_read 0x%08x (reg 0x%03x)\n", addr, addr & 0x1fc);
|
||||
}
|
||||
|
||||
return ret;
|
||||
@@ -1348,6 +1380,26 @@ banshee_cmd_write(banshee_t *banshee, uint32_t addr, uint32_t val)
|
||||
voodoo_t *voodoo = banshee->voodoo;
|
||||
// banshee_log("banshee_cmd_write: addr=%03x val=%08x\n", addr & 0x1fc, val);
|
||||
switch (addr & 0x1fc) {
|
||||
case Agp_agpHostAddressLow:
|
||||
banshee->agpHostAddressLow = val;
|
||||
break;
|
||||
|
||||
case Agp_agpHostAddressHigh:
|
||||
banshee->agpHostAddressHigh = val;
|
||||
break;
|
||||
|
||||
case Agp_agpGraphicsAddress:
|
||||
banshee->agpGraphicsAddress = val;
|
||||
break;
|
||||
|
||||
case Agp_agpGraphicsStride:
|
||||
banshee->agpGraphicsStride = val;
|
||||
break;
|
||||
|
||||
case Agp_agpReqSize:
|
||||
banshee->agpReqSize = val;
|
||||
break;
|
||||
|
||||
case cmdBaseAddr0:
|
||||
voodoo->cmdfifo_base = (val & 0xfff) << 12;
|
||||
voodoo->cmdfifo_end = voodoo->cmdfifo_base + (((voodoo->cmdfifo_size & 0xff) + 1) << 12);
|
||||
@@ -1382,7 +1434,7 @@ banshee_cmd_write(banshee_t *banshee, uint32_t addr, uint32_t val)
|
||||
break;
|
||||
|
||||
default:
|
||||
banshee_log("Unknown banshee_cmd_write: addr=%08x val=%08x\n", addr, val);
|
||||
banshee_log("Unknown banshee_cmd_write: addr=%08x val=%08x reg=0x%03x\n", addr, val, addr & 0x1fc);
|
||||
break;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user