This is the mail archive of the ecos-discuss@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]

SA11x0 platform port problems


I'm doing platform ports for two custom boards, one based on the
SA1110 and one on the SA1100. Both are similar to the Assabet board,
with the notable exception that they use SRAM (1MB) instead of
Assabet's SDRAM. I'm having the same problem with RedBoot on both
boards: on boot, both boards print the following:

+
RedBoo

and then apparently die. Coincidentally (or not), that's a total of
eight characters (two for the '\n', and not counting '+', which isn't
part of the printf() call), exactly the length of the hardware
transmit FIFO in the SA11x0. This makes me suspect I have an interrupt
problem, except that RedBoot runs fine on my Assabet board, and I
don't see what's different. It wouldn't surprise me if there was
another hardcoded reference to the DRAM bank somewhere in there, but I
haven't found anything. Anybody else seen this sort of problem?

Where does that '+' character come from? I notice that the Assabet
board also prints a character before the "\nRedBoot..." string, but on
that board, the character is non-ASCII. Is this a garbage character
that's due to the way the serial port is initialized, or is it
intentional?

Also, I noticed that the ARM vectors.S appears to miscalculate the
reset vector: the first eight instructions of the _platform_setup1
macro are skipped. The easy solution is of course to add eight nop
instructions to the start of the macro, and I notice that the Brutus
platform port does exactly this. The nops are missing from the Assabet
port, though, and this makes the board very flaky about booting up. Is
this miscalculation a feature (if so, for what purpose?), or a bug?

-- Nathan Ickes


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