[rtems commit] bsp/atsam: Enable configuration of SDRAMC_LPR

Sebastian Huber sebh at rtems.org
Fri Jun 21 04:59:09 UTC 2019


Module:    rtems
Branch:    master
Commit:    dc581f29ab988f5af366a8c3c9038ac7956bb974
Changeset: http://git.rtems.org/rtems/commit/?id=dc581f29ab988f5af366a8c3c9038ac7956bb974

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Fri Jun 21 06:58:19 2019 +0200

bsp/atsam: Enable configuration of SDRAMC_LPR

---

 .../atsam/contrib/libraries/libboard/source/board_memories.c |  1 +
 bsps/arm/atsam/include/bsp/atsam-clock-config.h              |  7 ++++---
 bsps/arm/atsam/start/sdram-config.c                          | 12 ++++++++----
 3 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/bsps/arm/atsam/contrib/libraries/libboard/source/board_memories.c b/bsps/arm/atsam/contrib/libraries/libboard/source/board_memories.c
index 56e2337..e2f04ca 100644
--- a/bsps/arm/atsam/contrib/libraries/libboard/source/board_memories.c
+++ b/bsps/arm/atsam/contrib/libraries/libboard/source/board_memories.c
@@ -288,6 +288,7 @@ void BOARD_ConfigureSdram(void)
 #else /* __rtems__ */
 	SDRAMC->SDRAMC_TR = BOARD_Sdram_Config.sdramc_tr;
 	SDRAMC->SDRAMC_CFR1 = BOARD_Sdram_Config.sdramc_cfr1;
+	SDRAMC->SDRAMC_LPR = BOARD_Sdram_Config.sdramc_lpr;
 #endif /* __rtems__ */
 	/* After initialization, the SDRAM devices are fully functional. */
 }
diff --git a/bsps/arm/atsam/include/bsp/atsam-clock-config.h b/bsps/arm/atsam/include/bsp/atsam-clock-config.h
index 3969868..22ca84b 100644
--- a/bsps/arm/atsam/include/bsp/atsam-clock-config.h
+++ b/bsps/arm/atsam/include/bsp/atsam-clock-config.h
@@ -45,15 +45,16 @@ extern const struct atsam_clock_config atsam_clock_config;
 
 #define BOARD_MCK (atsam_clock_config.mck_freq)
 
-struct BOARD_Sdram_Config {
+typedef struct BOARD_Sdram_Config {
   uint32_t sdramc_tr;
   uint32_t sdramc_cr;
   uint32_t sdramc_mdr;
   uint32_t sdramc_cfr1;
-};
+  uint32_t sdramc_lpr;
+} atsam_sdram_config;
 
 ATSAM_START_SRAM_SECTION
-extern const struct BOARD_Sdram_Config BOARD_Sdram_Config;
+extern const atsam_sdram_config BOARD_Sdram_Config;
 
 #ifdef __cplusplus
 }
diff --git a/bsps/arm/atsam/start/sdram-config.c b/bsps/arm/atsam/start/sdram-config.c
index a2f1158..f4244e1 100644
--- a/bsps/arm/atsam/start/sdram-config.c
+++ b/bsps/arm/atsam/start/sdram-config.c
@@ -38,7 +38,8 @@ const struct BOARD_Sdram_Config BOARD_Sdram_Config = {
     | SDRAMC_CR_TRAS(9)      /* Command period (ACT to PRE)  42ns min */
     | SDRAMC_CR_TXSR(15U),   /* Exit self-refresh to active time  70ns Min */
   .sdramc_mdr = SDRAMC_MDR_MD_SDRAM,
-  .sdramc_cfr1 = SDRAMC_CFR1_UNAL_SUPPORTED | SDRAMC_CFR1_TMRD(2)
+  .sdramc_cfr1 = SDRAMC_CFR1_UNAL_SUPPORTED | SDRAMC_CFR1_TMRD(2),
+  .sdramc_lpr = 0
 };
 
 #elif defined ATSAM_SDRAM_IS42S16320F_7BL
@@ -71,7 +72,8 @@ const struct BOARD_Sdram_Config BOARD_Sdram_Config = {
     | SDRAMC_CR_TXSR(CLOCK_CYCLES_FROM_NS_MIN(67)),
   .sdramc_mdr = SDRAMC_MDR_MD_SDRAM,
   .sdramc_cfr1 = SDRAMC_CFR1_UNAL_SUPPORTED |
-      SDRAMC_CFR1_TMRD(CLOCK_CYCLES_FROM_NS_MIN(14))
+      SDRAMC_CFR1_TMRD(CLOCK_CYCLES_FROM_NS_MIN(14)),
+  .sdramc_lpr = 0
 };
 
 #elif defined ATSAM_SDRAM_MT48LC16M16A2P_6A
@@ -104,7 +106,8 @@ const struct BOARD_Sdram_Config BOARD_Sdram_Config = {
     | SDRAMC_CR_TXSR(9),
   .sdramc_mdr = SDRAMC_MDR_MD_SDRAM,
   .sdramc_cfr1 = SDRAMC_CFR1_UNAL_SUPPORTED |
-      SDRAMC_CFR1_TMRD(2)
+      SDRAMC_CFR1_TMRD(2),
+  .sdramc_lpr = 0
 };
 
 #elif ATSAM_MCK == 123000000
@@ -124,7 +127,8 @@ const struct BOARD_Sdram_Config BOARD_Sdram_Config = {
     | SDRAMC_CR_TXSR(9),
   .sdramc_mdr = SDRAMC_MDR_MD_SDRAM,
   .sdramc_cfr1 = SDRAMC_CFR1_UNAL_SUPPORTED |
-      SDRAMC_CFR1_TMRD(2)
+      SDRAMC_CFR1_TMRD(2),
+  .sdramc_lpr = 0
 };
 
 #else /* ATSAM_MCK unknown */



More information about the vc mailing list