This is an automated email from the ASF dual-hosted git repository.

pkarashchenko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit f10dab553114c6b9e8c7f5a0651642157884e930
Author: Jukka Laitinen <[email protected]>
AuthorDate: Tue Aug 29 13:52:31 2023 +0300

    arch/risc-v/src/mpfs: Sync some of the libero config macros with HSS 
reference code
    
    Signed-off-by: Jukka Laitinen <[email protected]>
    Co-authored-by: Eero Nurkkala <[email protected]>
---
 arch/risc-v/src/mpfs/hardware/mpfs_sgmii.h |  6 ++++--
 arch/risc-v/src/mpfs/mpfs_ddr.c            | 22 ++++++++++++++++------
 2 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/arch/risc-v/src/mpfs/hardware/mpfs_sgmii.h 
b/arch/risc-v/src/mpfs/hardware/mpfs_sgmii.h
index 566e1fe654..126ace3136 100644
--- a/arch/risc-v/src/mpfs/hardware/mpfs_sgmii.h
+++ b/arch/risc-v/src/mpfs/hardware/mpfs_sgmii.h
@@ -152,7 +152,7 @@
 #define MPFS_CFG_DDR_SGMII_PHY_SOFT_RESET_DDR_PHY_OFFSET           0x000
 #define MPFS_CFG_DDR_SGMII_PHY_DDRPHY_MODE_OFFSET                  0x004
 #define MPFS_CFG_DDR_SGMII_PHY_STARTUP_OFFSET                      0x008
-#define MPFS_CFG_DDR_SGMII_PHY_SPARE_0_OFFSET                      0x00c
+#define MPFS_CFG_DDR_SGMII_PHY_UNUSED_SPACE0_OFFSET                0x00c
 #define MPFS_CFG_DDR_SGMII_PHY_SOFT_RESET_MAIN_PLL_OFFSET          0x080
 #define MPFS_CFG_DDR_SGMII_PHY_PLL_CTRL_MAIN_OFFSET                0x084
 #define MPFS_CFG_DDR_SGMII_PHY_PLL_REF_FB_MAIN_OFFSET              0x088
@@ -566,18 +566,19 @@
 
 /* SGMII register definitions */
 
+#define MPFS_CFG_DDR_SGMII_PHY_SPARE0                    
(MPFS_CFG_DDR_SGMII_PHY_BASE + MPFS_CFG_DDR_SGMII_PHY_SPARE0_OFFSET)
 #define MPFS_CFG_DDR_SGMII_PHY_SOFT_RESET_DECODER_DRIVER 
(MPFS_CFG_DDR_SGMII_PHY_BASE + 
MPFS_CFG_DDR_SGMII_PHY_SOFT_RESET_DECODER_DRIVER_OFFSET)
 #define MPFS_CFG_DDR_SGMII_PHY_SOFT_RESET_DECODER_ODT    
(MPFS_CFG_DDR_SGMII_PHY_BASE + 
MPFS_CFG_DDR_SGMII_PHY_SOFT_RESET_DECODER_ODT_OFFSET)
 #define MPFS_CFG_DDR_SGMII_PHY_SOFT_RESET_DECODER_IO     
(MPFS_CFG_DDR_SGMII_PHY_BASE + 
MPFS_CFG_DDR_SGMII_PHY_SOFT_RESET_DECODER_IO_OFFSET)
 
 #define MPFS_CFG_DDR_SGMII_PHY_TRAINING_START (MPFS_CFG_DDR_SGMII_PHY_BASE + 
MPFS_CFG_DDR_SGMII_PHY_TRAINING_START_OFFSET)
 #define MPFS_CFG_DDR_SGMII_PHY_DDRPHY_MODE    (MPFS_CFG_DDR_SGMII_PHY_BASE + 
MPFS_CFG_DDR_SGMII_PHY_DDRPHY_MODE_OFFSET)
+#define MPFS_CFG_DDR_SGMII_PHY_UNUSED_SPACE0  (MPFS_CFG_DDR_SGMII_PHY_BASE + 
MPFS_CFG_DDR_SGMII_PHY_UNUSED_SPACE0_OFFSET)
 #define MPFS_CFG_DDR_SGMII_PHY_DPC_BITS       (MPFS_CFG_DDR_SGMII_PHY_BASE + 
MPFS_CFG_DDR_SGMII_PHY_DPC_BITS_OFFSET)
 #define MPFS_CFG_DDR_SGMII_PHY_RPC95          (MPFS_CFG_DDR_SGMII_PHY_BASE + 
MPFS_CFG_DDR_SGMII_PHY_RPC95_OFFSET)
 #define MPFS_CFG_DDR_SGMII_PHY_RPC96          (MPFS_CFG_DDR_SGMII_PHY_BASE + 
MPFS_CFG_DDR_SGMII_PHY_RPC96_OFFSET)
 #define MPFS_CFG_DDR_SGMII_PHY_RPC97          (MPFS_CFG_DDR_SGMII_PHY_BASE + 
MPFS_CFG_DDR_SGMII_PHY_RPC97_OFFSET)
 #define MPFS_CFG_DDR_SGMII_PHY_RPC98          (MPFS_CFG_DDR_SGMII_PHY_BASE + 
MPFS_CFG_DDR_SGMII_PHY_RPC98_OFFSET)
-#define MPFS_CFG_DDR_SGMII_PHY_SPARE_0        (MPFS_CFG_DDR_SGMII_PHY_BASE + 
MPFS_CFG_DDR_SGMII_PHY_SPARE_0_OFFSET)
 #define MPFS_CFG_DDR_SGMII_PHY_SPIO253        (MPFS_CFG_DDR_SGMII_PHY_BASE + 
MPFS_CFG_DDR_SGMII_PHY_SPIO253_OFFSET)
 #define MPFS_CFG_DDR_SGMII_PHY_RPC10_ODT      (MPFS_CFG_DDR_SGMII_PHY_BASE + 
MPFS_CFG_DDR_SGMII_PHY_RPC10_ODT_OFFSET)
 #define MPFS_CFG_DDR_SGMII_PHY_RPC11_ODT      (MPFS_CFG_DDR_SGMII_PHY_BASE + 
MPFS_CFG_DDR_SGMII_PHY_RPC11_ODT_OFFSET)
@@ -605,6 +606,7 @@
 #define MPFS_CFG_DDR_SGMII_PHY_RPC166         (MPFS_CFG_DDR_SGMII_PHY_BASE + 
MPFS_CFG_DDR_SGMII_PHY_RPC166_OFFSET)
 #define MPFS_CFG_DDR_SGMII_PHY_RPC168         (MPFS_CFG_DDR_SGMII_PHY_BASE + 
MPFS_CFG_DDR_SGMII_PHY_RPC168_OFFSET)
 #define MPFS_CFG_DDR_SGMII_PHY_RPC220         (MPFS_CFG_DDR_SGMII_PHY_BASE + 
MPFS_CFG_DDR_SGMII_PHY_RPC220_OFFSET)
+#define MPFS_CFG_DDR_SGMII_PHY_RPC226         (MPFS_CFG_DDR_SGMII_PHY_BASE + 
MPFS_CFG_DDR_SGMII_PHY_RPC226_OFFSET)
 #define MPFS_CFG_DDR_SGMII_PHY_RPC235         (MPFS_CFG_DDR_SGMII_PHY_BASE + 
MPFS_CFG_DDR_SGMII_PHY_RPC235_OFFSET)
 #define MPFS_CFG_DDR_SGMII_PHY_RPC236         (MPFS_CFG_DDR_SGMII_PHY_BASE + 
MPFS_CFG_DDR_SGMII_PHY_RPC236_OFFSET)
 #define MPFS_CFG_DDR_SGMII_PHY_RPC237         (MPFS_CFG_DDR_SGMII_PHY_BASE + 
MPFS_CFG_DDR_SGMII_PHY_RPC237_OFFSET)
diff --git a/arch/risc-v/src/mpfs/mpfs_ddr.c b/arch/risc-v/src/mpfs/mpfs_ddr.c
index 0ed14b4ac3..31cacb5e69 100644
--- a/arch/risc-v/src/mpfs/mpfs_ddr.c
+++ b/arch/risc-v/src/mpfs/mpfs_ddr.c
@@ -373,12 +373,12 @@ static void mpfs_ddr_off_mode(void)
   putreg32(0x07, MPFS_CFG_DDR_SGMII_PHY_RPC97); /* dq */
   putreg32(0x07, MPFS_CFG_DDR_SGMII_PHY_RPC98); /* dqs */
 
-  /* SPARE_0:
+  /* UNUSED_SPACE0:
    *   bits 15:14 connect to ibufmx DQ/DQS/DM
    *   bits 13:12 connect to ibufmx CA/CK
    */
 
-  putreg32(0, MPFS_CFG_DDR_SGMII_PHY_SPARE_0);
+  putreg32(0, MPFS_CFG_DDR_SGMII_PHY_UNUSED_SPACE0);
 
   /* REG_POWERDOWN_B on PLL turn-off, in case was turned on */
 
@@ -530,21 +530,21 @@ static void mpfs_set_ddr_rpc_regs(struct mpfs_ddr_priv_s 
*priv)
     }
 
   putreg32(0x04, MPFS_CFG_DDR_SGMII_PHY_RPC98);
-  putreg32(0, MPFS_CFG_DDR_SGMII_PHY_SPARE_0);
+  putreg32(0, MPFS_CFG_DDR_SGMII_PHY_UNUSED_SPACE0);
 
 #elif defined(CONFIG_MPFS_DDR_TYPE_DDR4)
 
   putreg32(2, MPFS_CFG_DDR_SGMII_PHY_RPC10_ODT);
   putreg32(2, MPFS_CFG_DDR_SGMII_PHY_RPC11_ODT);
   putreg32(0x04, MPFS_CFG_DDR_SGMII_PHY_RPC98);
-  putreg32(0, MPFS_CFG_DDR_SGMII_PHY_SPARE_0);
+  putreg32(0, MPFS_CFG_DDR_SGMII_PHY_UNUSED_SPACE0);
 
 #elif defined(CONFIG_MPFS_DDR_TYPE_LPDDR3)
 
   putreg32(2, MPFS_CFG_DDR_SGMII_PHY_RPC10_ODT);
   putreg32(2, MPFS_CFG_DDR_SGMII_PHY_RPC11_ODT);
   putreg32(0x04, MPFS_CFG_DDR_SGMII_PHY_RPC98);
-  putreg32(0, MPFS_CFG_DDR_SGMII_PHY_SPARE_0);
+  putreg32(0, MPFS_CFG_DDR_SGMII_PHY_UNUSED_SPACE0);
 
 #elif defined(CONFIG_MPFS_DDR_TYPE_LPDDR4)
 
@@ -578,8 +578,18 @@ static void mpfs_set_ddr_rpc_regs(struct mpfs_ddr_priv_s 
*priv)
       putreg32(1, MPFS_CFG_DDR_SGMII_PHY_SPIO253);
     }
 
+  /* Write ibufmd_dqs. Value is a constant coped from HSS refenrece code */
+
   putreg32(0x04, MPFS_CFG_DDR_SGMII_PHY_RPC98);
-  putreg32(0xa000, MPFS_CFG_DDR_SGMII_PHY_SPARE_0);
+
+  /* Write TXDLY offset data. 0x14 is a constant copied from HSS reference 
code, it is
+   * unknown whether this needs to be adjustable at the moment
+   */
+
+  putreg32(0x14, MPFS_CFG_DDR_SGMII_PHY_RPC226);
+
+  putreg32(0xa000, MPFS_CFG_DDR_SGMII_PHY_UNUSED_SPACE0);
+  putreg32(0xa000, MPFS_CFG_DDR_SGMII_PHY_SPARE0);
 
 #endif
 

Reply via email to