This is the mail archive of the ecos-devel@sources.redhat.com 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]

Porting RedBoot to a 64MB GRG based board


Hi,

I have a development board based on the GRG (ADI Coyote) reference
design. The only real difference is that my board has 64MB of SDRAM
instead of the standard 32 for GRG boards. The RAM is a 2 chip setup
with 256Mbit chips instead of 128Mbit.

I have managed to recompile the RedBoot 1.94 sources using the
following sequence of commands...

cd /home/admin/redboot/redboot-intel-xscale-040330
export TOPDIR=`pwd`
export ECOS_REPOSITORY=${TOPDIR}/packages
export VERSION=current
mkdir ${TOPDIR}/build
cd ${TOPDIR}/build
../packages/ecosadmin.tcl add ../npe-1.4.epk
cp ../IxNpeMicrocode.c ${ECOS_REPOSITORY}/devs/eth/intel/npe/v1_4/src/npeDl
ecosconfig new grg redboot
ecosconfig import ${ECOS_REPOSITORY}/hal/arm/xscale/grg/${VERSION}/misc/redboot_ROM.ecm
ecosconfig remove i82559_eth_driver
ecosconfig remove devs_eth_arm_grg_i82559
ecosconfig add intel_npe
ecosconfig add grg_npe
ecosconfig tree
perl -pi.bak -e 's/xscale-elf-/arm-linux-/g' `find -name makefile`
perl -pi.bak -e 's/CFLAGS :=/CFLAGS := -D__ECOS=1 -U__linux/g' `find -name makefile`
make

I got errors as some #ifdefs are broken, so I had to edit the
IxOsServices.c file and fix the #ifdefs to make sure it uses the
__ECOS code fragment for the MutexTryLock function.

Anyway, it now builds and runs from the Flash chip on my board
perfectly, except that it only recognises the first 32MB of RAM.

I realised that the SDRAM controller would need configuring
differently so edited the files:

build/install/include/cyg/hal/grg.h:
  #define IXP425_SDRAM_CONFIG_INIT  (SDRAM_CONFIG_CAS_3 |
  SDRAM_CONFIG_2x8Mx16)
now reads:
  #define IXP425_SDRAM_CONFIG_INIT  (SDRAM_CONFIG_CAS_3 |
  SDRAM_CONFIG_2x16Mx16)

I also changed the source file in the packages directory to avoid a
"ecosconfig tree" from reverting my changes.

I then saw that there were various references to: 0x02000000 through
the source code realating to RAM size. I have changed all of these
(not all references to 0x02000000, just the ones to do with RAM size).

Now when I do a:

make clean
make

Then re-flash my board using a JTAG and boot RedBoot, it crashes:

+$T0a0f:5001790c;0d:00012b64;#81

Some GDB gibberish which I can't make sence of.

What am I doing wrong? Can anyone point out the proper way to
re-configure RedBoot to use 64MB of RAM rather than 32?

Would it be sufficient to just reconfigure the SDRAM init register and
pass exec -c"mem=64M@0x0" to the kernel?

Regards, Dan...

--

Dan Searle
Adelix Ltd
dan.searle@adelix.com web: www.adelix.com
tel: 0845 230 9590 / fax: 0845 230 9591 / support: 0845 230 9592
snail: The Old Post Office, Bristol Rd, Hambrook, Bristol BS16 1RY. UK.

Any views expressed in this email communication are those
of the individual sender, except where the sender specifically states
them to be the views of a member of Adelix Ltd.  Adelix Ltd. does not
represent, warrant or guarantee that the integrity of this communication
has been maintained nor that the communication is free of errors or
interference.


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