Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Unable to boot NetBSD on Linksys NSLU2 (armbe / armv5tel)

2015-03-28 0:49 GMT+02:00 Eddy Petrișor <eddy.petrisor+netbsd.org%gmail.com@localhost>:
> In other news, I will try to find when things went south for trunk via
> git bisect, but
> not being able to automate the boot from DHCP slows things considerably.
> I looked over APEX to use as a second stage bootloader[1] configured
> to boot over
> tftp the netbsd image. Unfortunately 1) APEX does not support IP configuration
> via BOOTP or DHCP, but only RARP, (so that means for me no boot parameters or
> just static configuration), and, after my first attempts, 2) after
> loading the apex.bin
> image in RAM and running it, the display seems to be broken[2].
> [2] I suspect is only an endianness display issue (core is running LE,
> but peripherals
> are BE) since typing the same thing over and over results in some
> consistent output
> and there is no endless garbage displayed, a reset or something of
> that sort, so the
> code seems to be sanely replying to the input.

Actually, the problem was that the apex binary loaded in memory was
little endian due an inappropriate toolchain I used.

What looked like a display issue was actually how RedBoot behaved when
inexisting or reserved memory was accessed. I realized this while
trying to do memory dumps of the existing data in flash.

After choosing a big endian tool and rebuilding apex, running it
resulted in this output on the serial console:

Now that Apex runs fine, I think I can automate the netbsd testing and
link to git bisect, after I write an appropriate apex.bin in flash.

P.S.: If static IP configuration doesn't work as expected, I have
thought of a way to be able to automate tftp netbsd testing:
Since RedBoot already supports everything via console commands
(kbd_proc and cmd_proc functions in RedBoot) and since cmd_proc relies
on kbd_proc to place the input in a static buffer (ch_buf[256]) I
could inject the necessary redboot commands from a bastardized apex
(or a new binary) into the ch_buf buffer then call RedBoot's cmd_proc
efectively simulating a user interaction at the RedBoot prompt.

Home | Main Index | Thread Index | Old Index