This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: IPX420
Hi Augusto,
which Redboot version do you plan to adapt to IXP420? I think I have
done this adaption for our IXP420 custom board some while ago for v1.94.
I had to make adaptions in plenty files. The attached "make-script"
documents those changes.
My hardware has following differences in comparison to Intel´s
IXDP425-board:
- IXP420/266
- 128MB SDRAM
- UART2 used for console
- no display
- no EEPROM
Regards,
Stefan.
#!/bin/bash
#
#
# Script to make Redboot v1.94 for My-Project
# My-Project is based on the ECOS/Redboot ixdp425-package
#
# Usage:
# - set variable <PACKAGE> to "My-Project"
# - set variable <INSTALL> - it defines where to copy the bin-image (redboot.bin)
# - set <PATH> - it defines the GnuPro-Toolchain location
# - invoke "_make_redboot"
#
set +x
#PACKAGE="original"
PACKAGE="My-Project"
INSTALL="/tftpboot"
export PATH=/opt/My-Project-cen_project/bootldr/gnupro/xscale-030422/H-i686-pc-linux-gnulibc2.2/bin:${PATH}
# build of ecosconfig does not work - so set it to "n"
BUILD_ECOSCONFIG="n"
# do not change this
BOARD="ixdp425"
###############################################################################
# do not change this - these dirs and files correspond to v1.94 to work
# with My-Project-hardware
#
# hal_arm_xscale_ixdp425.cdl -> only use the 2nd UART for redboot console
# standard is: both UARTS are used
PATCH_DIR_UART="packages/hal/arm/xscale/ixdp425/current/cdl"
PATCH_FILE_UART="hal_arm_xscale_ixdp425.cdl"
# hal_var_ints.h -> exchange Interrupt vectors of UART0 and UART1
#
PATCH_DIR_UARTa="packages/hal/arm/xscale/ixp425/current/include"
PATCH_FILE_UARTa="hal_var_ints.h"
PATCH_DIR_UARTb="packages/hal/arm/xscale/ixp425/current/src"
PATCH_FILE_UARTb="ixp425_diag.c"
# ixdp425.h -> SDRAM size is 128 MB, 4x16MX16
# undefine DISPLAY-macro and function (no 7-segment display)
PATCH_DIR_IXDP425="packages/hal/arm/xscale/ixdp425/current/include"
PATCH_FILE_IXDP425="ixdp425.h"
# hal_platform_extras.h -> SDRAM boundaries for 128MB
PATCH_FILE_EXTRAS="hal_platform_extras.h"
PATCH_FILE_SETUP="hal_platform_setup.h"
# mlt_arm_xscale_ixdp425_rom.h/.mlt -> SDRAM size 128MB
PATCH_DIR_MEM="packages/hal/arm/xscale/ixdp425/current/include/pkgconf"
PATCH_FILE_MEM1="mlt_arm_xscale_ixdp425_rom.h"
PATCH_FILE_MEM2="mlt_arm_xscale_ixdp425_rom.mlt"
# IxEthMii.c -> bugfix Intel code for MiiPhyScan
PATCH_DIR_PHY="packages/devs/eth/intel/npe/v1_4/src/ethMii"
PATCH_FILE_PHY="IxEthMii.c"
# My-Project_no_eeprom -> ecosconfig-file to switch-off EEPROM-support
# alternatively switch-on FLASH-suuport for storing NPE MAC
PATCH_FILE_EEPROM="My-Project_no_eeprom"
#
###############################################################################
echo ""
echo "------------------------------------"
echo "Building RedBoot for the ${BOARD}"
echo "Package: ${PACKAGE}"
echo "------------------------------------"
echo ""
if [[ $PACKAGE = "original" ]]; then
RBSRC="redboot-intel-xscale-040330"
fi
if [[ $PACKAGE = "My-Project" ]]; then
RBSRC="redboot-intel-xscale-My-Project"
fi
if [ ! -d ./${RBSRC} ]; then
echo "RedBoot source not installed in ${RBSRC}"
fi
cd ./${RBSRC}
export TOPDIR=`pwd`
export ECOS_REPOSITORY=${TOPDIR}/packages
export VERSION=current
echo "TOPDIR = ${TOPDIR}"
echo "ECOS_REPOSITORY = ${ECOS_REPOSITORY}"
echo "Adding npe-1.4.epk ..."
chmod +x ${ECOS_REPOSITORY}/ecosadmin.tcl
${ECOS_REPOSITORY}/ecosadmin.tcl add ../npe-1.4.epk
echo "Copying IxNpeMicrocode.c ..."
cp -f ../IxNpeMicrocode.c ./packages/devs/eth/intel/npe/v1_4/src/npeDl/
#
# Patch files for My-Project-System
#
if [[ ${PACKAGE} = "My-Project" ]]; then
echo "Copying My-Project UART Patch ${PATCH_FILE_UART} to ${PATCH_DIR_UART} ..."
cp -f ../${PATCH_FILE_UART} ./${PATCH_DIR_UART}
echo "Copying My-Project Patch ${PATCH_FILE_IXDP425} to ${PATCH_DIR_IXDP425} ..."
cp -f ../${PATCH_FILE_IXDP425} ./${PATCH_DIR_IXDP425}
echo "Copying My-Project Patch ${PATCH_FILE_EXTRAS} and ${PATCH_FILE_SETUP} to ${PATCH_DIR_IXDP425} ..."
cp -f ../${PATCH_FILE_EXTRAS} ./${PATCH_DIR_IXDP425}
cp -f ../${PATCH_FILE_SETUP} ./${PATCH_DIR_IXDP425}
echo "Copying Memory Patches ${PATCH_FILE_MEM1} and ${PATCH_FILE_MEM2} to ${PATCH_DIR_MEM} ..."
cp -f ../${PATCH_FILE_MEM1} ./${PATCH_DIR_MEM}
cp -f ../${PATCH_FILE_MEM2} ./${PATCH_DIR_MEM}
echo "Copying PHY Patch ${PATCH_FILE_PHY} to ${PATCH_DIR_PHY} ..."
cp -f ../${PATCH_FILE_PHY} ./${PATCH_DIR_PHY}
fi
if [ -d ${TOPDIR}/build ]; then
echo " Cleaning up old build..."
rm -rf ${TOPDIR}/build
fi
mkdir ${TOPDIR}/build
cd ${TOPDIR}/build
#-----------------------------------------------------------
# you only need to build ecosconfig once for your platform
# Once it is built , move it to the tool chain bin
# directory, and set BUILD_ECOSCONFIG ="n"
#
# This section builds it and sets it up for use by the
# rest of the script. One you build and move to bin
# ecoscfg can be found in the PATH, so ECOSCFG_PATH
# is set to empty
if [ ${BUILD_ECOSCONFIG} = "y" ]; then
echo ""
echo "---------------------------------"
echo "Building and setup of ecosconfig..."
echo "---------------------------------"
echo ""
if [ -d ${TOPDIR}/build/ecbuild ]; then
echo " Cleaning up old ecosconfig build..."
rm -rf ${TOPDIR}/build/ecbuild/
fi
mkdir ${TOPDIR}/build/ecbuild/
../host/configure --prefix=${TOPDIR}/build/ecbuild --with-tcl=/usr/local
exit 1
make
cp tools/configtool/standalone/common/ecosconfig .
ECOSCFG_PATH="./"
exit 1
else
ECOSCFG_PATH="../bin/"
fi
echo ""
echo "---------------------------------"
echo " Building RedBoot..."
echo "---------------------------------"
echo ""
${ECOSCFG_PATH}ecosconfig new ${BOARD} redboot
${ECOSCFG_PATH}ecosconfig import ${ECOS_REPOSITORY}/hal/arm/xscale/${BOARD}/current/misc/redboot_ROM.ecm
${ECOSCFG_PATH}ecosconfig add intel_npe
${ECOSCFG_PATH}ecosconfig add ${BOARD}_npe
if [[ ${PACKAGE} = "My-Project" ]]; then
${ECOSCFG_PATH}ecosconfig import ${TOPDIR}/../${PATCH_FILE_EEPROM}
fi
${ECOSCFG_PATH}ecosconfig tree
make
echo ""
echo "------------------------------------------------------"
echo " RedBoot Build complete"
echo " Binaries for the ${BOARD} are available at: "
echo " ${TOPDIR}/build/install/bin "
echo ""
ls ${TOPDIR}/build/install/bin -l
echo ""
echo " Copying redboot.bin to ${INSTALL} ... "
cp ${TOPDIR}/build/install/bin/redboot.bin ${INSTALL}
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss