[ECOS] Possible bit-rot in hal_if.c

Robin Randhawa robin.randhawa@gmail.com
Thu Oct 26 08:16:00 GMT 2006

Greetings again.

In addition to the build failure mentioned in my previous mail, I find
that redboot fails to detect the SDRAM size correctly on this platform.

I am using a single 64MB SDRAM Module with a CAS Latency of 2 and
redboot always seems to detect only 32MB. Shouldn't redboot be probing
for the maximum amount of memory while setting up the SDRAM Controller
for things like CAS to RAS delays, refresh rates etc ?

I'm trying to figure out the Galileo GT64120 system controller
initialisation code for the malta and I find that for some reason SDRAM
modules having CAS Latencies of anything other than 2 are unsupported.
The system controller manual mentions that values of 2 and 3 should be
fine. Any reason why this was done ?

I've used multiple SDRAM Modules which I've verified as usable under
yamon on this board so that rules out flaky SDRAM.

I'm wondering whether I am getting the build failure because a platform
of some, er, vintage, like the 4Kc on the malta isn't a part of some
automated build regression and is forgotten in the mists of time ?

Any help would be appreciated.



I was trying to build a redboot_ROM image for a MIPS 4Kc processor on a
malta platform using a latest checkout of anoncvs. I've hit a build
failure which I'll describe here.

I'm using the recommended tools as follows :

$ ecosconfig new malta_mips32_4kc redboot

$ ecosconfig import

$ ecosconfig check

$ ecosconfig tree

$ make

I get a build failure at this point :

mipsisa32-elf-gcc -c
-I/data/software/ecos_work/master_tree/ecos/packages/hal/common/current/src -I/data/software/ecos_work/master_tree/ecos/packages/hal/common/current/tests -I. -I/data/software/ecos_work/master_tree/ecos/packages/hal/common/current/src/ -finline-limit=7000 -mips32 -EL -msoft-float -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef  -g -O2 -ffunction-sections -fdata-sections  -fno-exceptions   -G0 -Wp,-MD,src/hal_if.tmp -o src/hal_common_hal_if.o /data/software/ecos_work/master_tree/ecos/packages/hal/common/current/src/hal_if.c
/data/software/ecos_work/master_tree/ecos/packages/hal/common/current/src/hal_if.c:539:27: macro "HAL_ICACHE_INVALIDATE" requires 2 arguments, but only 1 given
/data/software/ecos_work/master_tree/ecos/packages/hal/common/current/src/hal_if.c: In function `flush_icache':
/data/software/ecos_work/master_tree/ecos/packages/hal/common/current/src/hal_if.c:539: `HAL_ICACHE_INVALIDATE' undeclared (first use in this function)
/data/software/ecos_work/master_tree/ecos/packages/hal/common/current/src/hal_if.c:539: (Each undeclared identifier is reported only once
/data/software/ecos_work/master_tree/ecos/packages/hal/common/current/src/hal_if.c:539: for each function it appears in.)
make[1]: *** [src/hal_if.o.d] Error 1
make[1]: Leaving directory
make: *** [build] Error 2

The HAL_ICACHE_INVALIDATE macro is being called without arguments. I
would imagine it should be called as follows :

HAL_ICACHE_INVALIDATE ( __p, __nbytes );

Could this be corroborated please ?

Cheers and thanks,

Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

More information about the Ecos-discuss mailing list