]> git.karo-electronics.de Git - mv-sheeva.git/commitdiff
drm/nouveau: Add some PFB register defines.
authorFrancisco Jerez <currojerez@riseup.net>
Tue, 13 Jul 2010 13:50:23 +0000 (15:50 +0200)
committerBen Skeggs <bskeggs@redhat.com>
Mon, 26 Jul 2010 01:42:13 +0000 (11:42 +1000)
Also collect all the PFB registers in a single place and remove some
duplicated definitions.

Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nouveau_bios.c
drivers/gpu/drm/nouveau/nouveau_calc.c
drivers/gpu/drm/nouveau/nouveau_mem.c
drivers/gpu/drm/nouveau/nouveau_reg.h
drivers/gpu/drm/nouveau/nv40_mc.c
drivers/gpu/drm/nouveau/nvreg.h

index 31183a41b8d69dc607d232dd9487436cecc928cd..382977cc2e4ffab6c836f7ef66232fbde37be33d 100644 (file)
@@ -2129,10 +2129,10 @@ init_compute_mem(struct nvbios *bios, uint16_t offset, struct init_exec *iexec)
         * This also has probably been done in the scripts, but an mmio trace of
         * s3 resume shows nvidia doing it anyway (unlike the NV_VIO_SRX write)
         */
-       bios_wr32(bios, NV_PFB_REFCTRL, NV_PFB_REFCTRL_VALID_1);
+       bios_wr32(bios, NV10_PFB_REFCTRL, NV10_PFB_REFCTRL_VALID_1);
 
        /* write back the saved configuration value */
-       bios_wr32(bios, NV_PFB_CFG0, bios->state.saved_nv_pfb_cfg0);
+       bios_wr32(bios, NV04_PFB_CFG0, bios->state.saved_nv_pfb_cfg0);
 
        return 1;
 }
@@ -2209,14 +2209,14 @@ init_configure_mem(struct nvbios *bios, uint16_t offset,
             reg = ROM32(bios->data[seqtbloffs += 4])) {
 
                switch (reg) {
-               case NV_PFB_PRE:
-                       data = NV_PFB_PRE_CMD_PRECHARGE;
+               case NV04_PFB_PRE:
+                       data = NV04_PFB_PRE_CMD_PRECHARGE;
                        break;
-               case NV_PFB_PAD:
-                       data = NV_PFB_PAD_CKE_NORMAL;
+               case NV04_PFB_PAD:
+                       data = NV04_PFB_PAD_CKE_NORMAL;
                        break;
-               case NV_PFB_REF:
-                       data = NV_PFB_REF_CMD_REFRESH;
+               case NV04_PFB_REF:
+                       data = NV04_PFB_REF_CMD_REFRESH;
                        break;
                default:
                        data = ROM32(bios->data[meminitdata]);
@@ -2418,7 +2418,7 @@ init_ram_condition(struct nvbios *bios, uint16_t offset,
         * offset + 1  (8 bit): mask
         * offset + 2  (8 bit): cmpval
         *
-        * Test if (NV_PFB_BOOT_0 & "mask") equals "cmpval".
+        * Test if (NV04_PFB_BOOT_0 & "mask") equals "cmpval".
         * If condition not met skip subsequent opcodes until condition is
         * inverted (INIT_NOT), or we hit INIT_RESUME
         */
@@ -2430,7 +2430,7 @@ init_ram_condition(struct nvbios *bios, uint16_t offset,
        if (!iexec->execute)
                return 3;
 
-       data = bios_rd32(bios, NV_PFB_BOOT_0) & mask;
+       data = bios_rd32(bios, NV04_PFB_BOOT_0) & mask;
 
        BIOSLOG(bios, "0x%04X: Checking if 0x%08X equals 0x%08X\n",
                offset, data, cmpval);
@@ -6343,7 +6343,7 @@ nouveau_bios_init(struct drm_device *dev)
 
        /* these will need remembering across a suspend */
        saved_nv_pextdev_boot_0 = bios_rd32(bios, NV_PEXTDEV_BOOT_0);
-       bios->state.saved_nv_pfb_cfg0 = bios_rd32(bios, NV_PFB_CFG0);
+       bios->state.saved_nv_pfb_cfg0 = bios_rd32(bios, NV04_PFB_CFG0);
 
        /* init script execution disabled */
        bios->execute = false;
index 88f9bc0941eb293a7cf727f261740900da5e14ba..ca85da78484653180ef6c03b64655df3e8117202 100644 (file)
@@ -200,7 +200,7 @@ nv04_update_arb(struct drm_device *dev, int VClk, int bpp,
        struct nv_sim_state sim_data;
        int MClk = nouveau_hw_get_clock(dev, MPLL);
        int NVClk = nouveau_hw_get_clock(dev, NVPLL);
-       uint32_t cfg1 = nvReadFB(dev, NV_PFB_CFG1);
+       uint32_t cfg1 = nvReadFB(dev, NV04_PFB_CFG1);
 
        sim_data.pclk_khz = VClk;
        sim_data.mclk_khz = MClk;
@@ -218,7 +218,7 @@ nv04_update_arb(struct drm_device *dev, int VClk, int bpp,
                sim_data.mem_latency = 3;
                sim_data.mem_page_miss = 10;
        } else {
-               sim_data.memory_type = nvReadFB(dev, NV_PFB_CFG0) & 0x1;
+               sim_data.memory_type = nvReadFB(dev, NV04_PFB_CFG0) & 0x1;
                sim_data.memory_width = (nvReadEXTDEV(dev, NV_PEXTDEV_BOOT_0) & 0x10) ? 128 : 64;
                sim_data.mem_latency = cfg1 & 0xf;
                sim_data.mem_page_miss = ((cfg1 >> 4) & 0xf) + ((cfg1 >> 31) & 0x1);
index 5c48b1e02ca434dd135a7a5dae67865e7a06f4a8..568bcc21216f3a2f281380e30a9d3315a44c2c96 100644 (file)
@@ -260,19 +260,19 @@ nouveau_mem_close(struct drm_device *dev)
 static uint32_t
 nouveau_mem_detect_nv04(struct drm_device *dev)
 {
-       uint32_t boot0 = nv_rd32(dev, NV03_BOOT_0);
+       uint32_t boot0 = nv_rd32(dev, NV04_PFB_BOOT_0);
 
        if (boot0 & 0x00000100)
                return (((boot0 >> 12) & 0xf) * 2 + 2) * 1024 * 1024;
 
-       switch (boot0 & NV03_BOOT_0_RAM_AMOUNT) {
-       case NV04_BOOT_0_RAM_AMOUNT_32MB:
+       switch (boot0 & NV04_PFB_BOOT_0_RAM_AMOUNT) {
+       case NV04_PFB_BOOT_0_RAM_AMOUNT_32MB:
                return 32 * 1024 * 1024;
-       case NV04_BOOT_0_RAM_AMOUNT_16MB:
+       case NV04_PFB_BOOT_0_RAM_AMOUNT_16MB:
                return 16 * 1024 * 1024;
-       case NV04_BOOT_0_RAM_AMOUNT_8MB:
+       case NV04_PFB_BOOT_0_RAM_AMOUNT_8MB:
                return 8 * 1024 * 1024;
-       case NV04_BOOT_0_RAM_AMOUNT_4MB:
+       case NV04_PFB_BOOT_0_RAM_AMOUNT_4MB:
                return 4 * 1024 * 1024;
        }
 
@@ -318,10 +318,10 @@ nouveau_mem_detect(struct drm_device *dev)
                dev_priv->vram_size = nouveau_mem_detect_nforce(dev);
        } else
        if (dev_priv->card_type < NV_50) {
-               dev_priv->vram_size  = nv_rd32(dev, NV04_FIFO_DATA);
-               dev_priv->vram_size &= NV10_FIFO_DATA_RAM_AMOUNT_MB_MASK;
+               dev_priv->vram_size  = nv_rd32(dev, NV04_PFB_FIFO_DATA);
+               dev_priv->vram_size &= NV10_PFB_FIFO_DATA_RAM_AMOUNT_MB_MASK;
        } else {
-               dev_priv->vram_size = nv_rd32(dev, NV04_FIFO_DATA);
+               dev_priv->vram_size = nv_rd32(dev, NV04_PFB_FIFO_DATA);
                dev_priv->vram_size |= (dev_priv->vram_size & 0xff) << 32;
                dev_priv->vram_size &= 0xffffffff00ll;
                if (dev_priv->chipset == 0xaa || dev_priv->chipset == 0xac) {
index b6391a132f0a509336caef371be81b184f97fbbc..9c1056cb8a90761415bd2f8e96303cd8ded234cf 100644 (file)
@@ -1,19 +1,64 @@
 
+#define NV04_PFB_BOOT_0                                                0x00100000
+#      define NV04_PFB_BOOT_0_RAM_AMOUNT                       0x00000003
+#      define NV04_PFB_BOOT_0_RAM_AMOUNT_32MB                  0x00000000
+#      define NV04_PFB_BOOT_0_RAM_AMOUNT_4MB                   0x00000001
+#      define NV04_PFB_BOOT_0_RAM_AMOUNT_8MB                   0x00000002
+#      define NV04_PFB_BOOT_0_RAM_AMOUNT_16MB                  0x00000003
+#      define NV04_PFB_BOOT_0_RAM_WIDTH_128                    0x00000004
+#      define NV04_PFB_BOOT_0_RAM_TYPE                         0x00000028
+#      define NV04_PFB_BOOT_0_RAM_TYPE_SGRAM_8MBIT             0x00000000
+#      define NV04_PFB_BOOT_0_RAM_TYPE_SGRAM_16MBIT            0x00000008
+#      define NV04_PFB_BOOT_0_RAM_TYPE_SGRAM_16MBIT_4BANK      0x00000010
+#      define NV04_PFB_BOOT_0_RAM_TYPE_SDRAM_16MBIT            0x00000018
+#      define NV04_PFB_BOOT_0_RAM_TYPE_SDRAM_64MBIT            0x00000020
+#      define NV04_PFB_BOOT_0_RAM_TYPE_SDRAM_64MBITX16         0x00000028
+#      define NV04_PFB_BOOT_0_UMA_ENABLE                       0x00000100
+#      define NV04_PFB_BOOT_0_UMA_SIZE                         0x0000f000
+#define NV04_PFB_DEBUG_0                                       0x00100080
+#      define NV04_PFB_DEBUG_0_PAGE_MODE                       0x00000001
+#      define NV04_PFB_DEBUG_0_REFRESH_OFF                     0x00000010
+#      define NV04_PFB_DEBUG_0_REFRESH_COUNTX64                0x00003f00
+#      define NV04_PFB_DEBUG_0_REFRESH_SLOW_CLK                0x00004000
+#      define NV04_PFB_DEBUG_0_SAFE_MODE                       0x00008000
+#      define NV04_PFB_DEBUG_0_ALOM_ENABLE                     0x00010000
+#      define NV04_PFB_DEBUG_0_CASOE                           0x00100000
+#      define NV04_PFB_DEBUG_0_CKE_INVERT                      0x10000000
+#      define NV04_PFB_DEBUG_0_REFINC                          0x20000000
+#      define NV04_PFB_DEBUG_0_SAVE_POWER_OFF                  0x40000000
+#define NV04_PFB_CFG0                                          0x00100200
+#      define NV04_PFB_CFG0_SCRAMBLE                           0x20000000
+#define NV04_PFB_CFG1                                          0x00100204
+#define NV04_PFB_FIFO_DATA                                     0x0010020c
+#      define NV10_PFB_FIFO_DATA_RAM_AMOUNT_MB_MASK            0xfff00000
+#      define NV10_PFB_FIFO_DATA_RAM_AMOUNT_MB_SHIFT           20
+#define NV10_PFB_REFCTRL                                       0x00100210
+#      define NV10_PFB_REFCTRL_VALID_1                         (1 << 31)
+#define NV04_PFB_PAD                                           0x0010021c
+#      define NV04_PFB_PAD_CKE_NORMAL                          (1 << 0)
+#define NV10_PFB_TILE(i)                              (0x00100240 + (i*16))
+#define NV10_PFB_TILE__SIZE                                    8
+#define NV10_PFB_TLIMIT(i)                            (0x00100244 + (i*16))
+#define NV10_PFB_TSIZE(i)                             (0x00100248 + (i*16))
+#define NV10_PFB_TSTATUS(i)                           (0x0010024c + (i*16))
+#define NV04_PFB_REF                                           0x001002d0
+#      define NV04_PFB_REF_CMD_REFRESH                         (1 << 0)
+#define NV04_PFB_PRE                                           0x001002d4
+#      define NV04_PFB_PRE_CMD_PRECHARGE                       (1 << 0)
+#define NV10_PFB_CLOSE_PAGE2                                   0x0010033c
+#define NV04_PFB_SCRAMBLE(i)                         (0x00100400 + 4 * (i))
+#define NV40_PFB_TILE(i)                              (0x00100600 + (i*16))
+#define NV40_PFB_TILE__SIZE_0                                  12
+#define NV40_PFB_TILE__SIZE_1                                  15
+#define NV40_PFB_TLIMIT(i)                            (0x00100604 + (i*16))
+#define NV40_PFB_TSIZE(i)                             (0x00100608 + (i*16))
+#define NV40_PFB_TSTATUS(i)                           (0x0010060c + (i*16))
+#define NV40_PFB_UNK_800                                       0x00100800
 
-#define NV03_BOOT_0                                        0x00100000
-#    define NV03_BOOT_0_RAM_AMOUNT                         0x00000003
-#    define NV03_BOOT_0_RAM_AMOUNT_8MB                     0x00000000
-#    define NV03_BOOT_0_RAM_AMOUNT_2MB                     0x00000001
-#    define NV03_BOOT_0_RAM_AMOUNT_4MB                     0x00000002
-#    define NV03_BOOT_0_RAM_AMOUNT_8MB_SDRAM               0x00000003
-#    define NV04_BOOT_0_RAM_AMOUNT_32MB                    0x00000000
-#    define NV04_BOOT_0_RAM_AMOUNT_4MB                     0x00000001
-#    define NV04_BOOT_0_RAM_AMOUNT_8MB                     0x00000002
-#    define NV04_BOOT_0_RAM_AMOUNT_16MB                    0x00000003
-
-#define NV04_FIFO_DATA                                     0x0010020c
-#    define NV10_FIFO_DATA_RAM_AMOUNT_MB_MASK              0xfff00000
-#    define NV10_FIFO_DATA_RAM_AMOUNT_MB_SHIFT             20
+#define NV_PEXTDEV_BOOT_0                                      0x00101000
+#define NV_PEXTDEV_BOOT_0_RAMCFG                               0x0000003c
+#      define NV_PEXTDEV_BOOT_0_STRAP_FP_IFACE_12BIT           (8 << 12)
+#define NV_PEXTDEV_BOOT_3                                      0x0010100c
 
 #define NV_RAMIN                                           0x00700000
 
 #define NV04_PTIMER_TIME_1                                 0x00009410
 #define NV04_PTIMER_ALARM_0                                0x00009420
 
-#define NV04_PFB_CFG0                                      0x00100200
-#define NV04_PFB_CFG1                                      0x00100204
-#define NV40_PFB_020C                                      0x0010020C
-#define NV10_PFB_TILE(i)                                   (0x00100240 + (i*16))
-#define NV10_PFB_TILE__SIZE                                8
-#define NV10_PFB_TLIMIT(i)                                 (0x00100244 + (i*16))
-#define NV10_PFB_TSIZE(i)                                  (0x00100248 + (i*16))
-#define NV10_PFB_TSTATUS(i)                                (0x0010024C + (i*16))
-#define NV10_PFB_CLOSE_PAGE2                               0x0010033C
-#define NV40_PFB_TILE(i)                                   (0x00100600 + (i*16))
-#define NV40_PFB_TILE__SIZE_0                              12
-#define NV40_PFB_TILE__SIZE_1                              15
-#define NV40_PFB_TLIMIT(i)                                 (0x00100604 + (i*16))
-#define NV40_PFB_TSIZE(i)                                  (0x00100608 + (i*16))
-#define NV40_PFB_TSTATUS(i)                                (0x0010060C + (i*16))
-#define NV40_PFB_UNK_800                                       0x00100800
-
 #define NV04_PGRAPH_DEBUG_0                                0x00400080
 #define NV04_PGRAPH_DEBUG_1                                0x00400084
 #define NV04_PGRAPH_DEBUG_2                                0x00400088
index 2a3495e848e9b96e548339e5d41eb1fd5a7c2985..e4e72c12ab6ac3c10a73661b5be8a871101bf714 100644 (file)
@@ -19,7 +19,7 @@ nv40_mc_init(struct drm_device *dev)
        case 0x46: /* G72 */
        case 0x4e:
        case 0x4c: /* C51_G7X */
-               tmp = nv_rd32(dev, NV40_PFB_020C);
+               tmp = nv_rd32(dev, NV04_PFB_FIFO_DATA);
                nv_wr32(dev, NV40_PMC_1700, tmp);
                nv_wr32(dev, NV40_PMC_1704, 0);
                nv_wr32(dev, NV40_PMC_1708, 0);
index 5998c35237b0c6ed5657a1f85b443a5903de1537..ad64673ace1fc955d650a2c6f8645ec0aba2a402 100644 (file)
 #      define NV_VIO_GX_DONT_CARE_INDEX        0x07
 #      define NV_VIO_GX_BIT_MASK_INDEX         0x08
 
-#define NV_PFB_BOOT_0                  0x00100000
-#define NV_PFB_CFG0                    0x00100200
-#define NV_PFB_CFG1                    0x00100204
-#define NV_PFB_CSTATUS                 0x0010020C
-#define NV_PFB_REFCTRL                 0x00100210
-#      define NV_PFB_REFCTRL_VALID_1                   (1 << 31)
-#define NV_PFB_PAD                     0x0010021C
-#      define NV_PFB_PAD_CKE_NORMAL                    (1 << 0)
-#define NV_PFB_TILE_NV10               0x00100240
-#define NV_PFB_TILE_SIZE_NV10          0x00100244
-#define NV_PFB_REF                     0x001002D0
-#      define NV_PFB_REF_CMD_REFRESH                   (1 << 0)
-#define NV_PFB_PRE                     0x001002D4
-#      define NV_PFB_PRE_CMD_PRECHARGE                 (1 << 0)
-#define NV_PFB_CLOSE_PAGE2             0x0010033C
-#define NV_PFB_TILE_NV40               0x00100600
-#define NV_PFB_TILE_SIZE_NV40          0x00100604
-
-#define NV_PEXTDEV_BOOT_0              0x00101000
-#      define NV_PEXTDEV_BOOT_0_STRAP_FP_IFACE_12BIT   (8 << 12)
-#define NV_PEXTDEV_BOOT_3              0x0010100c
-
 #define NV_PCRTC_INTR_0                                        0x00600100
 #      define NV_PCRTC_INTR_0_VBLANK                           (1 << 0)
 #define NV_PCRTC_INTR_EN_0                             0x00600140