diff options
author | Stuart Bennett <stuart@freedesktop.org> | 2009-04-04 03:01:04 +0100 |
---|---|---|
committer | Stuart Bennett <stuart@freedesktop.org> | 2009-04-04 17:24:04 +0100 |
commit | 05a05e023391d9e9115993463b111bb1ee4c30be (patch) | |
tree | e3c9ec5aead491b5c4455b5aa6e694203dd1d1a8 /radeontool.c | |
parent | 23998ede836cea9296e3a2193ae25bd9ba85d1c9 (diff) |
Import new reg defines, drop some regs from default list, add others
Also some warning and output formatting fixes
Diffstat (limited to 'radeontool.c')
-rw-r--r-- | radeontool.c | 204 |
1 files changed, 98 insertions, 106 deletions
diff --git a/radeontool.c b/radeontool.c index aba5918..11dd366 100644 --- a/radeontool.c +++ b/radeontool.c @@ -24,7 +24,7 @@ #include <fnmatch.h> #include <stdint.h> -#include "nouveau_reg.h" +#include "nvreg.h" int debug=0; int skip; @@ -174,9 +174,9 @@ uint8_t get_vga_crtc_reg(int crtc, int reg) int offset; uint8_t retval; if (crtc==0) - offset = NV_PCIO0_OFFSET; + offset = NV_PRMCIO0_OFFSET; else - offset = NV_PCIO0_OFFSET + 0x2000; + offset = NV_PRMCIO1_OFFSET; radeon_set8(offset+CRTC_INDEX, "CRTC", reg); retval = radeon_get8(offset+CRTC_DATA, "CRTC") & 0xff; @@ -188,9 +188,9 @@ void set_vga_crtc_reg(int crtc, int reg, uint8_t val) { int offset; if (crtc==0) - offset = NV_PCIO0_OFFSET; + offset = NV_PRMCIO0_OFFSET; else - offset = NV_PCIO0_OFFSET + 0x2000; + offset = NV_PRMCIO1_OFFSET; radeon_set8(offset+CRTC_INDEX, "CRTC", reg); radeon_set8(offset+CRTC_DATA, "CRTC", val); @@ -198,35 +198,24 @@ void set_vga_crtc_reg(int crtc, int reg, uint8_t val) uint32_t get_tmds_index_reg(int index, int reg) { - uint32_t idx_reg; + uint32_t offset = 0; uint32_t retval; - if (index == 0) - idx_reg = NV_RAMDAC_FP_TMDS_DATA; - else - idx_reg = NV_RAMDAC_FP_TMDS_OTHER; + if (index) + offset = NV_PRAMDAC0_SIZE; - radeon_set32(NV_PRAMDAC0_OFFSET + idx_reg, "FPTMDS", 0x10000 | reg); - retval = radeon_get32(NV_PRAMDAC0_OFFSET + idx_reg + 4, "FPTMDS"); + radeon_set32(NV_PRAMDAC_FP_TMDS_CONTROL + offset, "FPTMDS", 0x10000 | reg); + retval = radeon_get32(NV_PRAMDAC_FP_TMDS_DATA + offset, "FPTMDS"); return retval; } void set_crtc_owner(int crtc) { - int offset; - if (crtc==0) - offset = NV_PCIO0_OFFSET; - else - offset = NV_PCIO0_OFFSET + 0x2000; - - radeon_set8(offset+CRTC_INDEX, "CRTC", NV_VGA_CRTCX_OWNER); - radeon_set8(offset+CRTC_DATA, "CRTC", crtc ? 0x3 : 0x0); - + radeon_set8(NV_PRMCIO_CRX__COLOR, "CRTC", NV_CIO_CRE_44); + radeon_set8(NV_PRMCIO_CR__COLOR, "CRTC", crtc ? 0x3 : 0x0); } - - -int dump_vga_regs(int crtc) +void dump_vga_regs(int crtc) { int i; @@ -236,31 +225,29 @@ int dump_vga_regs(int crtc) printf("CRTC%2d %02X\t%02X %02X %02X %02X\n", crtc, i, get_vga_crtc_reg(crtc, i), get_vga_crtc_reg(crtc, i+1), get_vga_crtc_reg(crtc, i+2), get_vga_crtc_reg(crtc, i+3)); -#define SHOW_VGA_CRTC_REG(r) printf("%s%d\t%02x\n", #r, crtc, get_vga_crtc_reg(crtc, r)) - SHOW_VGA_CRTC_REG(NV_VGA_CRTCX_REPAINT0); - SHOW_VGA_CRTC_REG(NV_VGA_CRTCX_REPAINT1); - SHOW_VGA_CRTC_REG(NV_VGA_CRTCX_FIFO0); - SHOW_VGA_CRTC_REG(NV_VGA_CRTCX_FIFO1); - SHOW_VGA_CRTC_REG(NV_VGA_CRTCX_LOCK); - SHOW_VGA_CRTC_REG(NV_VGA_CRTCX_FIFO_LWM); - SHOW_VGA_CRTC_REG(NV_VGA_CRTCX_BUFFER); - SHOW_VGA_CRTC_REG(NV_VGA_CRTCX_LSR); - SHOW_VGA_CRTC_REG(NV_VGA_CRTCX_PIXEL); - SHOW_VGA_CRTC_REG(NV_VGA_CRTCX_HEB); - SHOW_VGA_CRTC_REG(NV_VGA_CRTCX_CURCTL0); - SHOW_VGA_CRTC_REG(NV_VGA_CRTCX_CURCTL1); - SHOW_VGA_CRTC_REG(NV_VGA_CRTCX_CURCTL2); - SHOW_VGA_CRTC_REG(NV_VGA_CRTCX_LCD); - SHOW_VGA_CRTC_REG(NV_VGA_CRTCX_INTERLACE); - SHOW_VGA_CRTC_REG(NV_VGA_CRTCX_EXTRA); - SHOW_VGA_CRTC_REG(NV_VGA_CRTCX_OWNER); - SHOW_VGA_CRTC_REG(NV_VGA_CRTCX_SWAPPING); - SHOW_VGA_CRTC_REG(NV_VGA_CRTCX_FIFO_LWM_NV30); - - SHOW_VGA_CRTC_REG(NV_VGA_CRTCX_FP_HTIMING); - SHOW_VGA_CRTC_REG(NV_VGA_CRTCX_FP_VTIMING); - SHOW_VGA_CRTC_REG(NV_VGA_CRTCX_UNK35); - SHOW_VGA_CRTC_REG(NV_VGA_CRTCX_UNK58); +#define SHOW_VGA_CRTC_REG(r) printf("%s-%s\t%02x\n", #r, crtc ? "HB" : "HA", get_vga_crtc_reg(crtc, r)) + SHOW_VGA_CRTC_REG(NV_CIO_CRE_RPC0_INDEX); + SHOW_VGA_CRTC_REG(NV_CIO_CRE_RPC1_INDEX); + SHOW_VGA_CRTC_REG(NV_CIO_CRE_FF_INDEX); + SHOW_VGA_CRTC_REG(NV_CIO_CRE_ENH_INDEX); + SHOW_VGA_CRTC_REG(NV_CIO_SR_LOCK_INDEX); + SHOW_VGA_CRTC_REG(NV_CIO_CRE_FFLWM__INDEX); + SHOW_VGA_CRTC_REG(NV_CIO_CRE_21); + SHOW_VGA_CRTC_REG(NV_CIO_CRE_LSR_INDEX); + SHOW_VGA_CRTC_REG(NV_CIO_CRE_PIXEL_INDEX); + SHOW_VGA_CRTC_REG(NV_CIO_CRE_HEB__INDEX); + SHOW_VGA_CRTC_REG(NV_CIO_CRE_HCUR_ADDR0_INDEX); + SHOW_VGA_CRTC_REG(NV_CIO_CRE_HCUR_ADDR1_INDEX); + SHOW_VGA_CRTC_REG(NV_CIO_CRE_HCUR_ADDR2_INDEX); + SHOW_VGA_CRTC_REG(NV_CIO_CRE_LCD__INDEX); + SHOW_VGA_CRTC_REG(NV_CIO_CRE_ILACE__INDEX); + SHOW_VGA_CRTC_REG(NV_CIO_CRE_EBR_INDEX); + SHOW_VGA_CRTC_REG(NV_CIO_CRE_44); + SHOW_VGA_CRTC_REG(NV_CIO_CRE_RCR); + SHOW_VGA_CRTC_REG(NV_CIO_CRE_47); + SHOW_VGA_CRTC_REG(NV_CIO_CRE_53); + SHOW_VGA_CRTC_REG(NV_CIO_CRE_54); + SHOW_VGA_CRTC_REG(NV_CIO_CRE_59); } void dump_tmds_regs(int index) @@ -275,68 +262,74 @@ void radeon_cmd_regs(void) { #define SHOW_REG(r) printf("%s\t%08x\n", #r, radeon_get32(r, #r)) - SHOW_REG(NV_PFIFO_RAMHT); - SHOW_REG(NV_PFIFO_RAMRO); - SHOW_REG(NV_PFIFO_RAMFC); - SHOW_REG(NV40_PFIFO_RAMFC); - -#define SHOW_CRTC_REG(r) do { printf("%08X: %s0\t%08x\n", NV_PCRTC0_OFFSET+r, #r, radeon_get32(NV_PCRTC0_OFFSET+r, #r)); \ - printf("%08X: %s1\t%08x\n", NV_PCRTC1_OFFSET+r, #r, radeon_get32(NV_PCRTC1_OFFSET+r, #r)); \ +SHOW_REG(NV_PMC_BOOT_0); +SHOW_REG(NV_PMC_ENABLE); + +SHOW_REG(NV_PBUS_DEBUG_1); + +SHOW_REG(NV_PFB_CSTATUS); + +SHOW_REG(NV_PEXTDEV_BOOT_0); + +#define SHOW_CRTC_REG(r) do { printf("%08X: %s-HA\t%08x\n", r, #r, radeon_get32(r, #r)); \ + printf("%08X: %s-HB\t%08x\n", 0x2000+r, #r, radeon_get32(0x2000+r, #r)); \ } while(0) - SHOW_CRTC_REG(NV_CRTC_START); - SHOW_CRTC_REG(NV_CRTC_CURSOR_CONFIG); - SHOW_CRTC_REG(NV_CRTC_HEAD_CONFIG); - SHOW_CRTC_REG(NV_CRTC_081C); - SHOW_CRTC_REG(NV_CRTC_0830); - SHOW_CRTC_REG(NV_CRTC_0834); + SHOW_CRTC_REG(NV_PCRTC_START); + SHOW_CRTC_REG(NV_PCRTC_CURSOR_CONFIG); + SHOW_CRTC_REG(NV_PCRTC_830); + SHOW_CRTC_REG(NV_PCRTC_834); + SHOW_CRTC_REG(NV_PCRTC_ENGINE_CTRL); -#define SHOW_RAMDAC0_REG(r) do { printf("%08X: %s0\t%08x\n", NV_PRAMDAC0_OFFSET+r, #r, radeon_get32(NV_PRAMDAC0_OFFSET+r, #r)); } while(0) +#define SHOW_RAMDAC0_REG(r) do { printf("%08X: %s\t%08x\n", r, #r, radeon_get32(r, #r)); } while(0) -#define SHOW_RAMDAC_REG(r) do { printf("%08X: %s0\t%08x\n", NV_PRAMDAC0_OFFSET+r, #r, radeon_get32(NV_PRAMDAC0_OFFSET+r, #r)); \ - printf("%08X: %s1\t%08x\n", NV_PRAMDAC1_OFFSET+r, #r, radeon_get32(NV_PRAMDAC1_OFFSET+r, #r)); \ +#define SHOW_RAMDAC_REG(r) do { printf("%08X: %s-HA\t%08x\n", r, #r, radeon_get32(r, #r)); \ + printf("%08X: %s-HB\t%08x\n", 0x2000+r, #r, radeon_get32(0x2000+r, #r)); \ } while(0) - SHOW_RAMDAC_REG(NV_RAMDAC_CURSOR_POS); - SHOW_RAMDAC_REG(NV_RAMDAC_CURSOR_CTRL); - SHOW_RAMDAC_REG(NV_RAMDAC_CURSOR_DATA_LO); - SHOW_RAMDAC_REG(NV_RAMDAC_CURSOR_DATA_HI); - SHOW_RAMDAC_REG(NV_RAMDAC_OUTPUT); - - SHOW_RAMDAC_REG(NV_RAMDAC_FP_VDISP_END); - SHOW_RAMDAC_REG(NV_RAMDAC_FP_VTOTAL); - SHOW_RAMDAC_REG(NV_RAMDAC_FP_VCRTC); - SHOW_RAMDAC_REG(NV_RAMDAC_FP_VSYNC_START); - SHOW_RAMDAC_REG(NV_RAMDAC_FP_VSYNC_END); - SHOW_RAMDAC_REG(NV_RAMDAC_FP_VVALID_START); - SHOW_RAMDAC_REG(NV_RAMDAC_FP_VVALID_END); - SHOW_RAMDAC_REG(NV_RAMDAC_FP_HDISP_END); - SHOW_RAMDAC_REG(NV_RAMDAC_FP_HTOTAL); - SHOW_RAMDAC_REG(NV_RAMDAC_FP_HCRTC); - SHOW_RAMDAC_REG(NV_RAMDAC_FP_HSYNC_START); - SHOW_RAMDAC_REG(NV_RAMDAC_FP_HSYNC_END); - SHOW_RAMDAC_REG(NV_RAMDAC_FP_HVALID_START); - SHOW_RAMDAC_REG(NV_RAMDAC_FP_HVALID_END); - SHOW_RAMDAC_REG(NV_RAMDAC_FP_DITHER); - SHOW_RAMDAC_REG(NV_RAMDAC_FP_TEST_CONTROL); - SHOW_RAMDAC_REG(NV_RAMDAC_FP_CONTROL); - SHOW_RAMDAC_REG(NV_RAMDAC_FP_DEBUG_0); - SHOW_RAMDAC_REG(NV_RAMDAC_GENERAL_CONTROL); - SHOW_RAMDAC_REG(NV_RAMDAC_FP_TMDS_DATA); - SHOW_RAMDAC_REG(NV_RAMDAC_FP_TMDS_LVDS); - SHOW_RAMDAC_REG(NV_RAMDAC_FP_TMDS_OTHER); - SHOW_RAMDAC_REG(NV_RAMDAC_FP_TMDS_OTHER2); - SHOW_RAMDAC0_REG(NV_RAMDAC_NVPLL); - SHOW_RAMDAC0_REG(NV_RAMDAC_MPLL); - SHOW_RAMDAC0_REG(NV_RAMDAC_VPLL); - SHOW_RAMDAC0_REG(NV_RAMDAC_PLL_SELECT); + SHOW_RAMDAC0_REG(NV_PRAMDAC_NVPLL_COEFF); + SHOW_RAMDAC0_REG(NV_PRAMDAC_MPLL_COEFF); + SHOW_RAMDAC0_REG(NV_PRAMDAC_VPLL_COEFF); + SHOW_RAMDAC0_REG(NV_PRAMDAC_PLL_COEFF_SELECT); SHOW_RAMDAC0_REG(NV_RAMDAC_VPLL2); - SHOW_RAMDAC0_REG(NV_RAMDAC_SEL_CLK); + SHOW_RAMDAC0_REG(NV_PRAMDAC_SEL_CLK); SHOW_RAMDAC0_REG(NV_RAMDAC_NVPLL_B); SHOW_RAMDAC0_REG(NV_RAMDAC_MPLL_B); SHOW_RAMDAC0_REG(NV_RAMDAC_VPLL_B); SHOW_RAMDAC0_REG(NV_RAMDAC_VPLL2_B); + SHOW_RAMDAC0_REG(NV_PRAMDAC_580); + + SHOW_RAMDAC_REG(NV_PRAMDAC_DACCLK); + SHOW_RAMDAC_REG(0x680594); + + SHOW_RAMDAC_REG(NV_PRAMDAC_GENERAL_CONTROL); + + SHOW_RAMDAC_REG(NV_PRAMDAC_FP_VDISPLAY_END); + SHOW_RAMDAC_REG(NV_PRAMDAC_FP_VTOTAL); + SHOW_RAMDAC_REG(NV_PRAMDAC_FP_VCRTC); + SHOW_RAMDAC_REG(NV_PRAMDAC_FP_VSYNC_START); + SHOW_RAMDAC_REG(NV_PRAMDAC_FP_VSYNC_END); + SHOW_RAMDAC_REG(NV_PRAMDAC_FP_VVALID_START); + SHOW_RAMDAC_REG(NV_PRAMDAC_FP_VVALID_END); + SHOW_RAMDAC_REG(NV_PRAMDAC_FP_HDISPLAY_END); + SHOW_RAMDAC_REG(NV_PRAMDAC_FP_HTOTAL); + SHOW_RAMDAC_REG(NV_PRAMDAC_FP_HCRTC); + SHOW_RAMDAC_REG(NV_PRAMDAC_FP_HSYNC_START); + SHOW_RAMDAC_REG(NV_PRAMDAC_FP_HSYNC_END); + SHOW_RAMDAC_REG(NV_PRAMDAC_FP_HVALID_START); + SHOW_RAMDAC_REG(NV_PRAMDAC_FP_HVALID_END); + + SHOW_RAMDAC_REG(NV_RAMDAC_FP_DITHER); + + SHOW_RAMDAC_REG(NV_PRAMDAC_FP_TG_CONTROL); + SHOW_RAMDAC_REG(NV_PRAMDAC_FP_DEBUG_0); + SHOW_RAMDAC_REG(NV_PRAMDAC_FP_DEBUG_1); + + SHOW_RAMDAC_REG(NV_PRAMDAC_FP_TMDS_CONTROL); + SHOW_RAMDAC_REG(NV_PRAMDAC_FP_TMDS_DATA); + SHOW_RAMDAC_REG(0x6808b8); + SHOW_RAMDAC_REG(0x6808bc); dump_vga_regs(0); dump_vga_regs(1); @@ -351,7 +344,6 @@ static struct { const char *name; unsigned address; } reg_list[] = { - REGLIST(NV40_PFIFO_RAMFC), }; void radeon_reg_match(const char *pattern) @@ -390,26 +382,26 @@ void radeon_reg_set(const char *name, unsigned value) if (name[0]=='0' && name[1]=='x') { address = strtoul(&(name[2]), NULL, 16); - printf("OLD: %s (%04x)\t0x%08x\n", name, address, radeon_get32(address, name)); + printf("OLD: %s (%04lx)\t0x%08x\n", name, address, radeon_get32(address, name)); radeon_set32(address, name, value); - printf("NEW: %s (%04x)\t0x%08x\n", name, address, radeon_get32(address, name)); + printf("NEW: %s (%04lx)\t0x%08x\n", name, address, radeon_get32(address, name)); return; } if (name[0] == 'C' && name[2] == ':') { uint8_t crtc = (name[1] == '0') ? 0 : 1; address = strtol(&(name[3]), NULL, 16); - printf("OLD: %s (%04x)\t0x%02x\n", name, address, get_vga_crtc_reg(crtc, address)); + printf("OLD: %s (%04lx)\t0x%02x\n", name, address, get_vga_crtc_reg(crtc, address)); set_vga_crtc_reg(crtc, address, value); - printf("NEW: %s (%04x)\t0x%02x\n", name, address, get_vga_crtc_reg(crtc, address)); + printf("NEW: %s (%04lx)\t0x%02x\n", name, address, get_vga_crtc_reg(crtc, address)); return; } for (i=0;i<sizeof(reg_list)/sizeof(reg_list[0]);i++) { if (fnmatch(name, reg_list[i].name, 0) == 0) { const char *name = reg_list[i].name; address = reg_list[i].address; - printf("OLD: %s (%04x)\t0x%08x\n", name, address, radeon_get32(address, name)); + printf("OLD: %s (%04lx)\t0x%08x\n", name, address, radeon_get32(address, name)); radeon_set32(address, name, value); - printf("NEW: %s (%04x)\t0x%08x\n", name, address, radeon_get32(address, name)); + printf("NEW: %s (%04lx)\t0x%08x\n", name, address, radeon_get32(address, name)); } } } |