changeset 1616:126cd98e4832

* src/ec555.S: Corrected typo in initialisation of SYPCR to make sure watchdog no longer ticks when FREEZE is asserted. Changed initialisation of TBSCR to make sure timebase continues ticking when FREEZE is asserted. * src/ec555.S: Removed definition of memory segments. We do not need them afterall. * include/pkgconf/mlt_powerpc_ec555_f02_s01_ram.h: * include/pkgconf/mlt_powerpc_ec555_f02_s01_ram.ldi: * include/pkgconf/mlt_powerpc_ec555_f02_s01_rom.ldi: * include/pkgconf/mlt_powerpc_ec555_f04_s02_ram.h: * include/pkgconf/mlt_powerpc_ec555_f04_s02_ram.ldi: * include/pkgconf/mlt_powerpc_ec555_f04_s02_rom.ldi: * include/pkgconf/mlt_powerpc_ec555_f08_s04_ram.h: * include/pkgconf/mlt_powerpc_ec555_f08_s04_ram.ldi: * include/pkgconf/mlt_powerpc_ec555_f08_s04_rom.ldi: * include/pkgconf/mlt_powerpc_ec555_f08_s08_ram.h: * include/pkgconf/mlt_powerpc_ec555_f08_s08_ram.ldi: * include/pkgconf/mlt_powerpc_ec555_f08_s08_rom.ldi: Reserved a block of 64K at the beginning of external ram for use by RedBoot. Only really necessary if network support is wanted. * include/pkgconf/mlt_powerpc_ec555_ram.h: * include/pkgconf/mlt_powerpc_ec555_ram.ldi: * include/pkgconf/mlt_powerpc_ec555_rom.h: * include/pkgconf/mlt_powerpc_ec555_rom.ldi: Permanently removed * include/pkgconf/mlt_powerpc_ec555_f02_s01_ram.h: New file * include/pkgconf/mlt_powerpc_ec555_f04_s02_ram.h: New file * include/pkgconf/mlt_powerpc_ec555_f08_s04_ram.h: New file * include/pkgconf/mlt_powerpc_ec555_f08_s08_ram.h: New file * include/pkgconf/mlt_powerpc_ec555_f02_s01_ram.ldi: New file * include/pkgconf/mlt_powerpc_ec555_f04_s02_ram.ldi: New file * include/pkgconf/mlt_powerpc_ec555_f08_s04_ram.ldi: New file * include/pkgconf/mlt_powerpc_ec555_f08_s08_ram.ldi: New file * include/pkgconf/mlt_powerpc_ec555_f02_s01_rom.h: New file * include/pkgconf/mlt_powerpc_ec555_f04_s02_rom.h: New file * include/pkgconf/mlt_powerpc_ec555_f08_s04_rom.h: New file * include/pkgconf/mlt_powerpc_ec555_f08_s08_rom.h: New file * include/pkgconf/mlt_powerpc_ec555_f02_s01_rom.ldi: New file * include/pkgconf/mlt_powerpc_ec555_f04_s02_rom.ldi: New file * include/pkgconf/mlt_powerpc_ec555_f08_s04_rom.ldi: New file * include/pkgconf/mlt_powerpc_ec555_f08_s08_rom.ldi: New file * cdl/hal_powerpc_ec555.cdl, src/ec555.S, plf_misc.c: Added support for all four different variants of the ec555 board. Notice that we had to change the memory map. 16 MB flashes simply did not fit in the one we defined previously.
author jlarmour
date Thu, 29 Apr 2004 06:53:27 +0000
parents 5118f42e7e62
children cf32aa525bd8
files packages/hal/powerpc/ec555/current/ChangeLog packages/hal/powerpc/ec555/current/cdl/hal_powerpc_ec555.cdl packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f02_s01_ram.h packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f02_s01_ram.ldi packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f02_s01_rom.h packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f02_s01_rom.ldi packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f04_s02_ram.h packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f04_s02_ram.ldi packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f04_s02_rom.h packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f04_s02_rom.ldi packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f08_s04_ram.h packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f08_s04_ram.ldi packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f08_s04_rom.h packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f08_s04_rom.ldi packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f08_s08_ram.h packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f08_s08_ram.ldi packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f08_s08_rom.h packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f08_s08_rom.ldi packages/hal/powerpc/ec555/current/src/ec555.S
diffstat 19 files changed, 859 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/packages/hal/powerpc/ec555/current/ChangeLog
+++ b/packages/hal/powerpc/ec555/current/ChangeLog
@@ -1,3 +1,50 @@
+2004-04-19  Bob Koninckx <bob.koninckx@o-3s.com>
+	* src/ec555.S: Corrected typo in initialisation of SYPCR to make sure
+    watchdog no longer ticks when FREEZE is asserted. Changed initialisation
+    of TBSCR to make sure timebase continues ticking when FREEZE is asserted.
+	* src/ec555.S: Removed definition of memory segments. We do not need them
+	afterall.
+	* include/pkgconf/mlt_powerpc_ec555_f02_s01_ram.h:
+	* include/pkgconf/mlt_powerpc_ec555_f02_s01_ram.ldi:
+	* include/pkgconf/mlt_powerpc_ec555_f02_s01_rom.ldi:
+	* include/pkgconf/mlt_powerpc_ec555_f04_s02_ram.h:
+	* include/pkgconf/mlt_powerpc_ec555_f04_s02_ram.ldi:
+	* include/pkgconf/mlt_powerpc_ec555_f04_s02_rom.ldi:
+	* include/pkgconf/mlt_powerpc_ec555_f08_s04_ram.h:
+	* include/pkgconf/mlt_powerpc_ec555_f08_s04_ram.ldi:
+	* include/pkgconf/mlt_powerpc_ec555_f08_s04_rom.ldi:
+	* include/pkgconf/mlt_powerpc_ec555_f08_s08_ram.h:
+	* include/pkgconf/mlt_powerpc_ec555_f08_s08_ram.ldi:
+	* include/pkgconf/mlt_powerpc_ec555_f08_s08_rom.ldi: Reserved a block of
+	64K at the beginning of external ram for use by RedBoot. Only really
+	necessary if network support is wanted.
+	* include/pkgconf/mlt_powerpc_ec555_ram.h:
+	* include/pkgconf/mlt_powerpc_ec555_ram.ldi:
+	* include/pkgconf/mlt_powerpc_ec555_rom.h:
+	* include/pkgconf/mlt_powerpc_ec555_rom.ldi: Permanently removed
+
+2004-04-08  Bob Koninckx <bob.koninckx@o-3s.com>
+	* include/pkgconf/mlt_powerpc_ec555_f02_s01_ram.h: New file
+	* include/pkgconf/mlt_powerpc_ec555_f04_s02_ram.h: New file
+	* include/pkgconf/mlt_powerpc_ec555_f08_s04_ram.h: New file
+	* include/pkgconf/mlt_powerpc_ec555_f08_s08_ram.h: New file
+	* include/pkgconf/mlt_powerpc_ec555_f02_s01_ram.ldi: New file
+	* include/pkgconf/mlt_powerpc_ec555_f04_s02_ram.ldi: New file
+	* include/pkgconf/mlt_powerpc_ec555_f08_s04_ram.ldi: New file
+	* include/pkgconf/mlt_powerpc_ec555_f08_s08_ram.ldi: New file
+	* include/pkgconf/mlt_powerpc_ec555_f02_s01_rom.h: New file
+	* include/pkgconf/mlt_powerpc_ec555_f04_s02_rom.h: New file
+	* include/pkgconf/mlt_powerpc_ec555_f08_s04_rom.h: New file
+	* include/pkgconf/mlt_powerpc_ec555_f08_s08_rom.h: New file
+	* include/pkgconf/mlt_powerpc_ec555_f02_s01_rom.ldi: New file
+	* include/pkgconf/mlt_powerpc_ec555_f04_s02_rom.ldi: New file
+	* include/pkgconf/mlt_powerpc_ec555_f08_s04_rom.ldi: New file
+	* include/pkgconf/mlt_powerpc_ec555_f08_s08_rom.ldi: New file
+	* cdl/hal_powerpc_ec555.cdl, src/ec555.S, plf_misc.c: Added support
+    for all four different variants of the ec555 board. Notice that we
+    had to change the memory map. 16 MB flashes simply did not fit in
+    the one we defined previously.
+
 2003-12-16  Gary Thomas  <gary@mlbassoc.com>
 
 	* misc/redboot_ROM.ecm: 
--- a/packages/hal/powerpc/ec555/current/cdl/hal_powerpc_ec555.cdl
+++ b/packages/hal/powerpc/ec555/current/cdl/hal_powerpc_ec555.cdl
@@ -89,6 +89,17 @@ cdl_package CYGPKG_HAL_POWERPC_EC555 {
            equivalent technology."
     }
 
+	cdl_option CYGHWR_HAL_EC555_BOARD_VARIANT {
+	    display       "Board type"
+		flavor        data
+		legal_values  {"F02_S01" "F04_S02" "F08_S04" "F08_S08"}
+		default_value {"F02_S01"}
+		description   "
+		   The ec555 board comes in four different flavours, 2MB flash-1MB RAM,
+		   4MB flash-2MB RAM, 8MB flash-4MB RAM and 8MB flash-8MB RAM. This option
+		   selects the board variant."
+    }
+
     cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
         display      "Number of communication channels on the board"
         flavor       data
@@ -253,8 +264,16 @@ cdl_package CYGPKG_HAL_POWERPC_EC555 {
             flavor data
             no_define
             define -file system.h CYGHWR_MEMORY_LAYOUT_LDI
-            calculated { CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_powerpc_ec555_ram.ldi>" : \
-                                                    "<pkgconf/mlt_powerpc_ec555_rom.ldi>" }
+			calculated { CYG_HAL_STARTUP == "RAM" ? \
+                           CYGHWR_HAL_EC555_BOARD_VARIANT == "F02_S01" ? "<pkgconf/mlt_powerpc_ec555_f02_s01_ram.ldi>" : \
+                           CYGHWR_HAL_EC555_BOARD_VARIANT == "F04_S02" ? "<pkgconf/mlt_powerpc_ec555_f04_s02_ram.ldi>" : \
+                           CYGHWR_HAL_EC555_BOARD_VARIANT == "F08_S04" ? "<pkgconf/mlt_powerpc_ec555_f08_s04_ram.ldi>" : \
+						                                                 "<pkgconf/mlt_powerpc_ec555_f08_s08_ram.ldi>" : \
+                           CYGHWR_HAL_EC555_BOARD_VARIANT == "F02_S01" ? "<pkgconf/mlt_powerpc_ec555_f02_s01_rom.ldi>" : \
+                           CYGHWR_HAL_EC555_BOARD_VARIANT == "F04_S02" ? "<pkgconf/mlt_powerpc_ec555_f04_s02_rom.ldi>" : \
+                           CYGHWR_HAL_EC555_BOARD_VARIANT == "F08_S04" ? "<pkgconf/mlt_powerpc_ec555_f08_s04_rom.ldi>" : \
+                                                                         "<pkgconf/mlt_powerpc_ec555_f08_s08_rom.ldi>"
+            }
         }
 
         cdl_option CYGHWR_MEMORY_LAYOUT_H {
@@ -262,8 +281,16 @@ cdl_package CYGPKG_HAL_POWERPC_EC555 {
             flavor data
             no_define
             define -file system.h CYGHWR_MEMORY_LAYOUT_H
-            calculated { CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_powerpc_ec555_ram.h>" : \
-                                                    "<pkgconf/mlt_powerpc_ec555_rom.h>" }
+			calculated { CYG_HAL_STARTUP == "RAM" ? \
+			               CYGHWR_HAL_EC555_BOARD_VARIANT == "F02_S01" ? "<pkgconf/mlt_powerpc_ec555_f02_s01_ram.h>" : \
+	                       CYGHWR_HAL_EC555_BOARD_VARIANT == "F04_S02" ? "<pkgconf/mlt_powerpc_ec555_f04_s02_ram.h>" : \
+                           CYGHWR_HAL_EC555_BOARD_VARIANT == "F08_S04" ? "<pkgconf/mlt_powerpc_ec555_f08_s04_ram.h>" : \
+                                                                         "<pkgconf/mlt_powerpc_ec555_f08_s08_ram.h>" : \
+                           CYGHWR_HAL_EC555_BOARD_VARIANT == "F02_S01" ? "<pkgconf/mlt_powerpc_ec555_f02_s01_rom.h>" : \
+	                       CYGHWR_HAL_EC555_BOARD_VARIANT == "F04_S02" ? "<pkgconf/mlt_powerpc_ec555_f04_s02_rom.h>" : \
+	                       CYGHWR_HAL_EC555_BOARD_VARIANT == "F08_S04" ? "<pkgconf/mlt_powerpc_ec555_f08_s04_rom.h>" : \
+                                                                         "<pkgconf/mlt_powerpc_ec555_f08_s08_rom.h>"
+            }
         }
     }
 
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f02_s01_ram.h
@@ -0,0 +1,54 @@
+// eCos memory layout - Fri Oct 20 10:25:48 2000
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+#endif
+
+#define CYGMEM_REGION_rom         (0x000000)
+#define CYGMEM_REGION_rom_SIZE    (0x06ffff)
+#define CYGMEM_REGION_rom_ATTR    (CYGMEM_REGION_ATTR_RO)
+
+#define CYGMEM_REGION_ram         (0x1000000)
+#define CYGMEM_REGION_ram_SIZE    (0x0fffff)
+#define CYGMEM_REGION_ram_ATTR    (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+
+#define CYGMEM_REGION_iram        (0x3f9800)
+#define CYGMEM_REGION_iram_SIZE   (0x006800)
+#define CYGMEM_REGION_iram_ATTR   (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+
+#define CYGMEM_REGION_eflash      (0x2000000)
+#define CYGMEM_REGION_eflash_SIZE (0x1fffff)
+#define CYGMEM_REGION_eflash_ATTR (CYGMEM_REGION_ATTR_RO)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_vectors) [];
+#endif
+#define CYGMEM_SECTION_reserved_vectors (CYG_LABEL_NAME (__reserved_vectors))
+#define CYGMEM_SECTION_reserved_vectors_SIZE (0x2000)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_vsr_table) [];
+#endif
+#define CYGMEM_SECTION_reserved_vsr_table (CYG_LABEL_NAME (__reserved_vsr_table))
+#define CYGMEM_SECTION_reserved_vsr_table_SIZE (0x200)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_virtual_table) [];
+#endif
+#define CYGMEM_SECTION_reserved_virtual_table (CYG_LABEL_NAME (__reserved_virtual_table))
+#define CYGMEM_SECTION_reserved_virtual_table_SIZE (0x100)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_for_rom) [];
+#endif
+#define CYGMEM_SECTION_reserved_for_rom (CYG_LABEL_NAME (__reserved_for_rom))
+#define CYGMEM_SECTION_reserved_for_rom_SIZE (0x10000)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x1100000 - (size_t) CYG_LABEL_NAME (__heap1))
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f02_s01_ram.ldi
@@ -0,0 +1,37 @@
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+  rom          : ORIGIN = 0x00000000, LENGTH = 0x0006ffff   /* internal flash */
+  ram(WA)      : ORIGIN = 0x01000000, LENGTH = 0x000fffff   /* external RAM   */
+  iram(WA)     : ORIGIN = 0x003f9800, LENGTH = 0x00006800   /* internal RAM   */
+  eflash(RXIW) : ORIGIN = 0x02000000, LENGTH = 0x001fffff   /* external FLASH */
+}
+
+SECTIONS
+{
+    SECTIONS_BEGIN
+    CYG_LABEL_DEFN(__reserved_vectors) = 0x00000000; 
+
+    . = 0x3f9800;
+    CYG_LABEL_DEFN(__reserved_vsr_table) = ALIGN (0x10); 
+    . = CYG_LABEL_DEFN(__reserved_vsr_table) + 0x200;
+    CYG_LABEL_DEFN(__reserved_virtual_table) = ALIGN (0x10); 
+    . = 0x01000000;
+    CYG_LABEL_DEFN(__reserved_for_rom) = ALIGN (0x10);
+    . = CYG_LABEL_DEFN(__reserved_for_rom) + 0x10000;
+
+    SECTION_vectors          (ram, 0x01010000,  LMA_EQ_VMA)
+    SECTION_text             (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_fini             (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_rodata1          (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_rodata           (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_fixup            (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_gcc_except_table (ram, ALIGN (0x1), LMA_EQ_VMA)
+    SECTION_data             (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_sbss             (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_bss              (ram, ALIGN (0x10), LMA_EQ_VMA)
+    CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+    SECTIONS_END
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f02_s01_rom.h
@@ -0,0 +1,48 @@
+// eCos memory layout - Fri Oct 20 10:25:48 2000
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+#endif
+
+#define CYGMEM_REGION_rom         (0x000000)
+#define CYGMEM_REGION_rom_SIZE    (0x06ffff)
+#define CYGMEM_REGION_rom_ATTR    (CYGMEM_REGION_ATTR_RO)
+
+#define CYGMEM_REGION_ram         (0x1000000)
+#define CYGMEM_REGION_ram_SIZE    (0x0fffff)
+#define CYGMEM_REGION_ram_ATTR    (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+
+#define CYGMEM_REGION_iram        (0x3f9800)
+#define CYGMEM_REGION_iram_SIZE   (0x006800)
+#define CYGMEM_REGION_iram_ATTR   (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+
+#define CYGMEM_REGION_eflash      (0x2000000)
+#define CYGMEM_REGION_eflash_SIZE (0x1fffff)
+#define CYGMEM_REGION_eflash_ATTR (CYGMEM_REGION_ATTR_RO)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_vectors) [];
+#endif
+#define CYGMEM_SECTION_reserved_vectors (CYG_LABEL_NAME (__reserved_vectors))
+#define CYGMEM_SECTION_reserved_vectors_SIZE (0x2000)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_vsr_table) [];
+#endif
+#define CYGMEM_SECTION_reserved_vsr_table (CYG_LABEL_NAME (__reserved_vsr_table))
+#define CYGMEM_SECTION_reserved_vsr_table_SIZE (0x200)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_virtual_table) [];
+#endif
+#define CYGMEM_SECTION_reserved_virtual_table (CYG_LABEL_NAME (__reserved_virtual_table))
+#define CYGMEM_SECTION_reserved_virtual_table_SIZE (0x100)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x1100000 - (size_t) CYG_LABEL_NAME (__heap1))
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f02_s01_rom.ldi
@@ -0,0 +1,42 @@
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+  rom          : ORIGIN = 0x00000000, LENGTH = 0x0006ffff   /* internal flash */
+  ram(WA)      : ORIGIN = 0x01000000, LENGTH = 0x000fffff   /* external RAM   */
+  iram(WA)     : ORIGIN = 0x003f9800, LENGTH = 0x00006800   /* internal RAM   */
+  eflash(RXIW) : ORIGIN = 0x02000000, LENGTH = 0x001fffff   /* external FLASH */
+}
+
+SECTIONS
+{
+    SECTIONS_BEGIN
+
+    CYG_LABEL_DEFN(__reserved_vectors) = 0x00000000;
+
+    SECTION_vectors          (rom, 0x00000000,   LMA_EQ_VMA)
+    SECTION_text             (rom, ALIGN (0x4),  LMA_EQ_VMA)
+    SECTION_fini             (rom, ALIGN (0x8),  LMA_EQ_VMA)
+    SECTION_rodata1          (rom, ALIGN (0x8),  LMA_EQ_VMA)
+    SECTION_rodata           (rom, ALIGN (0x4),  LMA_EQ_VMA)
+    SECTION_fixup            (rom, ALIGN (0x4),  LMA_EQ_VMA)
+    SECTION_gcc_except_table (rom, ALIGN (0x1),  LMA_EQ_VMA)
+
+    . = 0x3f9800;
+    CYG_LABEL_DEFN(__reserved_vsr_table) = ALIGN (0x10);
+    . = CYG_LABEL_DEFN(__reserved_vsr_table) + 0x200;
+    CYG_LABEL_DEFN(__reserved_virtual_table) = ALIGN (0x10);
+    . = CYG_LABEL_DEFN(__reserved_virtual_table) + 0x100;
+
+    SECTION_data             (iram, ALIGN (0x10), FOLLOWING (.gcc_except_table))
+    SECTION_sbss             (iram, ALIGN (0x4),  LMA_EQ_VMA)
+
+    . = 0x1000000;
+
+    SECTION_bss              (ram, ALIGN (0x10), LMA_EQ_VMA)
+
+    CYG_LABEL_DEFN(__heap1) = ALIGN(0x8);
+
+    SECTIONS_END
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f04_s02_ram.h
@@ -0,0 +1,54 @@
+// eCos memory layout - Fri Oct 20 10:25:48 2000
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+#endif
+
+#define CYGMEM_REGION_rom         (0x000000)
+#define CYGMEM_REGION_rom_SIZE    (0x06ffff)
+#define CYGMEM_REGION_rom_ATTR    (CYGMEM_REGION_ATTR_RO)
+
+#define CYGMEM_REGION_ram         (0x1000000)
+#define CYGMEM_REGION_ram_SIZE    (0x1fffff)
+#define CYGMEM_REGION_ram_ATTR    (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+
+#define CYGMEM_REGION_iram        (0x3f9800)
+#define CYGMEM_REGION_iram_SIZE   (0x006800)
+#define CYGMEM_REGION_iram_ATTR   (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+
+#define CYGMEM_REGION_eflash      (0x2000000)
+#define CYGMEM_REGION_eflash_SIZE (0x3fffff)
+#define CYGMEM_REGION_eflash_ATTR (CYGMEM_REGION_ATTR_RO)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_vectors) [];
+#endif
+#define CYGMEM_SECTION_reserved_vectors (CYG_LABEL_NAME (__reserved_vectors))
+#define CYGMEM_SECTION_reserved_vectors_SIZE (0x2000)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_vsr_table) [];
+#endif
+#define CYGMEM_SECTION_reserved_vsr_table (CYG_LABEL_NAME (__reserved_vsr_table))
+#define CYGMEM_SECTION_reserved_vsr_table_SIZE (0x200)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_virtual_table) [];
+#endif
+#define CYGMEM_SECTION_reserved_virtual_table (CYG_LABEL_NAME (__reserved_virtual_table))
+#define CYGMEM_SECTION_reserved_virtual_table_SIZE (0x100)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_for_rom) [];
+#endif
+#define CYGMEM_SECTION_reserved_for_rom (CYG_LABEL_NAME (__reserved_for_rom))
+#define CYGMEM_SECTION_reserved_for_rom_SIZE (0x10000)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x1200000 - (size_t) CYG_LABEL_NAME (__heap1))
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f04_s02_ram.ldi
@@ -0,0 +1,37 @@
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+  rom          : ORIGIN = 0x00000000, LENGTH = 0x0006ffff   /* internal flash */
+  ram(WA)      : ORIGIN = 0x01000000, LENGTH = 0x001fffff   /* external RAM   */
+  iram(WA)     : ORIGIN = 0x003f9800, LENGTH = 0x00006800   /* internal RAM   */
+  eflash(RXIW) : ORIGIN = 0x02000000, LENGTH = 0x003fffff   /* external FLASH */
+}
+
+SECTIONS
+{
+    SECTIONS_BEGIN
+    CYG_LABEL_DEFN(__reserved_vectors) = 0x00000000; 
+
+    . = 0x3f9800;
+    CYG_LABEL_DEFN(__reserved_vsr_table) = ALIGN (0x10); 
+    . = CYG_LABEL_DEFN(__reserved_vsr_table) + 0x200;
+    CYG_LABEL_DEFN(__reserved_virtual_table) = ALIGN (0x10); 
+    . = 0x01000000;
+    CYG_LABEL_DEFN(__reserved_for_rom) = ALIGN (0x10);
+    . = CYG_LABEL_DEFN(__reserved_for_rom) + 0x10000;
+
+    SECTION_vectors          (ram, 0x01010000,  LMA_EQ_VMA)
+    SECTION_text             (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_fini             (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_rodata1          (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_rodata           (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_fixup            (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_gcc_except_table (ram, ALIGN (0x1), LMA_EQ_VMA)
+    SECTION_data             (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_sbss             (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_bss              (ram, ALIGN (0x10), LMA_EQ_VMA)
+    CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+    SECTIONS_END
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f04_s02_rom.h
@@ -0,0 +1,48 @@
+// eCos memory layout - Fri Oct 20 10:25:48 2000
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+#endif
+
+#define CYGMEM_REGION_rom         (0x000000)
+#define CYGMEM_REGION_rom_SIZE    (0x06ffff)
+#define CYGMEM_REGION_rom_ATTR    (CYGMEM_REGION_ATTR_RO)
+
+#define CYGMEM_REGION_ram         (0x1000000)
+#define CYGMEM_REGION_ram_SIZE    (0x1fffff)
+#define CYGMEM_REGION_ram_ATTR    (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+
+#define CYGMEM_REGION_iram        (0x3f9800)
+#define CYGMEM_REGION_iram_SIZE   (0x006800)
+#define CYGMEM_REGION_iram_ATTR   (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+
+#define CYGMEM_REGION_eflash      (0x2000000)
+#define CYGMEM_REGION_eflash_SIZE (0x3fffff)
+#define CYGMEM_REGION_eflash_ATTR (CYGMEM_REGION_ATTR_RO)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_vectors) [];
+#endif
+#define CYGMEM_SECTION_reserved_vectors (CYG_LABEL_NAME (__reserved_vectors))
+#define CYGMEM_SECTION_reserved_vectors_SIZE (0x2000)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_vsr_table) [];
+#endif
+#define CYGMEM_SECTION_reserved_vsr_table (CYG_LABEL_NAME (__reserved_vsr_table))
+#define CYGMEM_SECTION_reserved_vsr_table_SIZE (0x200)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_virtual_table) [];
+#endif
+#define CYGMEM_SECTION_reserved_virtual_table (CYG_LABEL_NAME (__reserved_virtual_table))
+#define CYGMEM_SECTION_reserved_virtual_table_SIZE (0x100)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x1200000 - (size_t) CYG_LABEL_NAME (__heap1))
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f04_s02_rom.ldi
@@ -0,0 +1,42 @@
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+  rom          : ORIGIN = 0x00000000, LENGTH = 0x0006ffff   /* internal flash */
+  ram(WA)      : ORIGIN = 0x01000000, LENGTH = 0x001fffff   /* external RAM   */
+  iram(WA)     : ORIGIN = 0x003f9800, LENGTH = 0x00006800   /* internal RAM   */
+  eflash(RXIW) : ORIGIN = 0x02000000, LENGTH = 0x003fffff   /* external FLASH */
+}
+
+SECTIONS
+{
+    SECTIONS_BEGIN
+
+    CYG_LABEL_DEFN(__reserved_vectors) = 0x00000000;
+
+    SECTION_vectors          (rom, 0x00000000,   LMA_EQ_VMA)
+    SECTION_text             (rom, ALIGN (0x4),  LMA_EQ_VMA)
+    SECTION_fini             (rom, ALIGN (0x8),  LMA_EQ_VMA)
+    SECTION_rodata1          (rom, ALIGN (0x8),  LMA_EQ_VMA)
+    SECTION_rodata           (rom, ALIGN (0x4),  LMA_EQ_VMA)
+    SECTION_fixup            (rom, ALIGN (0x4),  LMA_EQ_VMA)
+    SECTION_gcc_except_table (rom, ALIGN (0x1),  LMA_EQ_VMA)
+
+    . = 0x3f9800;
+    CYG_LABEL_DEFN(__reserved_vsr_table) = ALIGN (0x10);
+    . = CYG_LABEL_DEFN(__reserved_vsr_table) + 0x200;
+    CYG_LABEL_DEFN(__reserved_virtual_table) = ALIGN (0x10);
+    . = CYG_LABEL_DEFN(__reserved_virtual_table) + 0x100;
+
+    SECTION_data             (iram, ALIGN (0x10), FOLLOWING (.gcc_except_table))
+    SECTION_sbss             (iram, ALIGN (0x4),  LMA_EQ_VMA)
+
+    . = 0x1000000;
+
+    SECTION_bss              (ram, ALIGN (0x10), LMA_EQ_VMA)
+
+    CYG_LABEL_DEFN(__heap1) = ALIGN(0x8);
+
+    SECTIONS_END
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f08_s04_ram.h
@@ -0,0 +1,54 @@
+// eCos memory layout - Fri Oct 20 10:25:48 2000
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+#endif
+
+#define CYGMEM_REGION_rom         (0x000000)
+#define CYGMEM_REGION_rom_SIZE    (0x06ffff)
+#define CYGMEM_REGION_rom_ATTR    (CYGMEM_REGION_ATTR_RO)
+
+#define CYGMEM_REGION_ram         (0x1000000)
+#define CYGMEM_REGION_ram_SIZE    (0x3fffff)
+#define CYGMEM_REGION_ram_ATTR    (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+
+#define CYGMEM_REGION_iram        (0x3f9800)
+#define CYGMEM_REGION_iram_SIZE   (0x006800)
+#define CYGMEM_REGION_iram_ATTR   (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+
+#define CYGMEM_REGION_eflash      (0x2000000)
+#define CYGMEM_REGION_eflash_SIZE (0x7fffff)
+#define CYGMEM_REGION_eflash_ATTR (CYGMEM_REGION_ATTR_RO)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_vectors) [];
+#endif
+#define CYGMEM_SECTION_reserved_vectors (CYG_LABEL_NAME (__reserved_vectors))
+#define CYGMEM_SECTION_reserved_vectors_SIZE (0x2000)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_vsr_table) [];
+#endif
+#define CYGMEM_SECTION_reserved_vsr_table (CYG_LABEL_NAME (__reserved_vsr_table))
+#define CYGMEM_SECTION_reserved_vsr_table_SIZE (0x200)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_virtual_table) [];
+#endif
+#define CYGMEM_SECTION_reserved_virtual_table (CYG_LABEL_NAME (__reserved_virtual_table))
+#define CYGMEM_SECTION_reserved_virtual_table_SIZE (0x100)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_for_rom) [];
+#endif
+#define CYGMEM_SECTION_reserved_for_rom (CYG_LABEL_NAME (__reserved_for_rom))
+#define CYGMEM_SECTION_reserved_for_rom_SIZE (0x10000)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x1400000 - (size_t) CYG_LABEL_NAME (__heap1))
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f08_s04_ram.ldi
@@ -0,0 +1,37 @@
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+  rom          : ORIGIN = 0x00000000, LENGTH = 0x0006ffff   /* internal flash */
+  ram(WA)      : ORIGIN = 0x01000000, LENGTH = 0x003fffff   /* external RAM   */
+  iram(WA)     : ORIGIN = 0x003f9800, LENGTH = 0x00006800   /* internal RAM   */
+  eflash(RXIW) : ORIGIN = 0x02000000, LENGTH = 0x007fffff   /* external FLASH */
+}
+
+SECTIONS
+{
+    SECTIONS_BEGIN
+    CYG_LABEL_DEFN(__reserved_vectors) = 0x00000000; 
+
+    . = 0x3f9800;
+    CYG_LABEL_DEFN(__reserved_vsr_table) = ALIGN (0x10); 
+    . = CYG_LABEL_DEFN(__reserved_vsr_table) + 0x200;
+    CYG_LABEL_DEFN(__reserved_virtual_table) = ALIGN (0x10); 
+    . = 0x01000000;
+    CYG_LABEL_DEFN(__reserved_for_rom) = ALIGN (0x10);
+    . = CYG_LABEL_DEFN(__reserved_for_rom) + 0x10000;
+
+    SECTION_vectors          (ram, 0x01010000,  LMA_EQ_VMA)
+    SECTION_text             (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_fini             (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_rodata1          (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_rodata           (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_fixup            (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_gcc_except_table (ram, ALIGN (0x1), LMA_EQ_VMA)
+    SECTION_data             (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_sbss             (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_bss              (ram, ALIGN (0x10), LMA_EQ_VMA)
+    CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+    SECTIONS_END
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f08_s04_rom.h
@@ -0,0 +1,48 @@
+// eCos memory layout - Fri Oct 20 10:25:48 2000
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+#endif
+
+#define CYGMEM_REGION_rom         (0x000000)
+#define CYGMEM_REGION_rom_SIZE    (0x06ffff)
+#define CYGMEM_REGION_rom_ATTR    (CYGMEM_REGION_ATTR_RO)
+
+#define CYGMEM_REGION_ram         (0x1000000)
+#define CYGMEM_REGION_ram_SIZE    (0x3fffff)
+#define CYGMEM_REGION_ram_ATTR    (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+
+#define CYGMEM_REGION_iram        (0x3f9800)
+#define CYGMEM_REGION_iram_SIZE   (0x006800)
+#define CYGMEM_REGION_iram_ATTR   (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+
+#define CYGMEM_REGION_eflash      (0x2000000)
+#define CYGMEM_REGION_eflash_SIZE (0x7fffff)
+#define CYGMEM_REGION_eflash_ATTR (CYGMEM_REGION_ATTR_RO)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_vectors) [];
+#endif
+#define CYGMEM_SECTION_reserved_vectors (CYG_LABEL_NAME (__reserved_vectors))
+#define CYGMEM_SECTION_reserved_vectors_SIZE (0x2000)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_vsr_table) [];
+#endif
+#define CYGMEM_SECTION_reserved_vsr_table (CYG_LABEL_NAME (__reserved_vsr_table))
+#define CYGMEM_SECTION_reserved_vsr_table_SIZE (0x200)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_virtual_table) [];
+#endif
+#define CYGMEM_SECTION_reserved_virtual_table (CYG_LABEL_NAME (__reserved_virtual_table))
+#define CYGMEM_SECTION_reserved_virtual_table_SIZE (0x100)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x1400000 - (size_t) CYG_LABEL_NAME (__heap1))
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f08_s04_rom.ldi
@@ -0,0 +1,42 @@
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+  rom          : ORIGIN = 0x00000000, LENGTH = 0x0006ffff   /* internal flash */
+  ram(WA)      : ORIGIN = 0x01000000, LENGTH = 0x003fffff   /* external RAM   */
+  iram(WA)     : ORIGIN = 0x003f9800, LENGTH = 0x00006800   /* internal RAM   */
+  eflash(RXIW) : ORIGIN = 0x02000000, LENGTH = 0x007fffff   /* external FLASH */
+}
+
+SECTIONS
+{
+    SECTIONS_BEGIN
+
+    CYG_LABEL_DEFN(__reserved_vectors) = 0x00000000;
+
+    SECTION_vectors          (rom, 0x00000000,   LMA_EQ_VMA)
+    SECTION_text             (rom, ALIGN (0x4),  LMA_EQ_VMA)
+    SECTION_fini             (rom, ALIGN (0x8),  LMA_EQ_VMA)
+    SECTION_rodata1          (rom, ALIGN (0x8),  LMA_EQ_VMA)
+    SECTION_rodata           (rom, ALIGN (0x4),  LMA_EQ_VMA)
+    SECTION_fixup            (rom, ALIGN (0x4),  LMA_EQ_VMA)
+    SECTION_gcc_except_table (rom, ALIGN (0x1),  LMA_EQ_VMA)
+
+    . = 0x3f9800;
+    CYG_LABEL_DEFN(__reserved_vsr_table) = ALIGN (0x10);
+    . = CYG_LABEL_DEFN(__reserved_vsr_table) + 0x200;
+    CYG_LABEL_DEFN(__reserved_virtual_table) = ALIGN (0x10);
+    . = CYG_LABEL_DEFN(__reserved_virtual_table) + 0x100;
+
+    SECTION_data             (iram, ALIGN (0x10), FOLLOWING (.gcc_except_table))
+    SECTION_sbss             (iram, ALIGN (0x4),  LMA_EQ_VMA)
+
+    . = 0x1000000;
+
+    SECTION_bss              (ram, ALIGN (0x10), LMA_EQ_VMA)
+
+    CYG_LABEL_DEFN(__heap1) = ALIGN(0x8);
+
+    SECTIONS_END
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f08_s08_ram.h
@@ -0,0 +1,54 @@
+// eCos memory layout - Fri Oct 20 10:25:48 2000
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+#endif
+
+#define CYGMEM_REGION_rom         (0x000000)
+#define CYGMEM_REGION_rom_SIZE    (0x06ffff)
+#define CYGMEM_REGION_rom_ATTR    (CYGMEM_REGION_ATTR_RO)
+
+#define CYGMEM_REGION_ram         (0x1000000)
+#define CYGMEM_REGION_ram_SIZE    (0x7fffff)
+#define CYGMEM_REGION_ram_ATTR    (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+
+#define CYGMEM_REGION_iram        (0x3f9800)
+#define CYGMEM_REGION_iram_SIZE   (0x006800)
+#define CYGMEM_REGION_iram_ATTR   (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+
+#define CYGMEM_REGION_eflash      (0x2000000)
+#define CYGMEM_REGION_eflash_SIZE (0xffffff)
+#define CYGMEM_REGION_eflash_ATTR (CYGMEM_REGION_ATTR_RO)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_vectors) [];
+#endif
+#define CYGMEM_SECTION_reserved_vectors (CYG_LABEL_NAME (__reserved_vectors))
+#define CYGMEM_SECTION_reserved_vectors_SIZE (0x2000)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_vsr_table) [];
+#endif
+#define CYGMEM_SECTION_reserved_vsr_table (CYG_LABEL_NAME (__reserved_vsr_table))
+#define CYGMEM_SECTION_reserved_vsr_table_SIZE (0x200)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_virtual_table) [];
+#endif
+#define CYGMEM_SECTION_reserved_virtual_table (CYG_LABEL_NAME (__reserved_virtual_table))
+#define CYGMEM_SECTION_reserved_virtual_table_SIZE (0x100)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_for_rom) [];
+#endif
+#define CYGMEM_SECTION_reserved_for_rom (CYG_LABEL_NAME (__reserved_for_rom))
+#define CYGMEM_SECTION_reserved_for_rom_SIZE (0x10000)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x1800000 - (size_t) CYG_LABEL_NAME (__heap1))
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f08_s08_ram.ldi
@@ -0,0 +1,37 @@
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+  rom          : ORIGIN = 0x00000000, LENGTH = 0x0006ffff   /* internal flash */
+  ram(WA)      : ORIGIN = 0x01000000, LENGTH = 0x007fffff   /* external RAM   */
+  iram(WA)     : ORIGIN = 0x003f9800, LENGTH = 0x00006800   /* internal RAM   */
+  eflash(RXIW) : ORIGIN = 0x02000000, LENGTH = 0x00ffffff   /* external FLASH */
+}
+
+SECTIONS
+{
+    SECTIONS_BEGIN
+    CYG_LABEL_DEFN(__reserved_vectors) = 0x00000000; 
+
+    . = 0x3f9800;
+    CYG_LABEL_DEFN(__reserved_vsr_table) = ALIGN (0x10); 
+    . = CYG_LABEL_DEFN(__reserved_vsr_table) + 0x200;
+    CYG_LABEL_DEFN(__reserved_virtual_table) = ALIGN (0x10); 
+    . = 0x01000000;
+    CYG_LABEL_DEFN(__reserved_for_rom) = ALIGN (0x10);
+    . = CYG_LABEL_DEFN(__reserved_for_rom) + 0x10000;
+
+    SECTION_vectors          (ram, 0x01010000,  LMA_EQ_VMA)
+    SECTION_text             (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_fini             (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_rodata1          (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_rodata           (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_fixup            (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_gcc_except_table (ram, ALIGN (0x1), LMA_EQ_VMA)
+    SECTION_data             (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_sbss             (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_bss              (ram, ALIGN (0x10), LMA_EQ_VMA)
+    CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+    SECTIONS_END
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f08_s08_rom.h
@@ -0,0 +1,48 @@
+// eCos memory layout - Fri Oct 20 10:25:48 2000
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+#endif
+
+#define CYGMEM_REGION_rom         (0x000000)
+#define CYGMEM_REGION_rom_SIZE    (0x06ffff)
+#define CYGMEM_REGION_rom_ATTR    (CYGMEM_REGION_ATTR_RO)
+
+#define CYGMEM_REGION_ram         (0x1000000)
+#define CYGMEM_REGION_ram_SIZE    (0x7fffff)
+#define CYGMEM_REGION_ram_ATTR    (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+
+#define CYGMEM_REGION_iram        (0x3f9800)
+#define CYGMEM_REGION_iram_SIZE   (0x006800)
+#define CYGMEM_REGION_iram_ATTR   (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+
+#define CYGMEM_REGION_eflash      (0x2000000)
+#define CYGMEM_REGION_eflash_SIZE (0xffffff)
+#define CYGMEM_REGION_eflash_ATTR (CYGMEM_REGION_ATTR_RO)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_vectors) [];
+#endif
+#define CYGMEM_SECTION_reserved_vectors (CYG_LABEL_NAME (__reserved_vectors))
+#define CYGMEM_SECTION_reserved_vectors_SIZE (0x2000)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_vsr_table) [];
+#endif
+#define CYGMEM_SECTION_reserved_vsr_table (CYG_LABEL_NAME (__reserved_vsr_table))
+#define CYGMEM_SECTION_reserved_vsr_table_SIZE (0x200)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_virtual_table) [];
+#endif
+#define CYGMEM_SECTION_reserved_virtual_table (CYG_LABEL_NAME (__reserved_virtual_table))
+#define CYGMEM_SECTION_reserved_virtual_table_SIZE (0x100)
+
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x1800000 - (size_t) CYG_LABEL_NAME (__heap1))
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ec555/current/include/pkgconf/mlt_powerpc_ec555_f08_s08_rom.ldi
@@ -0,0 +1,42 @@
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+  rom          : ORIGIN = 0x00000000, LENGTH = 0x0006ffff   /* internal flash */
+  ram(WA)      : ORIGIN = 0x01000000, LENGTH = 0x007fffff   /* external RAM   */
+  iram(WA)     : ORIGIN = 0x003f9800, LENGTH = 0x00006800   /* internal RAM   */
+  eflash(RXIW) : ORIGIN = 0x02000000, LENGTH = 0x00ffffff   /* external FLASH */
+}
+
+SECTIONS
+{
+    SECTIONS_BEGIN
+
+    CYG_LABEL_DEFN(__reserved_vectors) = 0x00000000;
+
+    SECTION_vectors          (rom, 0x00000000,   LMA_EQ_VMA)
+    SECTION_text             (rom, ALIGN (0x4),  LMA_EQ_VMA)
+    SECTION_fini             (rom, ALIGN (0x8),  LMA_EQ_VMA)
+    SECTION_rodata1          (rom, ALIGN (0x8),  LMA_EQ_VMA)
+    SECTION_rodata           (rom, ALIGN (0x4),  LMA_EQ_VMA)
+    SECTION_fixup            (rom, ALIGN (0x4),  LMA_EQ_VMA)
+    SECTION_gcc_except_table (rom, ALIGN (0x1),  LMA_EQ_VMA)
+
+    . = 0x3f9800;
+    CYG_LABEL_DEFN(__reserved_vsr_table) = ALIGN (0x10);
+    . = CYG_LABEL_DEFN(__reserved_vsr_table) + 0x200;
+    CYG_LABEL_DEFN(__reserved_virtual_table) = ALIGN (0x10);
+    . = CYG_LABEL_DEFN(__reserved_virtual_table) + 0x100;
+
+    SECTION_data             (iram, ALIGN (0x10), FOLLOWING (.gcc_except_table))
+    SECTION_sbss             (iram, ALIGN (0x4),  LMA_EQ_VMA)
+
+    . = 0x1000000;
+
+    SECTION_bss              (ram, ALIGN (0x10), LMA_EQ_VMA)
+
+    CYG_LABEL_DEFN(__heap1) = ALIGN(0x8);
+
+    SECTIONS_END
+}
--- a/packages/hal/powerpc/ec555/current/src/ec555.S
+++ b/packages/hal/powerpc/ec555/current/src/ec555.S
@@ -65,11 +65,41 @@
 ## The following probably belongs in the variant hal rather than the board specifics ... 
 #ifdef CYGPKG_DEVICES_WATCHDOG_MPC5xx
 #include <pkgconf/devices_watchdog_mpc5xx.h>
-#define CYG_SYPCR 0x0000ff8d | (CYGNUM_DEVICES_WATCHDOG_POWERPC_MPC5XX_RELOAD << 16) | CYGDAT_DEVICES_WATCHDOG_POWERPC_MPC5XX_PRESCALE
+#define CYG_SYPCR 0x0000ff8e | (CYGNUM_DEVICES_WATCHDOG_POWERPC_MPC5XX_RELOAD << 16) | CYGDAT_DEVICES_WATCHDOG_POWERPC_MPC5XX_PRESCALE
 #else
 #define CYG_SYPCR 0x0000ff88
 #endif
 
+#define ADDRESS_MASK_1MB         0xfff00000
+#define ADDRESS_MASK_2MB         0xffe00000
+#define ADDRESS_MASK_4MB         0xffc00000
+#define ADDRESS_MASK_8MB         0xff800000
+#define ADDRESS_MASK_16MB        0xff000000
+
+#define EC555_RAM_BASE_ADDRESS   0x01000000
+#define EC555_FLASH_BASE_ADDRESS 0x02000000
+#define EC555_CS2_BASE_ADDRESS   0x04000000
+#define EC555_CS3_BASE_ADDRESS   0x08000000
+
+#if defined(CYGHWR_HAL_EC555_BOARD_VARIANT_F02_S01)
+#define EC555_RAM_ADDRESS_MASK   ADDRESS_MASK_1MB
+#define EC555_FLASH_ADDRESS_MASK ADDRESS_MASK_2MB
+#elif defined(CYGHWR_HAL_EC555_BOARD_VARIANT_F04_S02)
+#define EC555_RAM_ADDRESS_MASK   ADDRESS_MASK_2MB
+#define EC555_FLASH_ADDRESS_MASK ADDRESS_MASK_4MB
+#elif defined(CYGHWR_HAL_EC555_BOARD_VARIANT_F08_S04)
+#define EC555_RAM_ADDRESS_MASK   ADDRESS_MASK_4MB
+#define EC555_FLASH_ADDRESS_MASK ADDRESS_MASK_8MB
+#elif defined(CYGHWR_HAL_EC555_BOARD_VARIANT_F08_S08)
+#define EC555_RAM_ADDRESS_MASK   ADDRESS_MASK_8MB
+#define EC555_FLASH_ADDRESS_MASK ADDRESS_MASK_16MB
+#else
+#error "EC555 Board variant unspecified"
+#endif
+
+#define EC555_CS2_ADDRESS_MASK   0xffff8000
+#define EC555_CS3_ADDRESS_MASK   0xffff8000
+
 #------------------------------------------------------------------------------
                 
         .globl  hal_hardware_init
@@ -118,43 +148,53 @@ hal_hardware_init:
         // Set up the memory map
         // Do NOT write protect the flash memory, flash drivers won't work 
         // if we do
-        lwi     r4, 0x00800003
+
+        // flash banks
+        lwi     r4, (EC555_FLASH_BASE_ADDRESS | 0x00000003)
         stw     r4, (CYGARC_REG_IMM_BR0-CYGARC_REG_IMM_BASE)(r3)
-        lwi     r4, 0xffc00530
+        lwi     r4, (EC555_FLASH_ADDRESS_MASK | 0x00000530)
         stw     r4, (CYGARC_REG_IMM_OR0-CYGARC_REG_IMM_BASE)(r3)
-        lwi     r4, 0x00400011
+
+        // ram banks
+        lwi     r4, (EC555_RAM_BASE_ADDRESS | 0x00000011)
         stw     r4, (CYGARC_REG_IMM_BR1-CYGARC_REG_IMM_BASE)(r3)
-        lwi     r4, 0xfff00000
+        lwi     r4, (EC555_RAM_ADDRESS_MASK | 0x00000000)
         stw     r4, (CYGARC_REG_IMM_OR1-CYGARC_REG_IMM_BASE)(r3)
 #endif
 
 #ifdef CYGPKG_DEVS_ETH_POWERPC_EC555
-
-        lwi     r4, (CYGNUM_DEVS_ETH_POWERPC_EC555_ETH0_BASE & 0xffff0000) | 0x00000803
 #if   (CYGNUM_DEVS_ETH_POWERPC_EC555_ETH0_CS == 2)
+        lwi     r4, (EC555_CS2_BASE_ADDRESS | 0x00000803)
         stw     r4, (CYGARC_REG_IMM_BR2-CYGARC_REG_IMM_BASE)(r3)
         lwi     r4, 0xffff8e60
         stw     r4, (CYGARC_REG_IMM_OR2-CYGARC_REG_IMM_BASE)(r3)
-        lwi     r4, 0
+
+        lwi     r4, EC555_CS3_BASE_ADDRESS
         stw     r4, (CYGARC_REG_IMM_BR3-CYGARC_REG_IMM_BASE)(r3)
+        lwi     r4, EC555_CS3_ADDRESS_MASK
+        stw     r4, (CYGARC_REG_IMM_OR3-CYGARC_REG_IMM_BASE)(r3)
 #elif (CYGNUM_DEVS_ETH_POWERPC_EC555_ETH0_CS == 3)
+        lwi     r4, EC555_CS2_BASE_ADDRESS
+        stw     r4, (CYGARC_REG_IMM_BR2-CYGARC_REG_IMM_BASE)(r3)
+        lwi     r4, EC555_CS2_ADDRESS_MASK
+        stw     r4, (CYGARC_REG_IMM_OR2-CYGARC_REG_IMM_BASE)(r3)
+
+        lwi     r4, (EC555_CS3_BASE_ADDRESS | 0x00000803)
         stw     r4, (CYGARC_REG_IMM_BR3-CYGARC_REG_IMM_BASE)(r3)
         lwi     r4, 0xffff8e60
         stw     r4, (CYGARC_REG_IMM_OR3-CYGARC_REG_IMM_BASE)(r3)
-        lwi     r4, 0
-        stw     r4, (CYGARC_REG_IMM_BR2-CYGARC_REG_IMM_BASE)(r3)
 #else
 #error "Invalid chip select for ethernet card specified"
 #endif
-
 #else
-        lwi     r4, 0x00c00000
+        lwi     r4, EC555_CS2_BASE_ADDRESS
         stw     r4, (CYGARC_REG_IMM_BR2-CYGARC_REG_IMM_BASE)(r3)
-        lwi     r4, 0xffff8000
+        lwi     r4, EC555_CS2_ADDRESS_MASK
         stw     r4, (CYGARC_REG_IMM_OR2-CYGARC_REG_IMM_BASE)(r3)
-        lwi     r4, 0x00e00000
+
+        lwi     r4, EC555_CS3_BASE_ADDRESS
         stw     r4, (CYGARC_REG_IMM_BR3-CYGARC_REG_IMM_BASE)(r3)
-        lwi     r4, 0xffff8000
+        lwi     r4, EC555_CS3_ADDRESS_MASK
         stw     r4, (CYGARC_REG_IMM_OR3-CYGARC_REG_IMM_BASE)(r3)
 #endif
 
@@ -167,8 +207,8 @@ hal_hardware_init:
         lwi     r4, 0
         stw     r4, (CYGARC_REG_IMM_DMOR-CYGARC_REG_IMM_BASE)(r3)
 
-        // Enable the time base and set the freeze flag
-        lwi     r4, 0xc3
+        // Enable the time base, but do _not_ set the freeze flag
+        lwi     r4, 0xc1
         sth     r4, (CYGARC_REG_IMM_TBSCR-CYGARC_REG_IMM_BASE)(r3)
 
         // RTC is clocked by 4MHz crystal, set the freeze flag