aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c32
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c16
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/t4_hw.c6
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/t4_regs.h72
-rw-r--r--drivers/scsi/csiostor/csio_hw_t4.c15
-rw-r--r--drivers/scsi/csiostor/csio_hw_t5.c21
-rw-r--r--drivers/scsi/csiostor/csio_init.c6
7 files changed, 106 insertions, 62 deletions
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
index e86b5fe334e6..c98a350d857e 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
@@ -128,30 +128,30 @@ int t4_setup_debugfs(struct adapter *adap)
128 t4_debugfs_files, 128 t4_debugfs_files,
129 ARRAY_SIZE(t4_debugfs_files)); 129 ARRAY_SIZE(t4_debugfs_files));
130 130
131 i = t4_read_reg(adap, MA_TARGET_MEM_ENABLE); 131 i = t4_read_reg(adap, MA_TARGET_MEM_ENABLE_A);
132 if (i & EDRAM0_ENABLE) { 132 if (i & EDRAM0_ENABLE_F) {
133 size = t4_read_reg(adap, MA_EDRAM0_BAR); 133 size = t4_read_reg(adap, MA_EDRAM0_BAR_A);
134 add_debugfs_mem(adap, "edc0", MEM_EDC0, EDRAM_SIZE_GET(size)); 134 add_debugfs_mem(adap, "edc0", MEM_EDC0, EDRAM0_SIZE_G(size));
135 } 135 }
136 if (i & EDRAM1_ENABLE) { 136 if (i & EDRAM1_ENABLE_F) {
137 size = t4_read_reg(adap, MA_EDRAM1_BAR); 137 size = t4_read_reg(adap, MA_EDRAM1_BAR_A);
138 add_debugfs_mem(adap, "edc1", MEM_EDC1, EDRAM_SIZE_GET(size)); 138 add_debugfs_mem(adap, "edc1", MEM_EDC1, EDRAM1_SIZE_G(size));
139 } 139 }
140 if (is_t4(adap->params.chip)) { 140 if (is_t4(adap->params.chip)) {
141 size = t4_read_reg(adap, MA_EXT_MEMORY_BAR); 141 size = t4_read_reg(adap, MA_EXT_MEMORY_BAR_A);
142 if (i & EXT_MEM_ENABLE) 142 if (i & EXT_MEM_ENABLE_F)
143 add_debugfs_mem(adap, "mc", MEM_MC, 143 add_debugfs_mem(adap, "mc", MEM_MC,
144 EXT_MEM_SIZE_GET(size)); 144 EXT_MEM_SIZE_G(size));
145 } else { 145 } else {
146 if (i & EXT_MEM_ENABLE) { 146 if (i & EXT_MEM0_ENABLE_F) {
147 size = t4_read_reg(adap, MA_EXT_MEMORY_BAR); 147 size = t4_read_reg(adap, MA_EXT_MEMORY0_BAR_A);
148 add_debugfs_mem(adap, "mc0", MEM_MC0, 148 add_debugfs_mem(adap, "mc0", MEM_MC0,
149 EXT_MEM_SIZE_GET(size)); 149 EXT_MEM0_SIZE_G(size));
150 } 150 }
151 if (i & EXT_MEM1_ENABLE) { 151 if (i & EXT_MEM1_ENABLE_F) {
152 size = t4_read_reg(adap, MA_EXT_MEMORY1_BAR); 152 size = t4_read_reg(adap, MA_EXT_MEMORY1_BAR_A);
153 add_debugfs_mem(adap, "mc1", MEM_MC1, 153 add_debugfs_mem(adap, "mc1", MEM_MC1,
154 EXT_MEM_SIZE_GET(size)); 154 EXT_MEM1_SIZE_G(size));
155 } 155 }
156 } 156 }
157 return 0; 157 return 0;
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
index 172f68b6d592..a2d6e5043ff6 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
@@ -3802,7 +3802,7 @@ int cxgb4_read_tpte(struct net_device *dev, u32 stag, __be32 *tpte)
3802{ 3802{
3803 struct adapter *adap; 3803 struct adapter *adap;
3804 u32 offset, memtype, memaddr; 3804 u32 offset, memtype, memaddr;
3805 u32 edc0_size, edc1_size, mc0_size, mc1_size; 3805 u32 edc0_size, edc1_size, mc0_size, mc1_size, size;
3806 u32 edc0_end, edc1_end, mc0_end, mc1_end; 3806 u32 edc0_end, edc1_end, mc0_end, mc1_end;
3807 int ret; 3807 int ret;
3808 3808
@@ -3816,9 +3816,12 @@ int cxgb4_read_tpte(struct net_device *dev, u32 stag, __be32 *tpte)
3816 * and EDC1. Some cards will have neither MC0 nor MC1, most cards have 3816 * and EDC1. Some cards will have neither MC0 nor MC1, most cards have
3817 * MC0, and some have both MC0 and MC1. 3817 * MC0, and some have both MC0 and MC1.
3818 */ 3818 */
3819 edc0_size = EDRAM_SIZE_GET(t4_read_reg(adap, MA_EDRAM0_BAR)) << 20; 3819 size = t4_read_reg(adap, MA_EDRAM0_BAR_A);
3820 edc1_size = EDRAM_SIZE_GET(t4_read_reg(adap, MA_EDRAM1_BAR)) << 20; 3820 edc0_size = EDRAM0_SIZE_G(size) << 20;
3821 mc0_size = EXT_MEM_SIZE_GET(t4_read_reg(adap, MA_EXT_MEMORY_BAR)) << 20; 3821 size = t4_read_reg(adap, MA_EDRAM1_BAR_A);
3822 edc1_size = EDRAM1_SIZE_G(size) << 20;
3823 size = t4_read_reg(adap, MA_EXT_MEMORY0_BAR_A);
3824 mc0_size = EXT_MEM0_SIZE_G(size) << 20;
3822 3825
3823 edc0_end = edc0_size; 3826 edc0_end = edc0_size;
3824 edc1_end = edc0_end + edc1_size; 3827 edc1_end = edc0_end + edc1_size;
@@ -3838,9 +3841,8 @@ int cxgb4_read_tpte(struct net_device *dev, u32 stag, __be32 *tpte)
3838 /* T4 only has a single memory channel */ 3841 /* T4 only has a single memory channel */
3839 goto err; 3842 goto err;
3840 } else { 3843 } else {
3841 mc1_size = EXT_MEM_SIZE_GET( 3844 size = t4_read_reg(adap, MA_EXT_MEMORY1_BAR_A);
3842 t4_read_reg(adap, 3845 mc1_size = EXT_MEM1_SIZE_G(size) << 20;
3843 MA_EXT_MEMORY1_BAR)) << 20;
3844 mc1_end = mc0_end + mc1_size; 3846 mc1_end = mc0_end + mc1_size;
3845 if (offset < mc1_end) { 3847 if (offset < mc1_end) {
3846 memtype = MEM_MC1; 3848 memtype = MEM_MC1;
diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
index a9d9d74e4f09..945fd1401d6a 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
@@ -483,12 +483,12 @@ int t4_memory_rw(struct adapter *adap, int win, int mtype, u32 addr,
483 * MEM_MC0 = 2 -- For T5 483 * MEM_MC0 = 2 -- For T5
484 * MEM_MC1 = 3 -- For T5 484 * MEM_MC1 = 3 -- For T5
485 */ 485 */
486 edc_size = EDRAM_SIZE_GET(t4_read_reg(adap, MA_EDRAM0_BAR)); 486 edc_size = EDRAM0_SIZE_G(t4_read_reg(adap, MA_EDRAM0_BAR_A));
487 if (mtype != MEM_MC1) 487 if (mtype != MEM_MC1)
488 memoffset = (mtype * (edc_size * 1024 * 1024)); 488 memoffset = (mtype * (edc_size * 1024 * 1024));
489 else { 489 else {
490 mc_size = EXT_MEM_SIZE_GET(t4_read_reg(adap, 490 mc_size = EXT_MEM0_SIZE_G(t4_read_reg(adap,
491 MA_EXT_MEMORY_BAR)); 491 MA_EXT_MEMORY1_BAR_A));
492 memoffset = (MEM_MC0 * edc_size + mc_size) * 1024 * 1024; 492 memoffset = (MEM_MC0 * edc_size + mc_size) * 1024 * 1024;
493 } 493 }
494 494
diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h b/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h
index a1024db5dc13..c8eb7ba225e1 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h
+++ b/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h
@@ -501,21 +501,62 @@
501 501
502#define MC_BIST_STATUS_RDATA 0x7688 502#define MC_BIST_STATUS_RDATA 0x7688
503 503
504#define MA_EDRAM0_BAR 0x77c0 504#define MA_EDRAM0_BAR_A 0x77c0
505#define MA_EDRAM1_BAR 0x77c4 505
506#define EDRAM_SIZE_MASK 0xfffU 506#define EDRAM0_SIZE_S 0
507#define EDRAM_SIZE_GET(x) ((x) & EDRAM_SIZE_MASK) 507#define EDRAM0_SIZE_M 0xfffU
508 508#define EDRAM0_SIZE_V(x) ((x) << EDRAM0_SIZE_S)
509#define MA_EXT_MEMORY_BAR 0x77c8 509#define EDRAM0_SIZE_G(x) (((x) >> EDRAM0_SIZE_S) & EDRAM0_SIZE_M)
510#define EXT_MEM_SIZE_MASK 0x00000fffU 510
511#define EXT_MEM_SIZE_SHIFT 0 511#define MA_EDRAM1_BAR_A 0x77c4
512#define EXT_MEM_SIZE_GET(x) (((x) & EXT_MEM_SIZE_MASK) >> EXT_MEM_SIZE_SHIFT) 512
513 513#define EDRAM1_SIZE_S 0
514#define MA_TARGET_MEM_ENABLE 0x77d8 514#define EDRAM1_SIZE_M 0xfffU
515#define EXT_MEM1_ENABLE 0x00000010U 515#define EDRAM1_SIZE_V(x) ((x) << EDRAM1_SIZE_S)
516#define EXT_MEM_ENABLE 0x00000004U 516#define EDRAM1_SIZE_G(x) (((x) >> EDRAM1_SIZE_S) & EDRAM1_SIZE_M)
517#define EDRAM1_ENABLE 0x00000002U 517
518#define EDRAM0_ENABLE 0x00000001U 518#define MA_EXT_MEMORY_BAR_A 0x77c8
519
520#define EXT_MEM_SIZE_S 0
521#define EXT_MEM_SIZE_M 0xfffU
522#define EXT_MEM_SIZE_V(x) ((x) << EXT_MEM_SIZE_S)
523#define EXT_MEM_SIZE_G(x) (((x) >> EXT_MEM_SIZE_S) & EXT_MEM_SIZE_M)
524
525#define MA_EXT_MEMORY1_BAR_A 0x7808
526
527#define EXT_MEM1_SIZE_S 0
528#define EXT_MEM1_SIZE_M 0xfffU
529#define EXT_MEM1_SIZE_V(x) ((x) << EXT_MEM1_SIZE_S)
530#define EXT_MEM1_SIZE_G(x) (((x) >> EXT_MEM1_SIZE_S) & EXT_MEM1_SIZE_M)
531
532#define MA_EXT_MEMORY0_BAR_A 0x77c8
533
534#define EXT_MEM0_SIZE_S 0
535#define EXT_MEM0_SIZE_M 0xfffU
536#define EXT_MEM0_SIZE_V(x) ((x) << EXT_MEM0_SIZE_S)
537#define EXT_MEM0_SIZE_G(x) (((x) >> EXT_MEM0_SIZE_S) & EXT_MEM0_SIZE_M)
538
539#define MA_TARGET_MEM_ENABLE_A 0x77d8
540
541#define EXT_MEM_ENABLE_S 2
542#define EXT_MEM_ENABLE_V(x) ((x) << EXT_MEM_ENABLE_S)
543#define EXT_MEM_ENABLE_F EXT_MEM_ENABLE_V(1U)
544
545#define EDRAM1_ENABLE_S 1
546#define EDRAM1_ENABLE_V(x) ((x) << EDRAM1_ENABLE_S)
547#define EDRAM1_ENABLE_F EDRAM1_ENABLE_V(1U)
548
549#define EDRAM0_ENABLE_S 0
550#define EDRAM0_ENABLE_V(x) ((x) << EDRAM0_ENABLE_S)
551#define EDRAM0_ENABLE_F EDRAM0_ENABLE_V(1U)
552
553#define EXT_MEM1_ENABLE_S 4
554#define EXT_MEM1_ENABLE_V(x) ((x) << EXT_MEM1_ENABLE_S)
555#define EXT_MEM1_ENABLE_F EXT_MEM1_ENABLE_V(1U)
556
557#define EXT_MEM0_ENABLE_S 2
558#define EXT_MEM0_ENABLE_V(x) ((x) << EXT_MEM0_ENABLE_S)
559#define EXT_MEM0_ENABLE_F EXT_MEM0_ENABLE_V(1U)
519 560
520#define MA_INT_CAUSE 0x77e0 561#define MA_INT_CAUSE 0x77e0
521#define MEM_PERR_INT_CAUSE 0x00000002U 562#define MEM_PERR_INT_CAUSE 0x00000002U
@@ -532,7 +573,6 @@
532#define MA_PARITY_ERROR_STATUS 0x77f4 573#define MA_PARITY_ERROR_STATUS 0x77f4
533#define MA_PARITY_ERROR_STATUS2 0x7804 574#define MA_PARITY_ERROR_STATUS2 0x7804
534 575
535#define MA_EXT_MEMORY1_BAR 0x7808
536#define EDC_0_BASE_ADDR 0x7900 576#define EDC_0_BASE_ADDR 0x7900
537 577
538#define EDC_BIST_CMD 0x7904 578#define EDC_BIST_CMD 0x7904
diff --git a/drivers/scsi/csiostor/csio_hw_t4.c b/drivers/scsi/csiostor/csio_hw_t4.c
index 89ecbac5478f..95d831857640 100644
--- a/drivers/scsi/csiostor/csio_hw_t4.c
+++ b/drivers/scsi/csiostor/csio_hw_t4.c
@@ -307,12 +307,12 @@ csio_t4_memory_rw(struct csio_hw *hw, u32 win, int mtype, u32 addr,
307 * MEM_EDC1 = 1 307 * MEM_EDC1 = 1
308 * MEM_MC = 2 -- T4 308 * MEM_MC = 2 -- T4
309 */ 309 */
310 edc_size = EDRAM_SIZE_GET(csio_rd_reg32(hw, MA_EDRAM0_BAR)); 310 edc_size = EDRAM0_SIZE_G(csio_rd_reg32(hw, MA_EDRAM0_BAR_A));
311 if (mtype != MEM_MC1) 311 if (mtype != MEM_MC1)
312 memoffset = (mtype * (edc_size * 1024 * 1024)); 312 memoffset = (mtype * (edc_size * 1024 * 1024));
313 else { 313 else {
314 mc_size = EXT_MEM_SIZE_GET(csio_rd_reg32(hw, 314 mc_size = EXT_MEM_SIZE_G(csio_rd_reg32(hw,
315 MA_EXT_MEMORY_BAR)); 315 MA_EXT_MEMORY_BAR_A));
316 memoffset = (MEM_MC0 * edc_size + mc_size) * 1024 * 1024; 316 memoffset = (MEM_MC0 * edc_size + mc_size) * 1024 * 1024;
317 } 317 }
318 318
@@ -383,11 +383,12 @@ static void
383csio_t4_dfs_create_ext_mem(struct csio_hw *hw) 383csio_t4_dfs_create_ext_mem(struct csio_hw *hw)
384{ 384{
385 u32 size; 385 u32 size;
386 int i = csio_rd_reg32(hw, MA_TARGET_MEM_ENABLE); 386 int i = csio_rd_reg32(hw, MA_TARGET_MEM_ENABLE_A);
387 if (i & EXT_MEM_ENABLE) { 387
388 size = csio_rd_reg32(hw, MA_EXT_MEMORY_BAR); 388 if (i & EXT_MEM_ENABLE_F) {
389 size = csio_rd_reg32(hw, MA_EXT_MEMORY_BAR_A);
389 csio_add_debugfs_mem(hw, "mc", MEM_MC, 390 csio_add_debugfs_mem(hw, "mc", MEM_MC,
390 EXT_MEM_SIZE_GET(size)); 391 EXT_MEM_SIZE_G(size));
391 } 392 }
392} 393}
393 394
diff --git a/drivers/scsi/csiostor/csio_hw_t5.c b/drivers/scsi/csiostor/csio_hw_t5.c
index 27745c170c24..66e180a58718 100644
--- a/drivers/scsi/csiostor/csio_hw_t5.c
+++ b/drivers/scsi/csiostor/csio_hw_t5.c
@@ -298,12 +298,12 @@ csio_t5_memory_rw(struct csio_hw *hw, u32 win, int mtype, u32 addr,
298 * MEM_MC0 = 2 -- For T5 298 * MEM_MC0 = 2 -- For T5
299 * MEM_MC1 = 3 -- For T5 299 * MEM_MC1 = 3 -- For T5
300 */ 300 */
301 edc_size = EDRAM_SIZE_GET(csio_rd_reg32(hw, MA_EDRAM0_BAR)); 301 edc_size = EDRAM0_SIZE_G(csio_rd_reg32(hw, MA_EDRAM0_BAR_A));
302 if (mtype != MEM_MC1) 302 if (mtype != MEM_MC1)
303 memoffset = (mtype * (edc_size * 1024 * 1024)); 303 memoffset = (mtype * (edc_size * 1024 * 1024));
304 else { 304 else {
305 mc_size = EXT_MEM_SIZE_GET(csio_rd_reg32(hw, 305 mc_size = EXT_MEM_SIZE_G(csio_rd_reg32(hw,
306 MA_EXT_MEMORY_BAR)); 306 MA_EXT_MEMORY_BAR_A));
307 memoffset = (MEM_MC0 * edc_size + mc_size) * 1024 * 1024; 307 memoffset = (MEM_MC0 * edc_size + mc_size) * 1024 * 1024;
308 } 308 }
309 309
@@ -372,16 +372,17 @@ static void
372csio_t5_dfs_create_ext_mem(struct csio_hw *hw) 372csio_t5_dfs_create_ext_mem(struct csio_hw *hw)
373{ 373{
374 u32 size; 374 u32 size;
375 int i = csio_rd_reg32(hw, MA_TARGET_MEM_ENABLE); 375 int i = csio_rd_reg32(hw, MA_TARGET_MEM_ENABLE_A);
376 if (i & EXT_MEM_ENABLE) { 376
377 size = csio_rd_reg32(hw, MA_EXT_MEMORY_BAR); 377 if (i & EXT_MEM_ENABLE_F) {
378 size = csio_rd_reg32(hw, MA_EXT_MEMORY_BAR_A);
378 csio_add_debugfs_mem(hw, "mc0", MEM_MC0, 379 csio_add_debugfs_mem(hw, "mc0", MEM_MC0,
379 EXT_MEM_SIZE_GET(size)); 380 EXT_MEM_SIZE_G(size));
380 } 381 }
381 if (i & EXT_MEM1_ENABLE) { 382 if (i & EXT_MEM1_ENABLE_F) {
382 size = csio_rd_reg32(hw, MA_EXT_MEMORY1_BAR); 383 size = csio_rd_reg32(hw, MA_EXT_MEMORY1_BAR_A);
383 csio_add_debugfs_mem(hw, "mc1", MEM_MC1, 384 csio_add_debugfs_mem(hw, "mc1", MEM_MC1,
384 EXT_MEM_SIZE_GET(size)); 385 EXT_MEM_SIZE_G(size));
385 } 386 }
386} 387}
387 388
diff --git a/drivers/scsi/csiostor/csio_init.c b/drivers/scsi/csiostor/csio_init.c
index 17794add855c..70e1eb6d9640 100644
--- a/drivers/scsi/csiostor/csio_init.c
+++ b/drivers/scsi/csiostor/csio_init.c
@@ -128,10 +128,10 @@ static int csio_setup_debugfs(struct csio_hw *hw)
128 if (IS_ERR_OR_NULL(hw->debugfs_root)) 128 if (IS_ERR_OR_NULL(hw->debugfs_root))
129 return -1; 129 return -1;
130 130
131 i = csio_rd_reg32(hw, MA_TARGET_MEM_ENABLE); 131 i = csio_rd_reg32(hw, MA_TARGET_MEM_ENABLE_A);
132 if (i & EDRAM0_ENABLE) 132 if (i & EDRAM0_ENABLE_F)
133 csio_add_debugfs_mem(hw, "edc0", MEM_EDC0, 5); 133 csio_add_debugfs_mem(hw, "edc0", MEM_EDC0, 5);
134 if (i & EDRAM1_ENABLE) 134 if (i & EDRAM1_ENABLE_F)
135 csio_add_debugfs_mem(hw, "edc1", MEM_EDC1, 5); 135 csio_add_debugfs_mem(hw, "edc1", MEM_EDC1, 5);
136 136
137 hw->chip_ops->chip_dfs_create_ext_mem(hw); 137 hw->chip_ops->chip_dfs_create_ext_mem(hw);