summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2013-03-27 14:28:43 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2013-03-27 14:28:43 +0000
commit6831c49a517bfe90b75a732b1d39ce303960c023 (patch)
treed9acc8b822721bb03fd5683c4447f7ecaa13a29b
parent3a851e6c51a7d18a8f2b30bf4d0f0b9954116aa6 (diff)
downloadpx4-nuttx-6831c49a517bfe90b75a732b1d39ce303960c023.tar.gz
px4-nuttx-6831c49a517bfe90b75a732b1d39ce303960c023.tar.bz2
px4-nuttx-6831c49a517bfe90b75a732b1d39ce303960c023.zip
Misc fixes to get SDRAM support and RAM test to build for the Open1788 platform
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5793 42af7a65-404d-4744-a932-0658087f49c3
-rw-r--r--apps/system/Makefile3
-rw-r--r--apps/system/ramtest/Makefile1
-rw-r--r--nuttx/arch/arm/src/lpc17xx/Kconfig17
-rw-r--r--nuttx/arch/arm/src/lpc17xx/chip/lpc178x_pinconfig.h2
-rw-r--r--nuttx/arch/arm/src/lpc17xx/chip/lpc178x_syscon.h7
-rw-r--r--nuttx/arch/arm/src/lpc17xx/lpc17_emc.c7
-rw-r--r--nuttx/arch/arm/src/lpc17xx/lpc17_emc.h6
-rw-r--r--nuttx/configs/open1788/README.txt16
-rw-r--r--nuttx/configs/open1788/include/board.h44
-rw-r--r--nuttx/configs/open1788/nsh/defconfig54
-rw-r--r--nuttx/configs/open1788/src/lpc17_sdraminitialize.c55
11 files changed, 108 insertions, 104 deletions
diff --git a/apps/system/Makefile b/apps/system/Makefile
index f39eedec4..5af79c6f1 100644
--- a/apps/system/Makefile
+++ b/apps/system/Makefile
@@ -37,7 +37,8 @@
# Sub-directories containing system task
-SUBDIRS = free i2c install readline poweroff ramtron sdcard sysinfo usbmonitor
+SUBDIRS = free i2c install readline poweroff ramtest ramtron sdcard
+SUBDIRS += sysinfo usbmonitor
# Create the list of installed runtime modules (INSTALLED_DIRS)
diff --git a/apps/system/ramtest/Makefile b/apps/system/ramtest/Makefile
index a208f6e5b..71d7558f5 100644
--- a/apps/system/ramtest/Makefile
+++ b/apps/system/ramtest/Makefile
@@ -112,4 +112,3 @@ distclean: clean
$(call DELFILE, .depend)
-include Make.dep
-
diff --git a/nuttx/arch/arm/src/lpc17xx/Kconfig b/nuttx/arch/arm/src/lpc17xx/Kconfig
index 923964dad..7f7da0be6 100644
--- a/nuttx/arch/arm/src/lpc17xx/Kconfig
+++ b/nuttx/arch/arm/src/lpc17xx/Kconfig
@@ -105,19 +105,9 @@ config ARCH_FAMILY_LPC176X
config ARCH_FAMILY_LPC177X
bool
- select ARCH_HAVE_EXTNAND
- select ARCH_HAVE_EXTSRAM0
- select ARCH_HAVE_EXTDRAM
- select ARCH_HAVE_EXTNOR
- select ARCH_HAVE_SDIO
config ARCH_FAMILY_LPC178X
bool
- select ARCH_HAVE_EXTNAND
- select ARCH_HAVE_EXTSRAM0
- select ARCH_HAVE_EXTDRAM
- select ARCH_HAVE_EXTNOR
- select ARCH_HAVE_SDIO
config ARCH_HAVE_SPIFI
bool
@@ -143,6 +133,10 @@ config LPC17_EMC
bool "EMC"
default y
depends on ARCH_FAMILY_LPC178X
+ select ARCH_HAVE_EXTNAND
+ select ARCH_HAVE_EXTSRAM0
+ select ARCH_HAVE_EXTDRAM
+ select ARCH_HAVE_EXTNOR
config LPC17_ETHERNET
bool "Ethernet"
@@ -172,7 +166,8 @@ config LPC17_USBOTG
config LPC17_SDCARD
bool "SD Card Interface"
- depends on ARCH_HAVE_SDIO
+ depends on ARCH_FAMILY_LPC177X || ARCH_FAMILY_LPC178X
+ select ARCH_HAVE_SDIO
default n
config LPC17_UART0
diff --git a/nuttx/arch/arm/src/lpc17xx/chip/lpc178x_pinconfig.h b/nuttx/arch/arm/src/lpc17xx/chip/lpc178x_pinconfig.h
index 87198c624..79a665c36 100644
--- a/nuttx/arch/arm/src/lpc17xx/chip/lpc178x_pinconfig.h
+++ b/nuttx/arch/arm/src/lpc17xx/chip/lpc178x_pinconfig.h
@@ -499,7 +499,7 @@
#define GPIO_EMC_D9 (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT3 | GPIO_PIN9)
#define GPIO_EMC_D10 (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT3 | GPIO_PIN10)
#define GPIO_EMC_D11 (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT3 | GPIO_PIN11)
-#define GPIO_EMC_12 (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT3 | GPIO_PIN12)
+#define GPIO_EMC_D12 (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT3 | GPIO_PIN12)
#define GPIO_EMC_D13 (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT3 | GPIO_PIN13)
#define GPIO_EMC_D14 (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT3 | GPIO_PIN14)
#define GPIO_EMC_D15 (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT3 | GPIO_PIN15)
diff --git a/nuttx/arch/arm/src/lpc17xx/chip/lpc178x_syscon.h b/nuttx/arch/arm/src/lpc17xx/chip/lpc178x_syscon.h
index 80c5386af..1780c0392 100644
--- a/nuttx/arch/arm/src/lpc17xx/chip/lpc178x_syscon.h
+++ b/nuttx/arch/arm/src/lpc17xx/chip/lpc178x_syscon.h
@@ -277,7 +277,12 @@
/* 0: EMC uses same clock as CPU */
/* 1: EMC uses half the rate of CPU */
/* Bits 1-31: Reserved */
-/* CPU Clock Selection register */
+/* EMC Clock Selection Register */
+
+#define SYSCON_EMCCLKSEL_CCLK_DIV2 (1 << 0) /* Bit 0: 1=EMC used CPU clock / 2 */
+#define SYSCON_EMCCLKSEL_CCLK_DIV1 (0) /* 0=EMC used CPU clock */
+
+/* CPU Clock Selection Register */
#define SYSCON_CCLKSEL_CCLKDIV_SHIFT (0) /* 0-4: Divide value for CPU clock (CCLK) */
#define SYSCON_CCLKSEL_CCLKDIV_MASK (0x1f << SYSCON_CCLKSEL_CCLKDIV_SHIFT)
diff --git a/nuttx/arch/arm/src/lpc17xx/lpc17_emc.c b/nuttx/arch/arm/src/lpc17xx/lpc17_emc.c
index 1442fe8b9..dceac78bd 100644
--- a/nuttx/arch/arm/src/lpc17xx/lpc17_emc.c
+++ b/nuttx/arch/arm/src/lpc17xx/lpc17_emc.c
@@ -42,7 +42,12 @@
#include <arch/irq.h>
-#include "lpc17_syscon.h"
+#include <arch/board/board.h>
+
+#include "up_arch.h"
+
+#include "chip/lpc17_syscon.h"
+#include "lpc17_gpio.h"
#include "lpc17_emc.h"
/****************************************************************************
diff --git a/nuttx/arch/arm/src/lpc17xx/lpc17_emc.h b/nuttx/arch/arm/src/lpc17xx/lpc17_emc.h
index ba6c6040b..b5a901003 100644
--- a/nuttx/arch/arm/src/lpc17xx/lpc17_emc.h
+++ b/nuttx/arch/arm/src/lpc17xx/lpc17_emc.h
@@ -33,8 +33,8 @@
*
****************************************************************************/
-#ifndef __ARCH_ARM_SRC_LPC17XX_CHIP_LPC17_EMC_H
-#define __ARCH_ARM_SRC_LPC17XX_CHIP_LPC17_EMC_H
+#ifndef __ARCH_ARM_SRC_LPC17XX_LPC17_EMC_H
+#define __ARCH_ARM_SRC_LPC17XX_LPC17_EMC_H
/****************************************************************************
* Included Files
@@ -71,4 +71,4 @@
void lpc17_emcinitialize(void);
-#endif /* __ARCH_ARM_SRC_LPC17XX_CHIP_LPC17_EMC_H */
+#endif /* __ARCH_ARM_SRC_LPC17XX_LPC17_EMC_H */
diff --git a/nuttx/configs/open1788/README.txt b/nuttx/configs/open1788/README.txt
index 167c92f98..999bc1070 100644
--- a/nuttx/configs/open1788/README.txt
+++ b/nuttx/configs/open1788/README.txt
@@ -411,3 +411,19 @@ CONFIGURATION
CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
CONFIG_ARMV7M_OABI_TOOLCHAIN=y : Older, OABI toolchain
+
+ 3. This NSH has support for built-in applications enabled, however,
+ no built-in configurations are built in the defulat configuration.
+
+ 4. This configuration has been used for verifying SDRAM by modifying
+ the configuration in the following ways:
+
+ CONFIG_LPC17_EMC=y : Enable the EMC
+ CONFIG_ARCH_EXTDRAM=y : Configure external DRAM
+ CONFIG_ARCH_EXTDRAMSIZE=67108864 : DRAM size 2x256/8 = 64MB
+ CONFIG_SYSTEM_RAMTEST=y : Enable the RAM test built-in
+
+ In this configuration, the SDRAM is not added to heap and so is
+ not excessible to the applications. So the RAM test can be
+ freely executed against the SRAM memory beginning at address
+ 0xa000:0000 (CS0).
diff --git a/nuttx/configs/open1788/include/board.h b/nuttx/configs/open1788/include/board.h
index 6767be4c9..819a314ca 100644
--- a/nuttx/configs/open1788/include/board.h
+++ b/nuttx/configs/open1788/include/board.h
@@ -114,21 +114,29 @@
/* PLL1 : PLL1 is used to generate clock for the USB */
#undef CONFIG_LPC17_PLL1
-//~ #define CONFIG_LPC17_PLL1 1
#define BOARD_PLL1CFG_MSEL 4
#define BOARD_PLL1CFG_PSEL 2
#define BOARD_PLL1CFG_VALUE \
(((BOARD_PLL1CFG_MSEL-1) << SYSCON_PLLCFG_MSEL_SHIFT) | \
((BOARD_PLL1CFG_PSEL-1) << SYSCON_PLLCFG_PSEL_SHIFT))
-#if defined(CONFIG_LPC17_USBHOST) || (CONFIG_LPC17_USBDEV)
+#ifdef CONFIG_LPC17_EMC
+/* EMC clock selection.
+ *
+ * The EMC uses the CPU clock undivided.
+ */
+
+# define BOARD_EMCCLKSEL_VALUE SYSCON_EMCCLKSEL_CCLK_DIV1
+# define LPC17_EMCCLK LPC17_CCLK
+#endif
- /* USB divider. The output of the PLL is used as the USB clock
+#if defined(CONFIG_LPC17_USBHOST) || (CONFIG_LPC17_USBDEV)
+/* USB divider. The output of the PLL is used as the USB clock
*
* USBCLK = PLL1CLK = (SYSCLK * 4) = 48MHz
*/
-#define BOARD_USBCLKSEL_VALUE (SYSCON_USBCLKSEL_USBDIV_DIV1 | \
+# define BOARD_USBCLKSEL_VALUE (SYSCON_USBCLKSEL_USBDIV_DIV1 | \
SYSCON_USBCLKSEL_USBSEL_PLL1)
#endif
@@ -145,28 +153,30 @@
#define ETH_MCFG_CLKSEL_DIV ETH_MCFG_CLKSEL_DIV20
+#ifdef CONFIG_LPC17_SDCARD
/* SDIO dividers. Note that slower clocking is required when DMA is disabled
* in order to avoid RX overrun/TX underrun errors due to delayed responses
* to service FIFOs in interrupt driven mode.
* SDCARD_CLOCK=PCLK/(2*(SDCARD_CLKDIV+1))
*/
-#define SDCARD_CLKDIV_INIT 74 /* 400Khz */
-#define SDCARD_INIT_CLKDIV (SDCARD_CLKDIV_INIT)
+# define SDCARD_CLKDIV_INIT 74 /* 400Khz */
+# define SDCARD_INIT_CLKDIV (SDCARD_CLKDIV_INIT)
-#define SDCARD_NORMAL_CLKDIV 1 /* DMA ON: SDCARD_CLOCK=15MHz */
+# define SDCARD_NORMAL_CLKDIV 1 /* DMA ON: SDCARD_CLOCK=15MHz */
#define SDCARD_SLOW_CLKDIV 14 /* DMA OFF: SDCARD_CLOCK=2MHz */
-#ifdef CONFIG_SDIO_DMA
-# define SDCARD_MMCXFR_CLKDIV (SDCARD_NORMAL_CLKDIV)
-#else
-# define SDCARD_MMCXFR_CLKDIV (SDCARD_SLOW_CLKDIV)
-#endif
-
-#ifdef CONFIG_SDIO_DMA
-# define SDCARD_SDXFR_CLKDIV (SDCARD_NORMAL_CLKDIV)
-#else
-# define SDCARD_SDXFR_CLKDIV (SDCARD_SLOW_CLKDIV)
+# ifdef CONFIG_SDIO_DMA
+# define SDCARD_MMCXFR_CLKDIV (SDCARD_NORMAL_CLKDIV)
+# else
+# define SDCARD_MMCXFR_CLKDIV (SDCARD_SLOW_CLKDIV)
+# endif
+
+# ifdef CONFIG_SDIO_DMA
+# define SDCARD_SDXFR_CLKDIV (SDCARD_NORMAL_CLKDIV)
+# else
+# define SDCARD_SDXFR_CLKDIV (SDCARD_SLOW_CLKDIV)
+# endif
#endif
/* Set EMC delay values:
diff --git a/nuttx/configs/open1788/nsh/defconfig b/nuttx/configs/open1788/nsh/defconfig
index 03c7a22b9..d3e2aae92 100644
--- a/nuttx/configs/open1788/nsh/defconfig
+++ b/nuttx/configs/open1788/nsh/defconfig
@@ -92,6 +92,7 @@ CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set
# CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI is not set
CONFIG_ARMV7M_OABI_TOOLCHAIN=y
+# CONFIG_GPIO_IRQ is not set
#
# LPC17xx Configuration Options
@@ -170,53 +171,15 @@ CONFIG_LPC17_GPDMA=y
# CONFIG_UART0_FLOWCONTROL is not set
#
-# ADC driver options
-#
-
-#
-# CAN driver options
-#
-# CONFIG_GPIO_IRQ is not set
-
-#
-# I2C driver options
-#
-
-#
# SDIO Configuration
#
# CONFIG_SDIO_DMA is not set
+CONFIG_SDIO_DMAPRIO=0x0
# CONFIG_SDIO_WIDTH_D1_ONLY is not set
#
-# Ethernet driver options
-#
-
-#
-# USB device driver options
-#
-
-#
-# USB host driver options
-#
-
-#
# External Memory Configuration
#
-CONFIG_ARCH_HAVE_EXTNAND=y
-CONFIG_ARCH_HAVE_EXTNOR=y
-CONFIG_ARCH_HAVE_EXTDRAM=y
-CONFIG_ARCH_HAVE_EXTSRAM0=y
-CONFIG_ARCH_EXTNAND=y
-CONFIG_ARCH_EXTNANDSIZE=134217728
-CONFIG_ARCH_EXTNOR=y
-CONFIG_ARCH_EXTNORSIZE=4194304
-CONFIG_ARCH_EXTDRAM=y
-CONFIG_ARCH_EXTDRAMSIZE=67108864
-CONFIG_ARCH_EXTDRAMHEAP=y
-CONFIG_ARCH_EXTSRAM0=y
-CONFIG_ARCH_EXTSRAM0SIZE=131072
-CONFIG_ARCH_EXTSRAM0HEAP=y
#
# Architecture Options
@@ -231,6 +194,8 @@ CONFIG_ARCH_HAVE_VFORK=y
CONFIG_ARCH_STACKDUMP=y
# CONFIG_ENDIAN_BIG is not set
# CONFIG_ARCH_HAVE_RAMFUNCS is not set
+CONFIG_ARCH_HAVE_RAMVECTORS=y
+# CONFIG_ARCH_RAMVECTORS is not set
#
# Board Settings
@@ -424,6 +389,7 @@ CONFIG_FAT_MAXFNAME=32
# CONFIG_FAT_DMAMEMORY is not set
# CONFIG_FS_NXFFS is not set
CONFIG_FS_ROMFS=y
+# CONFIG_FS_BINFS is not set
#
# System Logging
@@ -451,7 +417,7 @@ CONFIG_MM_REGIONS=2
# CONFIG_BINFMT_EXEPATH is not set
# CONFIG_NXFLAT is not set
# CONFIG_ELF is not set
-# CONFIG_BUILTIN is not set
+CONFIG_BUILTIN=y
# CONFIG_PIC is not set
CONFIG_SYMTAB_ORDEREDBYNAME=y
@@ -507,6 +473,7 @@ CONFIG_SCHED_WORKSTACKSIZE=2048
#
# Built-In Applications
#
+CONFIG_BUILTIN_PROXY_STACKSIZE=1024
#
# Examples
@@ -541,7 +508,6 @@ CONFIG_EXAMPLES_NSH=y
# CONFIG_EXAMPLES_OSTEST is not set
# CONFIG_EXAMPLES_PASHELLO is not set
# CONFIG_EXAMPLES_PIPE is not set
-# CONFIG_EXAMPLES_POLL is not set
# CONFIG_EXAMPLES_POSIXSPAWN is not set
# CONFIG_EXAMPLES_QENCODER is not set
# CONFIG_EXAMPLES_RGMP is not set
@@ -600,6 +566,7 @@ CONFIG_EXAMPLES_NSH=y
# NSH Library
#
CONFIG_NSH_LIBRARY=y
+CONFIG_NSH_BUILTIN_APPS=y
#
# Disable Individual commands
@@ -681,6 +648,11 @@ CONFIG_NSH_ARCHINIT=y
# CONFIG_SYSTEM_INSTALL is not set
#
+# RAM Test
+#
+# CONFIG_SYSTEM_RAMTEST is not set
+
+#
# readline()
#
CONFIG_SYSTEM_READLINE=y
diff --git a/nuttx/configs/open1788/src/lpc17_sdraminitialize.c b/nuttx/configs/open1788/src/lpc17_sdraminitialize.c
index 07059f49a..4f5c7c0f7 100644
--- a/nuttx/configs/open1788/src/lpc17_sdraminitialize.c
+++ b/nuttx/configs/open1788/src/lpc17_sdraminitialize.c
@@ -54,10 +54,24 @@
/************************************************************************************
* Definitions
************************************************************************************/
-
-#define EMC_NS2CLK(ns, npc) ((ns + npc - 1) / npc)
+/* The core clock is LPC17_EMCCLK which may be either LPC17_CCLK* (undivided), or
+ * LPC17_CCLK / 2 as determined by settings in the board.h header file.
+ *
+ * For example:
+ * LPC17_CCLCK = 120,000,000
+ * EMCCLKSEL -> use LPC17_CCLK undivided
+ * LPC17_EMCCLK = 120,000,000
+ * LPC17_EMCCLK_MHZ = 120 (rounded)
+ * EMC_NSPERCLK = 8 (rounded)
+ */
+
+#define LPC17_EMCCLK_MHZ ((LPC17_EMCCLK + 500000) / 1000000)
+#define EMC_NSPERCLK ((1000 + (LPC17_EMCCLK_MHZ >> 1)) / LPC17_EMCCLK_MHZ)
+#define EMC_NS2CLK(ns) ((ns + (EMC_NSPERCLK - 1)) / EMC_NSPERCLK)
#define MDKCFG_RASCAS0VAL 0x00000303
+/* Set up for 32-bit SDRAM at CS0 */
+
#define CONFIG_ARCH_SDRAM_32BIT
#ifdef CONFIG_ARCH_SDRAM_16BIT
@@ -88,8 +102,6 @@
void lpc17_sdram_initialize(void)
{
- uint32_t mhz;
- uint32_t ns_per_clk;
uint32_t regval;
#ifdef CONFIG_ARCH_SDRAM_16BIT
volatile uint16_t dummy;
@@ -119,30 +131,19 @@ void lpc17_sdram_initialize(void)
SYSCON_EMCDLYCTL_CLKOUT1DLY(1);
putreg32(regval, LPC17_SYSCON_EMCDLYCTL);
- /* The core clock is PLL0CLK:
- *
- * PLL0CLK = (2 * PLL0_M * SYSCLK) / PLL0_D
- */
-
- mhz = PLL0CLK / 1000000;
-#if BOARD_CLKSRCSEL_VALUE == SYSCON_CLKSRCSEL_MAIN
- mhz >>= 1;
-#endif
- ns_per_clk = 1000 / mhz;
-
/* Configure the SDRAM */
- putreg32( EMC_NS2CLK(20, ns_per_clk), LPC17_EMC_DYNAMICRP); /* TRP = 20 nS */
- putreg32( 15, LPC17_EMC_DYNAMICRAS); /* RAS = 42ns to 100K ns, */
- putreg32( 0, LPC17_EMC_DYNAMICSREX); /* TSREX = 1 clock */
- putreg32( 1, LPC17_EMC_DYNAMICAPR); /* TAPR = 2 clocks? */
- putreg32(EMC_NS2CLK(20, ns_per_clk) + 2, LPC17_EMC_DYNAMICDAL); /* TDAL = TRP + TDPL = 20ns + 2clk */
- putreg32( 1, LPC17_EMC_DYNAMICWR); /* TWR = 2 clocks */
- putreg32( EMC_NS2CLK(63, ns_per_clk), LPC17_EMC_DYNAMICRC); /* H57V2562GTR-75C TRC = 63ns(min)*/
- putreg32( EMC_NS2CLK(63, ns_per_clk, LPC17_EMC_DYNAMICRFC); /* H57V2562GTR-75C TRFC = TRC */
- putreg32( 15, LPC17_EMC_DYNAMICXSR); /* Exit self-refresh to active */
- putreg32( EMC_NS2CLK(63, ns_per_clk), LPC17_EMC_DYNAMICRRD); /* 3 clock, TRRD = 15ns (min) */
- putreg32( 1, LPC17_EMC_DYNAMICMRD); /* 2 clock, TMRD = 2 clocks (min) */
+ putreg32( EMC_NS2CLK(20), LPC17_EMC_DYNAMICRP); /* TRP = 20 nS */
+ putreg32( 15, LPC17_EMC_DYNAMICRAS); /* RAS = 42ns to 100K ns, */
+ putreg32( 0, LPC17_EMC_DYNAMICSREX); /* TSREX = 1 clock */
+ putreg32( 1, LPC17_EMC_DYNAMICAPR); /* TAPR = 2 clocks? */
+ putreg32(EMC_NS2CLK(20) + 2, LPC17_EMC_DYNAMICDAL); /* TDAL = TRP + TDPL = 20ns + 2clk */
+ putreg32( 1, LPC17_EMC_DYNAMICWR); /* TWR = 2 clocks */
+ putreg32( EMC_NS2CLK(63), LPC17_EMC_DYNAMICRC); /* H57V2562GTR-75C TRC = 63ns(min)*/
+ putreg32( EMC_NS2CLK(63, LPC17_EMC_DYNAMICRFC); /* H57V2562GTR-75C TRFC = TRC */
+ putreg32( 15, LPC17_EMC_DYNAMICXSR); /* Exit self-refresh to active */
+ putreg32( EMC_NS2CLK(63), LPC17_EMC_DYNAMICRRD); /* 3 clock, TRRD = 15ns (min) */
+ putreg32( 1, LPC17_EMC_DYNAMICMRD); /* 2 clock, TMRD = 2 clocks (min) */
/* Command delayed strategy, using EMCCLKDELAY */
@@ -195,7 +196,7 @@ void lpc17_sdram_initialize(void)
regval = 64000000 / (1 << 13);
regval -= 16;
regval >>= 4;
- regval = regval * mhz / 1000;
+ regval = regval * LPC17_EMCCLK_MHZ / 1000;
putreg32(regval, LPC17_EMC_DYNAMICREFRESH);
/* Issue MODE command */