Hi, attached the patch for:

- Adding "eth" linker script section for arm bsp.
- Adding new  linker comands for LPC176x bsp that includes eth section.

This patch is useful useful when working with DMA devices, so we can put
"ethernet memory" in specific locations.

Regards

-- 
[image: http://www.tallertechnologies.com]
<http://www.tallertechnologies.com>
Casares, Federico
Sr. Software Engineer
Taller Technologies Argentina

San Lorenzo 47, 3rd Floor, Office 5
Córdoba, Argentina
From 6c1f50a00a43cb9128441195508f5a0563907440 Mon Sep 17 00:00:00 2001
From: Federico Casares <federico.casa...@tallertechnologies.com>
Date: Wed, 27 Aug 2014 10:12:30 -0300
Subject: [PATCH] Adding "eth" linker script section for arm bsp. Adding new
 linker comands for LPC176x bsp that includes eth section.

---
 c/src/lib/libbsp/arm/lpc176x/Makefile.am           |  1 +
 .../startup/linkcmds.lpc1768_mbed_ahb_ram_eth      | 30 ++++++++++++++++++++++
 c/src/lib/libbsp/arm/shared/startup/linkcmds.base  |  7 +++++
 3 files changed, 38 insertions(+)
 create mode 100644 c/src/lib/libbsp/arm/lpc176x/startup/linkcmds.lpc1768_mbed_ahb_ram_eth

diff --git a/c/src/lib/libbsp/arm/lpc176x/Makefile.am b/c/src/lib/libbsp/arm/lpc176x/Makefile.am
index 3a1d4b2..36711a6 100644
--- a/c/src/lib/libbsp/arm/lpc176x/Makefile.am
+++ b/c/src/lib/libbsp/arm/lpc176x/Makefile.am
@@ -69,6 +69,7 @@ project_lib_DATA += startup/linkcmds
 EXTRA_DIST =
 EXTRA_DIST += startup/linkcmds.lpc1768_mbed
 EXTRA_DIST += startup/linkcmds.lpc1768_mbed_ahb_ram
+EXTRA_DIST += startup/linkcmds.lpc1768_mbed_ahb_ram_eth
 
 
 # ----------------------------
diff --git a/c/src/lib/libbsp/arm/lpc176x/startup/linkcmds.lpc1768_mbed_ahb_ram_eth b/c/src/lib/libbsp/arm/lpc176x/startup/linkcmds.lpc1768_mbed_ahb_ram_eth
new file mode 100644
index 0000000..5ea4c70
--- /dev/null
+++ b/c/src/lib/libbsp/arm/lpc176x/startup/linkcmds.lpc1768_mbed_ahb_ram_eth
@@ -0,0 +1,30 @@
+/* LPC1768 OEM Board from Embedded Artists */
+
+MEMORY {
+	ROM_INT (RX)  : ORIGIN = 0x00000000, LENGTH = 512k
+	RAM_INT (AIW) : ORIGIN = 0x10000000, LENGTH = 32k
+	RAM_AHB1 (AIW) : ORIGIN = 0x2007C000, LENGTH = 16k
+	RAM_AHB2 (AIW) : ORIGIN = 0x20080000, LENGTH = 16k
+}
+
+REGION_ALIAS ("REGION_START", ROM_INT);
+REGION_ALIAS ("REGION_VECTOR", RAM_INT);
+REGION_ALIAS ("REGION_TEXT", ROM_INT);
+REGION_ALIAS ("REGION_TEXT_LOAD", ROM_INT);
+REGION_ALIAS ("REGION_RODATA", ROM_INT);
+REGION_ALIAS ("REGION_RODATA_LOAD", ROM_INT);
+REGION_ALIAS ("REGION_DATA", RAM_INT);
+REGION_ALIAS ("REGION_DATA_LOAD", ROM_INT);
+REGION_ALIAS ("REGION_FAST_TEXT", RAM_INT);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", ROM_INT);
+REGION_ALIAS ("REGION_FAST_DATA", RAM_INT);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM_INT);
+REGION_ALIAS ("REGION_BSS", RAM_AHB1);
+REGION_ALIAS ("REGION_WORK", RAM_INT);
+REGION_ALIAS ("REGION_STACK", RAM_INT);
+REGION_ALIAS ("REGION_ETH", RAM_AHB2);
+
+bsp_stack_main_size = DEFINED (bsp_stack_main_size) ? bsp_stack_main_size : 1024;
+bsp_stack_main_size = ALIGN (bsp_stack_main_size, bsp_stack_align);
+
+INCLUDE linkcmds.armv7m
diff --git a/c/src/lib/libbsp/arm/shared/startup/linkcmds.base b/c/src/lib/libbsp/arm/shared/startup/linkcmds.base
index 04f3308..c03cbca 100644
--- a/c/src/lib/libbsp/arm/shared/startup/linkcmds.base
+++ b/c/src/lib/libbsp/arm/shared/startup/linkcmds.base
@@ -397,6 +397,13 @@ SECTIONS {
 	} > REGION_STACK AT > REGION_STACK
 	bsp_section_stack_size = bsp_section_stack_end - bsp_section_stack_begin;
 
+    .eth (NOLOAD) : ALIGN_WITH_INPUT {
+        bsp_section_eth_begin = .;
+        *(.eth)
+        bsp_section_eth_end = .;
+    } > REGION_ETH AT > REGION_ETH
+    bsp_section_eth_size = bsp_section_eth_end - bsp_section_eth_begin;
+
 	/* FIXME */
 	RamBase = ORIGIN (REGION_WORK);
 	RamSize = LENGTH (REGION_WORK);
-- 
1.9.1

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to