summaryrefslogtreecommitdiff
path: root/nuttx/configs/sama5d3x-ek/src/sam_norflash.c
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2013-07-29 13:57:32 -0600
committerGregory Nutt <gnutt@nuttx.org>2013-07-29 13:57:32 -0600
commit6c9ec4933e27d479b84110b1f6f866a631300896 (patch)
tree50ea0741adf2a4abdd0cf7ffe58ac971a0b3be7e /nuttx/configs/sama5d3x-ek/src/sam_norflash.c
parentd9acab47a1967713a2d328df3dca486ff07acd39 (diff)
downloadpx4-nuttx-6c9ec4933e27d479b84110b1f6f866a631300896.tar.gz
px4-nuttx-6c9ec4933e27d479b84110b1f6f866a631300896.tar.bz2
px4-nuttx-6c9ec4933e27d479b84110b1f6f866a631300896.zip
SAMA5: Add a little NuttX debug program to help debugger programs in NOR flash
Diffstat (limited to 'nuttx/configs/sama5d3x-ek/src/sam_norflash.c')
-rw-r--r--nuttx/configs/sama5d3x-ek/src/sam_norflash.c31
1 files changed, 14 insertions, 17 deletions
diff --git a/nuttx/configs/sama5d3x-ek/src/sam_norflash.c b/nuttx/configs/sama5d3x-ek/src/sam_norflash.c
index a4cef988a..3604dcfc2 100644
--- a/nuttx/configs/sama5d3x-ek/src/sam_norflash.c
+++ b/nuttx/configs/sama5d3x-ek/src/sam_norflash.c
@@ -108,33 +108,30 @@ void board_norflash_config(void)
sam_hsmc_enableclk();
- /* The SAMA5D3x-EK has NOR FLASH at CS0. The NOR FLASH has already been
- * configured by the first level ROM bootloader... we simply need to modify
- * the timints here.
+ /* The SAMA5D3x-EK has 118MB of 16-bit NOR FLASH at CS0. The NOR FLASH
+ * has already been configured by the first level ROM bootloader... we
+ * simply need to modify the timing here.
*/
- /* Configure SMC, NCS0 is assigned to a norflash */
-
- regval = HSMC_SETUP_NWE_SETUP(1) | HSMC_SETUP_NCS_WRSETUP(0) |
- HSMC_SETUP_NRD_SETUP(2) | HSMC_SETUP_NCS_RDSETUP(0);
+ regval = HSMC_SETUP_NWE_SETUP(1) | HSMC_SETUP_NCS_WRSETUP(0) |
+ HSMC_SETUP_NRD_SETUP(2) | HSMC_SETUP_NCS_RDSETUP(0);
putreg32(regval, SAM_HSMC_SETUP(HSMC_CS0));
- regval = HSMC_PULSE_NWE_PULSE(10) | HSMC_PULSE_NCS_WRPULSE(10) |
- HSMC_PULSE_NRD_PULSE(11) | HSMC_PULSE_NCS_RDPULSE(11);
+ regval = HSMC_PULSE_NWE_PULSE(10) | HSMC_PULSE_NCS_WRPULSE(10) |
+ HSMC_PULSE_NRD_PULSE(11) | HSMC_PULSE_NCS_RDPULSE(11);
putreg32(regval, SAM_HSMC_PULSE(HSMC_CS0));
- regval = HSMC_CYCLE_NWE_CYCLE(11) | HSMC_CYCLE_NRD_CYCLE(14);
+ regval = HSMC_CYCLE_NWE_CYCLE(11) | HSMC_CYCLE_NRD_CYCLE(14);
putreg32(regval, SAM_HSMC_CYCLE(HSMC_CS0));
- regval = HSMC_TIMINGS_TCLR(0) | HSMC_TIMINGS_TADL(0) |
- HSMC_TIMINGS_TAR(0) | HSMC_TIMINGS_TRR(0) |
- HSMC_TIMINGS_TWB(0) | HSMC_TIMINGS_RBNSEL(0);
+ regval = HSMC_TIMINGS_TCLR(0) | HSMC_TIMINGS_TADL(0) |
+ HSMC_TIMINGS_TAR(0) | HSMC_TIMINGS_TRR(0) |
+ HSMC_TIMINGS_TWB(0) | HSMC_TIMINGS_RBNSEL(0);
putreg32(regval, SAM_HSMC_TIMINGS(HSMC_CS0));
- regval = getreg32(SAM_HSMC_MODE(HSMC_CS0));
- regval &= HSMC_MODE_DBW; /* Preserve the data bus width */
- regval |= HSMC_MODE_READMODE | HSMC_MODE_WRITEMODE |
- HSMC_MODE_EXNWMODE_DISABLED | HSMC_MODE_TDFCYCLES(1);
+ regval = HSMC_MODE_READMODE | HSMC_MODE_WRITEMODE |
+ HSMC_MODE_EXNWMODE_DISABLED | HSMC_MODE_BIT_16 |
+ HSMC_MODE_TDFCYCLES(1);
putreg32(regval, SAM_HSMC_MODE(HSMC_CS0));
}