summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2019-06-21 06:58:19 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2019-06-21 06:58:48 +0200
commitdc581f29ab988f5af366a8c3c9038ac7956bb974 (patch)
tree3469b357cb0a2c911f49e805c38ea2be020a4a12
parentpsxtests: Add psxinttypes01 for <inttypes.h> methods (diff)
downloadrtems-dc581f29ab988f5af366a8c3c9038ac7956bb974.tar.bz2
bsp/atsam: Enable configuration of SDRAMC_LPR
-rw-r--r--bsps/arm/atsam/contrib/libraries/libboard/source/board_memories.c1
-rw-r--r--bsps/arm/atsam/include/bsp/atsam-clock-config.h7
-rw-r--r--bsps/arm/atsam/start/sdram-config.c12
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 56e233736f..e2f04caa8c 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 396986894b..22ca84b8e6 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 a2f1158377..f4244e1545 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 */