This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]