summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2014-06-26 17:04:53 -0600
committerGregory Nutt <gnutt@nuttx.org>2014-06-26 17:04:53 -0600
commita3f565dfc000efeb0c6f2bdde076f779e497662a (patch)
tree711848c8d2603f4355b0dea74e66aeae93950faa
parentd62316deff17fa72c22de913827051462437861f (diff)
downloadnuttx-a3f565dfc000efeb0c6f2bdde076f779e497662a.tar.gz
nuttx-a3f565dfc000efeb0c6f2bdde076f779e497662a.tar.bz2
nuttx-a3f565dfc000efeb0c6f2bdde076f779e497662a.zip
Setup the SAMA5D4-EK NSH configuration to use the DRAMBOOT loader by default
-rw-r--r--nuttx/configs/sama5d4-ek/README.txt28
-rw-r--r--nuttx/configs/sama5d4-ek/dramboot/Make.defs6
-rw-r--r--nuttx/configs/sama5d4-ek/nsh/Make.defs6
-rw-r--r--nuttx/configs/sama5d4-ek/nsh/defconfig1
-rw-r--r--nuttx/configs/sama5d4-ek/ramtest/Make.defs6
-rw-r--r--nuttx/configs/sama5d4-ek/scripts/dramboot.ld123
-rw-r--r--nuttx/configs/sama5d4-ek/scripts/uboot.ld (renamed from nuttx/configs/sama5d4-ek/scripts/ddram.ld)4
7 files changed, 162 insertions, 12 deletions
diff --git a/nuttx/configs/sama5d4-ek/README.txt b/nuttx/configs/sama5d4-ek/README.txt
index 837badfab..604fb5bea 100644
--- a/nuttx/configs/sama5d4-ek/README.txt
+++ b/nuttx/configs/sama5d4-ek/README.txt
@@ -378,9 +378,11 @@ Creating and Using DRAMBOOT
mv nuttx.bin dramboot.bin
4. Build the "real" DRAM configuration. This will create the nuttx.hex
- that you will load using dramboot.
+ that you will load using dramboot. Note that you must select
+ CONFIG_SAMA5D4EK_DRAM_BOOT=y. This controls the origin at which the
+ code is linked and positions it correctly for the DRAMBOOT program.
- 5. Restart the system holding DIS_BOOT. You should see the RamBOOT
+ 5. Restart the system holding DIS_BOOT. You should see the RomBOOT
prompt on the 115200 8N1 serial console (and nothing) more. Hit
the ENTER key with the focus on your terminal window a few time.
This will enable JTAG.
@@ -2677,7 +2679,7 @@ SAMA4D4-EK Configuration Options
CONFIG_RAM_START=0x20000000
- CONFIG_RAM_VSTART - The virutal start address of installed DRAM
+ CONFIG_RAM_VSTART - The virtual start address of installed DRAM
CONFIG_RAM_VSTART=0x20000000
@@ -2926,6 +2928,7 @@ Configurations
Now for the gory details:
dramboot:
+
This is a little program to help debug of code in DRAM. It does the
following:
@@ -3037,10 +3040,20 @@ Configurations
3. This configuration executes out of SDRAM flash and is loaded into
SDRAM from NAND, Serial DataFlash, SD card or from a TFTPC sever via
- U-Boot or BareBox. Data also is positioned in SDRAM.
+ U-Boot, BareBox, or the DRAMBOOT configuration described above. Data
+ also is positioned in SDRAM.
+
+ The load address is different for the DRAMBOOT program and the Linux
+ bootloaders. This can easily be reconfigured, however:
+
+ CONFIG_SAMA5D4EK_DRAM_BOOT=y
- I did most testing with nuttx.bin on an SD card. These are the
- commands that I used to boot NuttX from the SD card:
+ See the section above entitled "Creating and Using DRAMBOOT" above
+ for more information.
+
+ At times, have have tested with nuttx.bin on an SD card and booting
+ with U-Boot. These are the commands that I used to boot NuttX from
+ the SD card:
U-Boot> fatload mmc 0 0x20008000 nuttx.bin
U-Boot> go 0x20008040
@@ -3093,7 +3106,8 @@ Configurations
STATUS:
See the To-Do list below
- ramtest
+ ramtest:
+
This is a stripped down version of NSH that runs out of
internal SRAM. It configures SDRAM and supports only the RAM test
at apps/examples/ramtest. This configuration is useful for
diff --git a/nuttx/configs/sama5d4-ek/dramboot/Make.defs b/nuttx/configs/sama5d4-ek/dramboot/Make.defs
index 9de0aeccb..7604f0d37 100644
--- a/nuttx/configs/sama5d4-ek/dramboot/Make.defs
+++ b/nuttx/configs/sama5d4-ek/dramboot/Make.defs
@@ -42,7 +42,11 @@ ifeq ($(CONFIG_SAMA5_BOOT_ISRAM),y)
endif
ifeq ($(CONFIG_SAMA5_BOOT_SDRAM),y)
- LDSCRIPT = ddram.ld
+ifeq ($(CONFIG_SAMA5D4EK_DRAM_BOOT),y)
+ LDSCRIPT = dramboot.ld
+else
+ LDSCRIPT = uboot.ld
+endif
endif
ifeq ($(WINTOOL),y)
diff --git a/nuttx/configs/sama5d4-ek/nsh/Make.defs b/nuttx/configs/sama5d4-ek/nsh/Make.defs
index 26a131ace..ac8800468 100644
--- a/nuttx/configs/sama5d4-ek/nsh/Make.defs
+++ b/nuttx/configs/sama5d4-ek/nsh/Make.defs
@@ -42,7 +42,11 @@ ifeq ($(CONFIG_SAMA5_BOOT_ISRAM),y)
endif
ifeq ($(CONFIG_SAMA5_BOOT_SDRAM),y)
- LDSCRIPT = ddram.ld
+ifeq ($(CONFIG_SAMA5D4EK_DRAM_BOOT),y)
+ LDSCRIPT = dramboot.ld
+else
+ LDSCRIPT = uboot.ld
+endif
endif
ifeq ($(WINTOOL),y)
diff --git a/nuttx/configs/sama5d4-ek/nsh/defconfig b/nuttx/configs/sama5d4-ek/nsh/defconfig
index 86eff4b53..2561cc6e8 100644
--- a/nuttx/configs/sama5d4-ek/nsh/defconfig
+++ b/nuttx/configs/sama5d4-ek/nsh/defconfig
@@ -307,6 +307,7 @@ CONFIG_NSH_MMCSDMINOR=0
# CONFIG_SAMA5D4EK_384MHZ is not set
CONFIG_SAMA5D4EK_396MHZ=y
# CONFIG_SAMA5D4EK_528MHZ is not set
+CONFIG_SAMA5D4EK_DRAM_BOOT=y
#
# RTOS Features
diff --git a/nuttx/configs/sama5d4-ek/ramtest/Make.defs b/nuttx/configs/sama5d4-ek/ramtest/Make.defs
index 023c81daa..14f179357 100644
--- a/nuttx/configs/sama5d4-ek/ramtest/Make.defs
+++ b/nuttx/configs/sama5d4-ek/ramtest/Make.defs
@@ -42,7 +42,11 @@ ifeq ($(CONFIG_SAMA5_BOOT_ISRAM),y)
endif
ifeq ($(CONFIG_SAMA5_BOOT_SDRAM),y)
- LDSCRIPT = ddram.ld
+ifeq ($(CONFIG_SAMA5D4EK_DRAM_BOOT),y)
+ LDSCRIPT = dramboot.ld
+else
+ LDSCRIPT = uboot.ld
+endif
endif
ifeq ($(WINTOOL),y)
diff --git a/nuttx/configs/sama5d4-ek/scripts/dramboot.ld b/nuttx/configs/sama5d4-ek/scripts/dramboot.ld
new file mode 100644
index 000000000..4ca01c6b8
--- /dev/null
+++ b/nuttx/configs/sama5d4-ek/scripts/dramboot.ld
@@ -0,0 +1,123 @@
+/****************************************************************************
+ * configs/sama5d4-ek/scripts/dramboot.ld
+ *
+ * Copyright (C) 2014 Gregory Nutt. All rights reserved.
+ * Author: Gregory Nutt <gnutt@nuttx.org>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * 3. Neither the name NuttX nor the names of its contributors may be
+ * used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************/
+
+/* The SAMA5D4 has 128 KB of ISRAM beginning at virtual address 0x0020:0000.
+ * This memory configuration, however, loads into the 256MB SDRAM on board
+ * the SAMA5D4-EK which lies at 0x2000:0000.
+ *
+ * Vectors in low memory are assumed and 16KB of ISRAM is reserved at the
+ * high end of ISRAM for the page table.
+ */
+
+MEMORY
+{
+ isram (W!RX) : ORIGIN = 0x00200000, LENGTH = 128K - 16K
+ sdram (W!RX) : ORIGIN = 0x20000000, LENGTH = 256M
+}
+
+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
+OUTPUT_ARCH(arm)
+ENTRY(entry)
+ENTRY(_stext)
+
+SECTIONS
+{
+ .text : {
+ _stext = ABSOLUTE(.);
+ *(.vectors)
+ *(.text .text.*)
+ *(.fixup)
+ *(.gnu.warning)
+ *(.rodata .rodata.*)
+ *(.gnu.linkonce.t.*)
+ *(.glue_7)
+ *(.glue_7t)
+ *(.got)
+ *(.gcc_except_table)
+ *(.gnu.linkonce.r.*)
+ *(.ARM.extab*)
+ *(.gnu.linkonce.armextab.*)
+ _etext = ABSOLUTE(.);
+ } > sdram
+
+ .init_section : {
+ _sinit = ABSOLUTE(.);
+ *(.init_array .init_array.*)
+ _einit = ABSOLUTE(.);
+ } > sdram
+
+ .ARM.extab : {
+ *(.ARM.extab*)
+ } > sdram
+
+ /* .ARM.exidx is sorted, so has to go in its own output section. */
+
+ PROVIDE_HIDDEN (__exidx_start = .);
+ .ARM.exidx :
+ {
+ *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+ } > sdram
+ PROVIDE_HIDDEN (__exidx_end = .);
+
+ .data : {
+ _sdata = ABSOLUTE(.);
+ *(.data .data.*)
+ *(.gnu.linkonce.d.*)
+ CONSTRUCTORS
+ _edata = ABSOLUTE(.);
+ } > sdram
+
+ .bss : {
+ _sbss = ABSOLUTE(.);
+ *(.bss .bss.*)
+ *(.gnu.linkonce.b.*)
+ *(COMMON)
+ _ebss = ABSOLUTE(.);
+ } > sdram
+
+ /* Stabs debugging sections. */
+ .stab 0 : { *(.stab) }
+ .stabstr 0 : { *(.stabstr) }
+ .stab.excl 0 : { *(.stab.excl) }
+ .stab.exclstr 0 : { *(.stab.exclstr) }
+ .stab.index 0 : { *(.stab.index) }
+ .stab.indexstr 0 : { *(.stab.indexstr) }
+ .comment 0 : { *(.comment) }
+ .debug_abbrev 0 : { *(.debug_abbrev) }
+ .debug_info 0 : { *(.debug_info) }
+ .debug_line 0 : { *(.debug_line) }
+ .debug_pubnames 0 : { *(.debug_pubnames) }
+ .debug_aranges 0 : { *(.debug_aranges) }
+}
diff --git a/nuttx/configs/sama5d4-ek/scripts/ddram.ld b/nuttx/configs/sama5d4-ek/scripts/uboot.ld
index b2f6349c8..530be2241 100644
--- a/nuttx/configs/sama5d4-ek/scripts/ddram.ld
+++ b/nuttx/configs/sama5d4-ek/scripts/uboot.ld
@@ -1,5 +1,5 @@
/****************************************************************************
- * configs/sama5d4-ek/scripts/ddram.ld
+ * configs/sama5d4-ek/scripts/uboot.ld
*
* Copyright (C) 2014 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
@@ -36,7 +36,7 @@
/* The SAMA5D4 has 128 KB of ISRAM beginning at virtual address 0x0020:0000.
* This memory configuration, however, loads into the 256MB SDRAM on board
* the SAMA5D4-EK which lies at 0x2000:0000. An offset 0x00008000 is
- * reserved by the bootloader.
+ * reserved for used by the U-boot bootloader.
*
* Vectors in low memory are assumed and 16KB of ISRAM is reserved at the
* high end of ISRAM for the page table.