# HG changeset patch # User nickg # Date 1052851094 0 # Node ID 09c58c54db2ff0f339158ac147d58d4a5f894dd1 # Parent d4f4e1fb283b4f488e71b909addd41b7f63195b5 * ecos.db: Added packages and targets for Atmel AT91 boards: EB40, EB40A, EB42 and EB55. diff --git a/packages/ChangeLog b/packages/ChangeLog --- a/packages/ChangeLog +++ b/packages/ChangeLog @@ -1,3 +1,8 @@ +2003-05-12 Nick Garnett + + * ecos.db: Added packages and targets for Atmel AT91 boards: EB40, + EB40A, EB42 and EB55. + 2003-05-05 John Dallaway * pkgconf/rules.doc: Build PNG images (not GIFs) for HTML docs. diff --git a/packages/ecos.db b/packages/ecos.db --- a/packages/ecos.db +++ b/packages/ecos.db @@ -192,6 +192,16 @@ package CYGPKG_DEVS_FLASH_ATMEL_AT29CXXX flash memory devices." } +package CYGPKG_DEVS_FLASH_ATMEL_AT49XXXX { + alias { "Support for Atmel AT49xxxx flash memory" flash_atmel_at49xxxx } + directory devs/flash/atmel/at49xxxx + script flash_atmel_at49xxxx.cdl + hardware + description " + This package contains hardware support for Atmel AT49xxxx + flash memory devices." +} + package CYGPKG_DEVS_FLASH_ARM_PID { alias { "Support for flash memory on ARM/PID board" flash_arm_pid } directory devs/flash/arm/pid @@ -322,6 +332,36 @@ package CYGPKG_DEVS_FLASH_AT91 { on the Atmel AT91/EB40 platform(s)." } +package CYGPKG_DEVS_FLASH_EB40A { + alias { "FLASH memory support for Atmel AT91/EB40A" flash_eb40a } + directory devs/flash/arm/eb40a + script flash_eb40a.cdl + hardware + description " + This package contains hardware support for FLASH memory + on the Atmel AT91/EB40A platform(s)." +} + +package CYGPKG_DEVS_FLASH_EB42 { + alias { "FLASH memory support for Atmel AT91/EB42" flash_eb42 } + directory devs/flash/arm/eb42 + script flash_eb42.cdl + hardware + description " + This package contains hardware support for FLASH memory + on the Atmel AT91/EB42 platform(s)." +} + +package CYGPKG_DEVS_FLASH_EB55 { + alias { "FLASH memory support for Atmel AT91/EB55" flash_eb55 } + directory devs/flash/arm/eb55 + script flash_eb55.cdl + hardware + description " + This package contains hardware support for FLASH memory + on the Atmel AT91/EB55 platform(s)." +} + package CYGPKG_DEVS_FLASH_ASSABET { alias { "FLASH memory support for Intel SA1110 (Assabet)" flash_assabet } directory devs/flash/arm/assabet @@ -1999,13 +2039,54 @@ package CYGPKG_HAL_ARM_INTEGRATOR { } package CYGPKG_HAL_ARM_AT91 { - alias { "Atmel evaluation board (EB40)" hal_arm_at91 arm_at91_hal } - directory hal/arm/at91 + alias { "Atmel AT91 variant HAL" hal_arm_at91 arm_at91_hal } + directory hal/arm/at91/var script hal_arm_at91.cdl hardware description " -The at91 HAL package provides the support needed to run eCos on an Atmel -evaluation board (EB40)." + The at91 HAL package provides the support needed to run eCos on Atmel + AT91 based targets." +} + +package CYGPKG_HAL_ARM_AT91_EB40 { + alias { "Atmel evaluation board (EB40)" hal_arm_at91 arm_at91_hal } + directory hal/arm/at91/eb40 + script hal_arm_at91_eb40.cdl + hardware + description " + The eb40 HAL package provides the support needed to run eCos on an Atmel + evaluation board (EB40)." +} + + +package CYGPKG_HAL_ARM_AT91_EB40A { + alias { "Atmel evaluation board (EB40A)" hal_arm_at91_eb40a arm_at91_eb40a_hal } + directory hal/arm/at91/eb40a + script hal_arm_at91_eb40a.cdl + hardware + description " + The eb40a HAL package provides the support needed to run eCos on an Atmel + evaluation board (EB40A)." +} + +package CYGPKG_HAL_ARM_AT91_EB42 { + alias { "Atmel evaluation board (EB42)" hal_arm_at91_eb42 arm_at91_eb42_hal } + directory hal/arm/at91/eb42 + script hal_arm_at91_eb42.cdl + hardware + description " + The eb42 HAL package provides the support needed to run eCos on an Atmel + evaluation board (EB42)." +} + +package CYGPKG_HAL_ARM_AT91_EB55 { + alias { "Atmel evaluation board (EB55)" hal_arm_at91_eb55 arm_at91_eb55_hal } + directory hal/arm/at91/eb55 + script hal_arm_at91_eb55.cdl + hardware + description " + The eb55 HAL package provides the support needed to run eCos on an Atmel + evaluation board (EB55)." } package CYGPKG_HAL_ARM_EBSA285 { @@ -3237,10 +3318,6 @@ package CYGPKG_HAL_CALM32_CORE { directory hal/calmrisc32/core/ script hal_calm32_core.cdl hardware - description " - The CalmRISC32 Core architecture HAL package provides generic support - for this processor architecture. It is also necessary to - select a specific target platform HAL package." } package CYGPKG_HAL_CALM32_CEB { @@ -3384,18 +3461,64 @@ target integrator_arm9 { module installed." } -target at91 { - alias { "Atmel evaluation board (EB40)" eb40 } +target eb40 { + alias { "Atmel evaluation board (EB40)" at91 at91_eb40 } packages { CYGPKG_HAL_ARM CYGPKG_HAL_ARM_AT91 + CYGPKG_HAL_ARM_AT91_EB40 CYGPKG_DEVS_FLASH_AT91 CYGPKG_IO_SERIAL_ARM_AT91 CYGPKG_DEVICES_WATCHDOG_ARM_AT91 } description " -The aeb target provides the packages needed to run eCos on an Atmel -evaluation board (EB40)." -} + The eb40 target provides the packages needed to run eCos on an Atmel + evaluation board (EB40)." +} + +target eb40a { + alias { "Atmel evaluation board (EB40A)" at91_eb40a } + packages { CYGPKG_HAL_ARM + CYGPKG_HAL_ARM_AT91 + CYGPKG_HAL_ARM_AT91_EB40A + CYGPKG_DEVS_FLASH_EB40A + CYGPKG_DEVS_FLASH_ATMEL_AT49XXXX + CYGPKG_IO_SERIAL_ARM_AT91 + CYGPKG_DEVICES_WATCHDOG_ARM_AT91 + } + description " + The eb40a target provides the packages needed to run eCos on an Atmel + evaluation board (EB40A)." +} + +target eb42 { + alias { "Atmel evaluation board (EB42)" at91_eb42 } + packages { CYGPKG_HAL_ARM + CYGPKG_HAL_ARM_AT91 + CYGPKG_HAL_ARM_AT91_EB42 + CYGPKG_DEVS_FLASH_EB42 + CYGPKG_DEVS_FLASH_ATMEL_AT49XXXX + CYGPKG_IO_SERIAL_ARM_AT91 + } + description " + The eb42 target provides the packages needed to run eCos on an Atmel + evaluation board (EB42)." +} + +target eb55 { + alias { "Atmel evaluation board (EB55)" at91_eb55 } + packages { CYGPKG_HAL_ARM + CYGPKG_HAL_ARM_AT91 + CYGPKG_HAL_ARM_AT91_EB55 + CYGPKG_DEVS_FLASH_EB55 + CYGPKG_DEVS_FLASH_ATMEL_AT49XXXX + CYGPKG_IO_SERIAL_ARM_AT91 + CYGPKG_DEVICES_WATCHDOG_ARM_AT91 + } + description " + The eb55 target provides the packages needed to run eCos on an Atmel + evaluation board (EB55)." +} + target ebsa285 { alias { "Intel EBSA285 StrongARM board" ebsa } diff --git a/packages/redboot/current/doc/redboot_installing.sgml b/packages/redboot/current/doc/redboot_installing.sgml --- a/packages/redboot/current/doc/redboot_installing.sgml +++ b/packages/redboot/current/doc/redboot_installing.sgml @@ -778,18 +778,23 @@ description of the associated modes. -ARM/ARM7 Atmel AT91 Evaluation Board (EB40) +ARM/ARM7 Atmel AT91 Evaluation Boards (EBXX) Overview -Atmel AT91/EB40 +Atmel AT91/EBXX installing and testing -installing and testingAtmel AT91/EB40 -RedBoot supports both serial ports. -The default serial port settings are 38400,8,N,1. RedBoot -also supports minimal flash management on the EB40. -However, since the flash device (AT29LV1024) is so small (only the upper 64K is -available for general use), only the simple flash write command 'fis -write' is supported. +installing and testingAtmel AT91/EBXX + +RedBoot support is available for the EB40, EB40A, EB42 and EB55 +boards. By default all these boards are shipped with only 256Kbytes of +RAM. To minimize the amount of RAM used by RedBoot, only very basic +flash management is provided, comprising of just the fis +erase and fis write commands. + + +RedBoot supports both serial ports. +The default serial port settings are 38400,8,N,1. + The following RedBoot configurations are supported: @@ -834,20 +839,32 @@ write' is supported. Initial Installation Method -This development board comes with ARM's debug tool, Angel, installed in flash. -At this time, Angel will not be replaced. Rather, RedBoot will be placed in -the alternate half of flash. Switch SW1 is used which monitor to boot. Selecting -SW1 to "lower mem" will choose Angel. Select SW1 to "Upper mem" for RedBoot once -it has been installed. +RedBoot installation is essentially the same for all boards, however +the details differ slightly. Please make sure you follow the +directions from the correct section below. Any errors could result in +an unusable board. + + + +Installing RedBoot on the EB40 + +This development board comes with ARM's debug tool, Angel, installed +in flash. At this time, Angel will not be replaced. Rather, RedBoot +will be placed in the alternate half of flash. Switch SW1 is used to +select which monitor to boot. Selecting SW1 to lower mem will +choose Angel. Select SW1 to Upper mem for RedBoot once it has been +installed. -Set SW1 to "lower mem" and connect serial port A to a host computer. Using GDB -from the host and Angel on the board, download the RAM mode image of RedBoot -to the board. SW1 should then be set to "upper mem" just before starting RedBoot using -the 'cont' command. Once RedBoot is started, the Angel session must be interrupted (on -Linux this can be done using ^Z). Follow this by connecting to the board using -minicom at 38400-8N1. At this point, RedBoot will be running on the board in -RAM. Now, download the ROMRAM mode image and program it to flash. +Set SW1 to lower mem and connect serial port A to a +host computer. Using GDB from the host and Angel on the board, +download the RAM mode image of RedBoot to the board. SW1 should then +be set to upper mem just before starting RedBoot +using the cont command. Once RedBoot is started, +the Angel session must be interrupted (on Linux this can be done using +^Z). Follow this by connecting to the board using minicom at +38400-8N1. At this point, RedBoot will be running on the board in +RAM. Now, download the ROM mode image and program it to flash. arm-elf-gdb redboot_RAM.elf (gdb) tar rdi s=/dev/ttyS0 @@ -865,7 +882,7 @@ Loading section .data, size 0x2e4 lma 0x Start address 0x2020040 , load size 39068 Transfer rate: 6250 bits/sec, 500 bytes/write. -At this point, set SW1 to "upper mem". +At this point, set SW1 to upper mem. (gdb) cont Continuing. @@ -886,13 +903,79 @@ FLASH: 0x01010000 - 0x01020000, 256 bloc RedBoot> load -m ymodem -b %{FREEMEMLO} -Use minicom to send the file redboot_ROMRAM.srec via YModem. +Use minicom to send the file redboot_ROM.srec via YModem. RedBoot> fi wr -f 0x01010000 -b %{FREEMEMLO} -l 0xe100 Press the "reset" pushbutton and RedBoot should come up on the board. + + + +Installing RedBoot on the EB40A, EB42 or EB55 + +These development boards come with ARM's debug tool, Angel, installed +in flash. At this time, Angel will not be replaced. Rather, RedBoot +will be placed in the alternate half of flash. Jumper JP1 is used to +select which monitor to boot. Setting JP1 to STD +will choose Angel. Set JP1 to USER for RedBoot +once it has been installed. + + +Set JP1 to STD and connect serial port A to a host +computer. Using GDB from the host and Angel on the board, download +the RAM mode image of RedBoot to the board. Start RedBoot using the +'cont' command. Once RedBoot is started, the Angel session must be +interrupted (on Linux this can be done using ^Z). Follow this by +connecting to the board using minicom at 38400-8N1. At this point, +RedBoot will be running on the board in RAM. Now, download the ROM +mode image and program it to flash. + +arm-elf-gdb redboot_RAM.elf +(gdb) tar rdi s=/dev/ttyS0 +Angel Debug Monitor (serial) 1.04 (Advanced RISC Machines SDT 2.5) for AT91EB55 (2.20) +Angel Debug Monitor rebuilt on Feb 03 2002 at 16:10:20 +Serial Rate: 9600 +Connected to ARM RDI target. +(gdb) set $cpsr=0xd3 +(gdb) load +Loading section .rom_vectors, size 0x40 lma 0x2008000 +Loading section .text, size 0xb0b8 lma 0x2008040 +Loading section .rodata, size 0x1c27 lma 0x20130f8 +Loading section .data, size 0x5f0 lma 0x2014d20 +Start address 0x2008040, load size 54031 +Transfer rate: 6264 bits/sec, 500 bytes/write. +(gdb) cont +Continuing. + +At this point, suspend the GDB session (use Ctrl-Z) and start a +terminal emulator: + +RedBoot> version + +RedBoot(tm) bootstrap and debug environment [ROM] +Non-certified release, version UNKNOWN - built 16:58:52, May 7 2003 + +Platform: Atmel AT91/EB55 (ARM7TDMI) +Copyright (C) 2000, 2001, 2002, Red Hat, Inc. + +RAM: 0x02000000-0x02040000, 0x020068a8-0x0203f000 available +FLASH: 0x01010000 - 0x01200000, 31 blocks of 0x00010000 bytes each. + +RedBoot> load -m ymodem -b %{FREEMEMLO} + +Use minicom to send the file redboot_ROM.srec via YModem. + +RedBoot> fi wr -f 0x01100000 -b %{FREEMEMLO} -l 0x10000 + +Set JP1 to the USER setting, +press the "reset" pushbutton and RedBoot +should come up on the board. + + + + Special RedBoot Commands @@ -900,7 +983,11 @@ should come up on the board. Memory Maps -This processor has no MMU, so the only memory map is for physical addresses. +This processor has no MMU, so the only memory map is for +physical addresses. + + +The memory layout of the EB40 is as follows: Physical Address Range Description ----------------------- ---------------------------------- @@ -908,9 +995,38 @@ 0x00000000 - 0x00000fff On-chip SRAM 0x01000000 - 0x0101ffff Flash 0x02000000 - 0x0207ffff RAM 0xffe00000 - 0xffffffff I/O registers - -The flash based RedBoot image occupies virtual addresses 0x01010000 - 0x0101dfff - + + +The flash based RedBoot image occupies virtual addresses 0x01010000 - 0x0101dfff. + + + +The memory layout of the EB40A is as follows: + +Physical Address Range Description +----------------------- ---------------------------------- +0x00000000 - 0x0003ffff On-chip SRAM +0x01000000 - 0x011fffff Flash +0x02000000 - 0x02ffffff External SRAM (optional) +0xffe00000 - 0xffffffff I/O registers + + +The flash based RedBoot image occupies virtual addresses 0x01100000 - 0x0110ffff. + + + +The memory layout of the EB42 and EB55 is as follows: + +Physical Address Range Description +----------------------- ---------------------------------- +0x00000000 - 0x00000fff On-chip SRAM +0x01000000 - 0x011fffff Flash +0x02000000 - 0x0204ffff RAM +0xffe00000 - 0xffffffff I/O registers + + +The flash based RedBoot image occupies virtual addresses 0x01100000 - 0x0110ffff. + @@ -920,10 +1036,23 @@ The flash based RedBoot image occupies v needed for building RedBoot according to the procedure described in : +export ARCH_DIR=arm + export TARGET=eb40 -export ARCH_DIR=arm -export PLATFORM_DIR=at91 +export PLATFORM_DIR=at91/eb40 + +export TARGET=eb40a +export PLATFORM_DIR=at91/eb40a + +export TARGET=eb42 +export PLATFORM_DIR=at91/eb42 + +export TARGET=eb55 +export PLATFORM_DIR=at91/eb55 + +Use just one of the TARGET and +PLATFORM_DIR variable pairs only. The names of configuration files are listed above with the