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: Possible bit-rot in hal_if.c


Robin,

The Galileo (and later Marvell) bridges were notoriously bug ridden with
the early versions having something like 30+ pages of errata.  Maybe
this is why CAS = 2 is only marked as being supported in this version.
That code hasn't been touched for quite a while.  I think U-Boot has
support for this platform as well.  Maybe you can garner something
useful from there?

--Chris

-----Original Message-----
From: ecos-discuss-owner@ecos.sourceware.org
[mailto:ecos-discuss-owner@ecos.sourceware.org] On Behalf Of Robin
Randhawa
Sent: 26 October 2006 09:17
To: ecos-discuss@sourceware.org
Subject: [ECOS] Possible bit-rot in hal_if.c

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.

Cheers,
Robin

-------------------------------------------
Greetings.

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
$ECOS_REPOSITORY/hal/mips/malta/current/misc/redboot_ROM.ecm

$ ecosconfig check

$ ecosconfig tree

$ make

I get a build failure at this point :

mipsisa32-elf-gcc -c
-I/data/software/ecos_work/mips/build/redboot_ROM/install/include
-I/data/software/ecos_work/master_tree/ecos/packages/hal/common/current
-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/sr
c/hal_if.c
/data/software/ecos_work/master_tree/ecos/packages/hal/common/current/sr
c/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/sr
c/hal_if.c: In function `flush_icache':
/data/software/ecos_work/master_tree/ecos/packages/hal/common/current/sr
c/hal_if.c:539: `HAL_ICACHE_INVALIDATE' undeclared (first use in this
function)
/data/software/ecos_work/master_tree/ecos/packages/hal/common/current/sr
c/hal_if.c:539: (Each undeclared identifier is reported only once
/data/software/ecos_work/master_tree/ecos/packages/hal/common/current/sr
c/hal_if.c:539: for each function it appears in.)
make[1]: *** [src/hal_if.o.d] Error 1
make[1]: Leaving directory
`/data/software/ecos_work/mips/build/redboot_ROM/hal/common/current'
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,
Robin


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

--
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]