Redboot development (CM-i.MX27)

Aus BECOM Systems Support
Zur Navigation springen Zur Suche springen

Redboot is used as the boot loader on the CM-i.MX27 core module. The boot loader is based on Freescale's release 200840. If you have the need for customizing Redboot, we summarized important steps here.


Get the Redboot sources

Get the source code from our GIT repository:

git clone git://git.becom-group.com/git/redboot_mx27.git

This repository contains everything you need to build Redboot:

  • Source code: /ecos_20050912
  • Ecos tools: /ecostools/tools
  • Tool chain for ARM: /ecostools/gnutools/arm-elf


Build Redboot

For your convenience, we supply two scripts for building. Initially, source the script set-paths-for-building:

harald@WS-HP4600-35:~/imx/27/redboot$ . ./set-paths-for-building
harald@WS-HP4600-35:~/imx/27/redboot$

which puts the Ecos tools and the tool chain in your $PATH.

Then change into the build/ directory and execute build-redboot.sh. This script deletes the old build and re-builds Redboot.

harald@WS-HP4600-35:~/imx/27/redboot$ cd build/
harald@WS-HP4600-35:~/imx/27/redboot/build$ ./build_redboot.sh 
U CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT, new inferred value 0xA0008000
U CYGSEM_HAL_ROM_MONITOR, new inferred value 1
U CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK, new inferred value 0
U CYGHWR_DEVS_FLASH_INTEL_28F128P30, new inferred value 1
U CYGSEM_IO_FLASH_VERIFY_PROGRAM, new inferred value 0
U CYGSEM_IO_FLASH_READ_INDIRECT, new inferred value 1
make -r -C hal/arm/arch/current headers
make[1]: Entering directory `/home/harald/imx/27/redboot/build/hal/arm/arch/current'
[...]
make[1]: Leaving directory `/home/harald/imx/27/redboot/build/redboot/current'
make -r -C hal/arm/mx27/bluetechnix/current /home/harald/imx/27/redboot/build/install/bin/redboot.bin
make[1]: Entering directory `/home/harald/imx/27/redboot/build/hal/arm/mx27/bluetechnix/current'
arm-none-eabi-objcopy --strip-debug /home/harald/imx/27/redboot/build/install/bin/redboot.elf /home/harald/imx/27/redboot/build/install/bin/redboot.img
arm-none-eabi-objcopy -O srec /home/harald/imx/27/redboot/build/install/bin/redboot.elf /home/harald/imx/27/redboot/build/install/bin/redboot.srec
arm-none-eabi-objcopy -O binary /home/harald/imx/27/redboot/build/install/bin/redboot.elf /home/harald/imx/27/redboot/build/install/bin/redboot.bin
make[1]: Leaving directory `/home/harald/imx/27/redboot/build/hal/arm/mx27/bluetechnix/current'
build finished
harald@WS-HP4600-35:~/imx/27/redboot/build$ 

The ready image is stored in /build/install/bin/redboot.bin. It is automatically copied to /tftpboot.


Redboot configuration

The home for CM-i.MX27 specific configuration is /ecos_20050912/packages/hal/arm/mx27/bluetechnix/current.

  • Package configuration: misc/redboot_ROMRAM.ecm
  • Code defines etc.: include/*
  • Specific source code: src/*

Here are some locations of device drivers:

  • Flash driver: /ecos_20050912/packages/devs/flash/arm/mxc/current and /ecos_20050912/packages/devs/flash/intel/28fxxx/current
  • FEC Ethernet driver: /ecos_20050912/packages/devs/eth/fec/current


Further documentation

We have summarized a short reference for Redboot.

The GIT repository also contains the Redboot documentation as it is provided by Freescale: /redboot_mx27pdk/doc/redboot_mx27pdk.pdf

Official website: [1]