From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nathan J Ickes To: ecos-discuss@sources.redhat.com Subject: [ECOS] SA11x0 platform port problems Date: Mon, 26 Feb 2001 09:10:00 -0000 Message-id: <200102261710.MAA01323@nerd-xing.mit.edu> X-SW-Source: 2001-02/msg00384.html 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