add row16 option
authorIcenowy Zheng <uwu@icenowy.me>
Fri, 21 Jul 2023 06:19:34 +0000 (14:19 +0800)
committerHan Gao <rabenda.cn@gmail.com>
Tue, 1 Aug 2023 18:58:25 +0000 (02:58 +0800)
Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
board/thead/light-c910/Kconfig
board/thead/light-c910/lpddr4/src/ddr_common_func.c

index 8139eeedcd011de5b8a2ef7f43d9106b7d73e37b..26907eae8fda20c2196e3175ce21dae3872a6f27 100644 (file)
@@ -213,6 +213,11 @@ config DDR_LP4_2133_SINGLERANK
         help
           Enabling this will support lpddr4 2133 singlerank configuration.
 
+config DDR_ROW16
+       bool "LPDDR4/4X 17-bit row address support"
+       help
+         Enabling this will support ddr 17-bit row address (16:0).
+
 config DDR_H32_MODE
         bool "LPDDR4/4X 32bit mode configuration"
         help
index 50f1dea9e78c9b4114dfa5aceebbb5d540e4c484..eaa59bd28f94d82ff83fc3693e083451bdc02c12 100644 (file)
@@ -873,7 +873,11 @@ if(bits==64) {
 #endif
   wr(ADDRMAP0,0x0004001f);  // +2
   if(rank_num==2) {
+#ifdef CONFIG_DDR_ROW16
+  wr(ADDRMAP0,0x00040019);//16GB
+#else
   wr(ADDRMAP0,0x00040018);//8GB
+#endif
   }
   wr(ADDRMAP1,0x00090909); //bank +2
   wr(ADDRMAP2,0x00000000); //col b5+5 ~ col b2  +2
@@ -881,7 +885,11 @@ if(bits==64) {
   wr(ADDRMAP4,0x00001f1f); //col b11~ col b10
   wr(ADDRMAP5,0x080f0808); //row_b11 row b2_10 row b1 row b0  +6
   wr(ADDRMAP6,0x08080808);
+#ifdef CONFIG_DDR_ROW16
+  wr(ADDRMAP7,0x00000f08);
+#else
   wr(ADDRMAP7,0x00000f0f);
+#endif
   wr(ADDRMAP9,0x08080808);
   wr(ADDRMAP10,0x08080808);
   wr(ADDRMAP11,0x00000008);