Subject: Re: NetBSD 3.0 kernel for 16MB TS-7200
To: Ryan Cresawn <cresawn@chass.utoronto.ca>
From: Ken Hornstein <kenh@cmf.nrl.navy.mil>
List: port-arm
Date: 01/13/2006 23:59:35
>Of course, my assumption that I will need a different kernel for the
>16MB TS-7200 than is needed for the 8MB version may be outdated.
>Please correct me if I'm wrong.

I suspect, judging from the name of the kernel, you need to have a
custom kernel built (actually, probably a custom bootloader), but
someone with more knowledge will probably chime up.

>Also, I'm willing to attempt a
>cross-compile of a kernel for the 16MB TS-7200 if I had some
>instructions on how to go about it.  I have compiled custom kernels
>for i386 and sparc64 but never in a cross-compile environment.  I have
>never compiled an evbarm kernel.

I had never tried cross-compiling anything for NetBSD, but I was surprised
how easy it was.

In the source tree, look at BUILDING, and tools/compat/README (if you're
cross-compiling on a non-NetBSD platform).

For me, building a new kernel for the evbarm platform was as easy as:

% ./build.sh -u -U -m evbarm kernel=TS7200

However, that's not all you need.  I believe you need a special gzboot
image that's designed to work at a different address.  It looks like to
me that is controlled in sys/arch/evbarm/stand/gzboot/*.

If you look at sys/arch/evbarm/stand/gzboot/TS7200_flash_0x60660000/Makefile,
you will see the following line:

RELOC=0x60660000

That is also mentioned in the ldscript in a few places.  I bet if you change
those instances to 0x60e60000, you will have a gzboot that will work at the
correct address.  Note that you need to concatenate this in front of your
kernel; if you look at distribution tools, all they do is "cat" the gzboot
binary and kernel together.

I admit that I am not sure if this is the correct direction to take, but
this should at least get you going in terms of setting up cross-compiling.
Good luck!

--Ken