summaryrefslogtreecommitdiff
path: root/avivotool.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2009-02-18 17:11:08 +1000
committerDave Airlie <airlied@redhat.com>2009-02-18 17:11:08 +1000
commit5923a7c7290e19f8adcea26a4ae1efd51f01aca1 (patch)
treee5b55823ee65d41e15ef1e4cad522df4fafdb98f /avivotool.c
parente414a144dd5115bbb9ab21778c49998afecd5edb (diff)
avivotool: fix cmdfifo dumping + add some atombios tables
Diffstat (limited to 'avivotool.c')
-rw-r--r--avivotool.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/avivotool.c b/avivotool.c
index c08c388..6439481 100644
--- a/avivotool.c
+++ b/avivotool.c
@@ -2015,15 +2015,19 @@ void radeon_rom_tables(const char * file)
void radeon_dump_cmdfifo(void)
{
int i;
- uint32_t val;
+ uint32_t val, reg;
val = radeon_get(RADEON_RBBM_CMDFIFO_STAT, "rbbm_status");
- printf("cmdfifo: rptr %d wptr %d\n", val & 63, (val >> 8) ^ 63);
+ printf("cmdfifo: rptr %d wptr %d\n", val & 63, (val >> 8) & 63);
radeon_set(RADEON_RBBM_CMDFIFO_ADDR, "rbbm", 0);
- for (i = 0; i < 64; i++) {
+ for (i = 0; i < 256; i++) {
+ radeon_set(RADEON_RBBM_CMDFIFO_ADDR, "rbbm", i + 256);
+ reg = radeon_get(RADEON_RBBM_CMDFIFO_DATA, "rbbm");
+ if (reg != 0xdeadbeaf)
+ reg = ((reg >> 4) << 2) & 0xffff;
radeon_set(RADEON_RBBM_CMDFIFO_ADDR, "rbbm", i);
val = radeon_get(RADEON_RBBM_CMDFIFO_DATA, "rbbm");
- printf("%d: %08x\n", i, val);
+ printf("%d: r=%04x = %08x\n", i, reg, val);
}
}