Skip to content
/ ecos Public

eCos, open source, royalty-free, real-time operating system

License

Notifications You must be signed in to change notification settings

hharte/ecos

Repository files navigation

Building RedBoot for the Intel ixp4xx

Introduction

RedBoot is an embedded application running in the eCos Real-Time Operating System (RTOS) that provides bootloader functionality to a wide variety of platforms. It is often used as the bootloader for boards using the Intel IXP-4xx Xscale CPU.

This repository consists of the original eCos source code imported into git from CVS using Migrate CVS repositories to Subversion or Git.

The Intel IXDP425 Development Platform is currently supported.

Building from Source

This eCos repository has been updated to work with recent versions of the GNU C Compiler available as part of OpenWrt. As of this writing, gcc 12.1 is supported.

Build OpenWrt to obtain GCC Cross Compiler

Obtain OpenWrt and build for Intel Xscale to obtain the required GCC cross compiler.

Install Host Prerequisites:

    $ sudo apt-get install tcl tk tk-dev tcl-dev

Clone eCos Repository

    $ cd ~/src
    $ git clone https://github.com/hharte/ecos.git
    $ cd ecos/

Configure the Environment

    $ export OPENWRT_PATH=<path_to_openwrt>
    $ export ECOS_REPOSITORY=~/src/ecos/packages/
    $ export PATH=$PATH:$OPENWRT_PATH/staging_dir/toolchain-armeb_xscale_gcc-12.3.0_musl/bin
    $ export STAGING_DIR=$OPENWRT_PATH/staging_dir/toolchain-armeb_xscale_gcc-12.3.0_musl/

Build eCos Host Tools

    $ mkdir build-host
    $ cd build-host
    $ ../configure
    $ make && sudo make install
    $ cd ..

Tools are now in: /usr/local/bin/.

Build RedBoot for the Intel IXDP425

    $ mkdir build-ROM
    $ cd build-ROM
    $ ecosconfig new ixdp425 redboot
    $ ecosconfig import $ECOS_REPOSITORY/hal/arm/xscale/ixdp425/current/misc/redboot_ROM.ecm
    $ ecosconfig tree
    $ make -j

When the build completes, redboot will be in the install/bin directory. Four files are built:

redboot.bin Binary file suitable for flashing with JTAG or programming with a device programmer.
redboot.img Redboot ELF binary, stripped of debug information. This can be downloaded by RedBoot itself.
redboot.elf Full RedBoot ELF binary, useful with gdb.
redboot.srec S-Record file useful with some device programmers.

FLASHing to the Intel IXDP425 Development Board

FLASH with JTAG using OpenOCD

It is possible to program the IXDP425 via JTAG using OpenOCD.

FLASH with a Device Programmer

The 28F128J3 16MB NOR FLASH device on the ixdp425 Development Board is socketed, so it can be programmed in an external device programmer. I used an XGecu T56 Programmer available on Amazon that comes with the required 56-pin TSOP adapter.

After loading the redboot.bin file, convert to big-endian by choosing File->Fill Block/Swap(F).

References

ixp4xx Devices on OpenWrt
Recent Linux on Intel IXP4xx Systems
About Ecos building
Building RedBoot
[OpenWrt Wiki] Cross compiling
Original eCos source code (CVS)
Original eCos source code (Mercurial)

Help Needed

The following resources are currently not available online anymore, and I would love to obtain them. If you have any of these, please let me know.

Item Details
Intel RedBoot 2.04 Source Code Original filename: redboot-intel-ixp4xx-070320.tar.gz
Redboot 2.04 pre-built binaries for IXP4XX-based platforms Original filename: Redboot-v2_04-npe_bins-070320.tar.gz
Intel® IXDP425 / IXCDP1100 Development Platform Quick Start Guide Document Number: 253177
Intel® IXDP425 / IXCDP1100 Development Platform User’s Guide Document Number: 273743
Intel® IXDP425 / IXCDP1100 Development Platform Boot-Loader Flash Conversion Guide Document Number: 253201
Intel® IXDP425 / IXCDP1100 Development Platform Schematics
Intel® IXDP425 Network Processor Development Platform Upgrade White Paper Document Number: 252779