diff -u -r -N from_cvs/cdl/hal_arm_at91_eb40a.cdl current/cdl/hal_arm_at91_eb40a.cdl --- from_cvs/cdl/hal_arm_at91_eb40a.cdl +++ current/cdl/hal_arm_at91_eb40a.cdl @@ -93,6 +93,18 @@ ROM, but be copied to RAM during startup." } + cdl_component CYG_HAL_EXTENDEDMEMORY { + display "Extended memory card" + flavor data + default_value {"none"} + legal_values {"none" "AT91MEC01"} + no_define + define -file system.h CYG_HAL_EXTENDEDMEMORY + description " + Select if you want to use extended RAM and or ROM on attached + memory extension card." + } + # Real-time clock/counter specifics cdl_option CYGNUM_HAL_ARM_AT91_CLOCK_SPEED { display "CPU clock speed" @@ -184,18 +196,28 @@ display "Memory layout" flavor data no_define - calculated { (CYG_HAL_STARTUP == "RAM") ? "arm_at91_eb40a_ram" : + calculated { + (CYG_HAL_EXTENDEDMEMORY == "AT91MEC01") + ? ((CYG_HAL_STARTUP == "RAM") ? "arm_at91_eb40a_mec01_ram" : + (CYG_HAL_STARTUP == "ROMRAM") ? "arm_at91_eb40a_mec01_romram" : + "arm_at91_eb40a_mec01_rom") + : ((CYG_HAL_STARTUP == "RAM") ? "arm_at91_eb40a_ram" : (CYG_HAL_STARTUP == "ROMRAM") ? "arm_at91_eb40a_romram" : - "arm_at91_eb40a_rom" } + "arm_at91_eb40a_rom") } cdl_option CYGHWR_MEMORY_LAYOUT_LDI { display "Memory layout linker script fragment" flavor data no_define define -file system.h CYGHWR_MEMORY_LAYOUT_LDI - calculated { (CYG_HAL_STARTUP == "RAM") ? "" : + calculated { + (CYG_HAL_EXTENDEDMEMORY == "AT91MEC01") + ? ((CYG_HAL_STARTUP == "RAM") ? "" : + (CYG_HAL_STARTUP == "ROMRAM") ? "" : + "") + : ((CYG_HAL_STARTUP == "RAM") ? "" : (CYG_HAL_STARTUP == "ROMRAM") ? "" : - "" } + "") } } cdl_option CYGHWR_MEMORY_LAYOUT_H { @@ -203,9 +225,14 @@ flavor data no_define define -file system.h CYGHWR_MEMORY_LAYOUT_H - calculated { (CYG_HAL_STARTUP == "RAM") ? "" : + calculated { + (CYG_HAL_EXTENDEDMEMORY == "AT91MEC01") + ? ((CYG_HAL_STARTUP == "RAM") ? "" : + (CYG_HAL_STARTUP == "ROMRAM") ? "" : + "") + : ((CYG_HAL_STARTUP == "RAM") ? "" : (CYG_HAL_STARTUP == "ROMRAM") ? "" : - "" } + "") } } } diff -u -r -N from_cvs/include/hal_platform_setup.h current/include/hal_platform_setup.h --- from_cvs/include/hal_platform_setup.h +++ current/include/hal_platform_setup.h @@ -101,6 +101,16 @@ stmia r11!,{r0-r9} // Write to controller mov pc,r12 // Change address space, break pipeline _InitMemory: +#if defined(CYG_HAL_EXTENDEDMEMORY_AT91MEC01) + .long 0x01002535 // 0x01000000, 16MB, 2 cycles after transfer, 16-bit, 6 wait states + .long 0x02002121 // 0x02000000, 16MB, 0 cycles after transfer, 16-bit, 1 wait state + .long 0x202026A9 // 0x20200000, 2MB, 3 cycles after transfer, 16-bit, 6 wait states + .long 0x20102629 // 0x20100000, 1MB, 3 cycles after transfer, 16-bit, 6 wait states + .long 0x03002221 // 0x03000000, 1MB, 1 cycles after transfer, 16-bit, 1 wait states + .long 0x03102221 // 0x03100000, 1MB, 1 cycles after transfer, 16-bit, 1 wait states + .long 0x60000000 // unused + .long 0x70000000 // unused +#else .long 0x01002535 // 0x01000000, 16MB, 2 cycles after transfer, 16-bit, 6 wait states .long 0x02002121 // 0x02000000, 16MB, 0 cycles after transfer, 16-bit, 1 wait state .long 0x20003E3E // 0x20000000, 1MB, 7 cycles after transfer, 8-bit, 8 wait states @@ -109,6 +119,7 @@ .long 0x50000000 // unused .long 0x60000000 // unused .long 0x70000000 // unused +#endif .long 0x00000001 // REMAP commande .long 0x00000006 // 7 memory regions, standard read .long AT91_EBI // External Bus Interface address diff -u -r -N from_cvs/include/pkgconf/mlt_arm_at91_eb40a_mec01_ram.h current/include/pkgconf/mlt_arm_at91_eb40a_mec01_ram.h --- from_cvs/include/pkgconf/mlt_arm_at91_eb40a_mec01_ram.h +++ current/include/pkgconf/mlt_arm_at91_eb40a_mec01_ram.h @@ -0,0 +1,17 @@ +// eCos memory layout - Mon Jul 23 11:49:04 2001 + +// This is a generated file - do not edit + +#ifndef __ASSEMBLER__ +#include +#include + +#endif +#define CYGMEM_REGION_ram (0x03000000) +#define CYGMEM_REGION_ram_SIZE (0x00200000) +#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W) +#ifndef __ASSEMBLER__ +extern char CYG_LABEL_NAME (__heap1) []; +#endif +#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1)) +#define CYGMEM_SECTION_heap1_SIZE (0x03200000 - (size_t) CYG_LABEL_NAME (__heap1)) diff -u -r -N from_cvs/include/pkgconf/mlt_arm_at91_eb40a_mec01_ram.ldi current/include/pkgconf/mlt_arm_at91_eb40a_mec01_ram.ldi --- from_cvs/include/pkgconf/mlt_arm_at91_eb40a_mec01_ram.ldi +++ current/include/pkgconf/mlt_arm_at91_eb40a_mec01_ram.ldi @@ -0,0 +1,28 @@ +// eCos memory layout - Mon Jul 23 11:49:04 2001 + +// This is a generated file - do not edit + +#include + +MEMORY +{ + sram : ORIGIN = 0x00000000, LENGTH = 0x040000 + ram : ORIGIN = 0x03000000, LENGTH = 0x200000 +} + +SECTIONS +{ + SECTIONS_BEGIN + SECTION_fixed_vectors (sram, 0x20, LMA_EQ_VMA) + SECTION_rom_vectors (ram, 0x03020000, LMA_EQ_VMA) + SECTION_text (ram, ALIGN (0x4), LMA_EQ_VMA) + SECTION_fini (ram, ALIGN (0x4), LMA_EQ_VMA) + SECTION_rodata (ram, ALIGN (0x4), LMA_EQ_VMA) + SECTION_rodata1 (ram, ALIGN (0x4), LMA_EQ_VMA) + SECTION_fixup (ram, ALIGN (0x4), LMA_EQ_VMA) + SECTION_gcc_except_table (ram, ALIGN (0x4), LMA_EQ_VMA) + SECTION_data (ram, ALIGN (0x4), LMA_EQ_VMA) + SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA) + CYG_LABEL_DEFN(__heap1) = ALIGN (0x8); + SECTIONS_END +} diff -u -r -N from_cvs/include/pkgconf/mlt_arm_at91_eb40a_mec01_rom.h current/include/pkgconf/mlt_arm_at91_eb40a_mec01_rom.h --- from_cvs/include/pkgconf/mlt_arm_at91_eb40a_mec01_rom.h +++ current/include/pkgconf/mlt_arm_at91_eb40a_mec01_rom.h @@ -0,0 +1,20 @@ +// eCos memory layout - Wed Apr 11 13:49:55 2001 + +// This is a generated file - do not edit + +#ifndef __ASSEMBLER__ +#include +#include + +#endif +#define CYGMEM_REGION_ram (0x03000000) +#define CYGMEM_REGION_ram_SIZE (0x00200000) +#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W) +#define CYGMEM_REGION_rom (0x01000000) +#define CYGMEM_REGION_rom_SIZE (0x00100000) +#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R) +#ifndef __ASSEMBLER__ +extern char CYG_LABEL_NAME (__heap1) []; +#endif +#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1)) +#define CYGMEM_SECTION_heap1_SIZE (0x03200000 - (size_t) CYG_LABEL_NAME (__heap1)) diff -u -r -N from_cvs/include/pkgconf/mlt_arm_at91_eb40a_mec01_rom.ldi current/include/pkgconf/mlt_arm_at91_eb40a_mec01_rom.ldi --- from_cvs/include/pkgconf/mlt_arm_at91_eb40a_mec01_rom.ldi +++ current/include/pkgconf/mlt_arm_at91_eb40a_mec01_rom.ldi @@ -0,0 +1,29 @@ +// eCos memory layout - Wed Apr 11 13:49:55 2001 + +// This is a generated file - do not edit + +#include + +MEMORY +{ + sram : ORIGIN = 0x00000000, LENGTH = 0x040000 + rom : ORIGIN = 0x01000000, LENGTH = 0x100000 + ram : ORIGIN = 0x03000000, LENGTH = 0x200000 +} + +SECTIONS +{ + SECTIONS_BEGIN + SECTION_rom_vectors (rom, 0x01000000, LMA_EQ_VMA) + SECTION_text (rom, ALIGN (0x1), LMA_EQ_VMA) + SECTION_fini (rom, ALIGN (0x4), LMA_EQ_VMA) + SECTION_rodata (rom, ALIGN (0x4), LMA_EQ_VMA) + SECTION_rodata1 (rom, ALIGN (0x4), LMA_EQ_VMA) + SECTION_fixup (rom, ALIGN (0x4), LMA_EQ_VMA) + SECTION_gcc_except_table (rom, ALIGN (0x4), LMA_EQ_VMA) + SECTION_fixed_vectors (sram, 0x20, LMA_EQ_VMA) + SECTION_data (ram, 0x03000000, FOLLOWING (.gcc_except_table)) + SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA) + CYG_LABEL_DEFN(__heap1) = ALIGN (0x8); + SECTIONS_END +} diff -u -r -N from_cvs/include/pkgconf/mlt_arm_at91_eb40a_mec01_romram.h current/include/pkgconf/mlt_arm_at91_eb40a_mec01_romram.h --- from_cvs/include/pkgconf/mlt_arm_at91_eb40a_mec01_romram.h +++ current/include/pkgconf/mlt_arm_at91_eb40a_mec01_romram.h @@ -0,0 +1,17 @@ +// eCos memory layout - Mon Jul 23 11:49:04 2001 + +// This is a generated file - do not edit + +#ifndef __ASSEMBLER__ +#include +#include + +#endif +#define CYGMEM_REGION_ram (0x03000000) +#define CYGMEM_REGION_ram_SIZE (0x00200000) +#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W) +#ifndef __ASSEMBLER__ +extern char CYG_LABEL_NAME (__heap1) []; +#endif +#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1)) +#define CYGMEM_SECTION_heap1_SIZE (0x03200000 - (size_t) CYG_LABEL_NAME (__heap1)) diff -u -r -N from_cvs/include/pkgconf/mlt_arm_at91_eb40a_mec01_romram.ldi current/include/pkgconf/mlt_arm_at91_eb40a_mec01_romram.ldi --- from_cvs/include/pkgconf/mlt_arm_at91_eb40a_mec01_romram.ldi +++ current/include/pkgconf/mlt_arm_at91_eb40a_mec01_romram.ldi @@ -0,0 +1,28 @@ +// eCos memory layout - Mon Jul 23 11:49:04 2001 + +// This is a generated file - do not edit + +#include + +MEMORY +{ + sram : ORIGIN = 0x00000000, LENGTH = 0x040000 + ram : ORIGIN = 0x03000000, LENGTH = 0x200000 +} + +SECTIONS +{ + SECTIONS_BEGIN + SECTION_fixed_vectors (sram, 0x20, LMA_EQ_VMA) + SECTION_rom_vectors (ram, 0x03000000, LMA_EQ_VMA) + SECTION_text (ram, ALIGN (0x4), LMA_EQ_VMA) + SECTION_fini (ram, ALIGN (0x4), LMA_EQ_VMA) + SECTION_rodata (ram, ALIGN (0x4), LMA_EQ_VMA) + SECTION_rodata1 (ram, ALIGN (0x4), LMA_EQ_VMA) + SECTION_fixup (ram, ALIGN (0x4), LMA_EQ_VMA) + SECTION_gcc_except_table (ram, ALIGN (0x4), LMA_EQ_VMA) + SECTION_data (ram, ALIGN (0x4), LMA_EQ_VMA) + SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA) + CYG_LABEL_DEFN(__heap1) = ALIGN (0x8); + SECTIONS_END +} diff -u -r -N from_cvs/misc/redboot_ROMRAM_mec01.ecm current/misc/redboot_ROMRAM_mec01.ecm --- from_cvs/misc/redboot_ROMRAM_mec01.ecm +++ current/misc/redboot_ROMRAM_mec01.ecm @@ -0,0 +1,73 @@ +cdl_savefile_version 1; +cdl_savefile_command cdl_savefile_version {}; +cdl_savefile_command cdl_savefile_command {}; +cdl_savefile_command cdl_configuration { description hardware template package }; +cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value }; +cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value }; +cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value }; +cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value }; + +cdl_configuration eCos { + description "" ; + hardware eb40a ; + template redboot ; + package -hardware CYGPKG_HAL_ARM current ; + package -hardware CYGPKG_HAL_ARM_AT91 current ; + package -hardware CYGPKG_DEVS_FLASH_EB40A current ; + package -template CYGPKG_HAL current ; + package -template CYGPKG_INFRA current ; + package -template CYGPKG_REDBOOT current ; + package CYGPKG_IO_FLASH current ; +}; + +cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE { + user_value 6144 +}; + +cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT { + user_value 0 +}; + +cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM { + inferred_value 0 +}; + +cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS { + inferred_value 1 +}; + +cdl_option CYGSEM_HAL_ROM_MONITOR { + user_value 1 +}; + +cdl_option CYGSEM_HAL_USE_ROM_MONITOR { + inferred_value 0 0 +}; + +cdl_component CYG_HAL_STARTUP { + user_value ROMRAM +}; + +cdl_component CYGBLD_BUILD_REDBOOT { + user_value 1 +}; + +cdl_option CYGOPT_REDBOOT_FIS { + user_value 0 +}; + +cdl_component CYGSEM_REDBOOT_FLASH_CONFIG { + user_value 0 +}; + +cdl_option CYGNUM_FLASH_WORKSPACE_SIZE { + user_value 0x00000200 +}; + +cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC { + user_value 0 +}; + +cdl_option CYG_HAL_EXTENDEDMEMORY { + user_value "AT91MEC01" +}; diff -u -r -N from_cvs/misc/redboot_ROM_mec01.ecm current/misc/redboot_ROM_mec01.ecm --- from_cvs/misc/redboot_ROM_mec01.ecm +++ current/misc/redboot_ROM_mec01.ecm @@ -0,0 +1,69 @@ +cdl_savefile_version 1; +cdl_savefile_command cdl_savefile_version {}; +cdl_savefile_command cdl_savefile_command {}; +cdl_savefile_command cdl_configuration { description hardware template package }; +cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value }; +cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value }; +cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value }; +cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value }; + +cdl_configuration eCos { + description "" ; + hardware eb40a ; + template redboot ; + package -hardware CYGPKG_HAL_ARM current ; + package -hardware CYGPKG_HAL_ARM_AT91 current ; + package -hardware CYGPKG_DEVS_FLASH_EB40A current ; + package -template CYGPKG_HAL current ; + package -template CYGPKG_INFRA current ; + package -template CYGPKG_REDBOOT current ; + package CYGPKG_IO_FLASH current ; +}; + +cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE { + user_value 6144 +}; + +cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT { + user_value 0 +}; + +cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM { + inferred_value 0 +}; + +cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS { + inferred_value 1 +}; + +cdl_option CYGSEM_HAL_ROM_MONITOR { + inferred_value 1 +}; + +cdl_option CYGSEM_HAL_USE_ROM_MONITOR { + inferred_value 0 0 +}; + +cdl_component CYG_HAL_STARTUP { + user_value ROM +}; + +cdl_component CYGBLD_BUILD_REDBOOT { + user_value 1 +}; + +cdl_option CYGOPT_REDBOOT_FIS { + user_value 0 +}; + +cdl_component CYGSEM_REDBOOT_FLASH_CONFIG { + user_value 0 +}; + +cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC { + user_value 0 +}; + +cdl_option CYG_HAL_EXTENDEDMEMORY { + user_value "AT91MEC01" +};