On Tue, 19 Apr 2005, fluke_753 wrote:
> ===> Kernels built from MYKERNEL:
> /usr/cvs/src-curent/sys/arch/evbarm/compile/obj/MYKERNEL/netbsd
> /usr/cvs/src-curent/sys/arch/evbarm/compile/obj/MYKERNEL/netbsd-epe0
> /usr/cvs/src-curent/sys/arch/evbarm/compile/obj/MYKERNEL/netbsd-wd0
> /usr/cvs/src-curent/sys/arch/evbarm/compile/obj/MYKERNEL/netbsd-sd0
> ===> build.sh started: Tue Apr 19 21:26:08 GMT 2005
> ===> build.sh ended: Tue Apr 19 21:35:33 GMT 2005
> ===> Summary of results:
> build.sh command: ./build.sh -m evbarm -T /usr/cross -u
> kernel=MYKERNEL
> build.sh started: Tue Apr 19 21:26:08 GMT 2005
> MACHINE: evbarm
> MACHINE_ARCH: arm
> TOOLDIR path: /usr/cross
> DESTDIR path: /usr/cvs/src-curent/destdir.evbarm
> RELEASEDIR path: /usr/cvs/src-curent/releasedir
> makewrapper: /usr/cross/bin/nbmake-evbarm
> Updated /usr/cross/bin/nbmake-evbarm
> Building kernel without building new tools
> Building kernel: MYKERNEL
> Build directory:
> /usr/cvs/src-curent/sys/arch/evbarm/compile/obj/MYKERNEL
> Kernels built from MYKERNEL:
> /usr/cvs/src-curent/sys/arch/evbarm/compile/obj/MYKERNEL/netbsd
>
> /usr/cvs/src-curent/sys/arch/evbarm/compile/obj/MYKERNEL/netbsd-epe0
>
> /usr/cvs/src-curent/sys/arch/evbarm/compile/obj/MYKERNEL/netbsd-wd0
>
> /usr/cvs/src-curent/sys/arch/evbarm/compile/obj/MYKERNEL/netbsd-sd0
> build.sh started: Tue Apr 19 21:26:08 GMT 2005
> build.sh ended: Tue Apr 19 21:35:33 GMT 2005
>
>
>
> Here are the questions...
>
> Which one of the produced kernels should I upload the TS7200 flash ?
> Should I gzip it first ?
netbsd-wd0 is the one setup to auto-boot to wd0 (compact flash) device
by default. The "netbsd-wd0" file is an ELF file, and while I think
RedBoot knows how to load ELF files, I can't remember off the top of my
head if I've ever tried loading the ELF version from RedBoot.
What it comes down is that netbsd expects the kernel text at 0x200000
where it just needs to be jumped into. The kernel requires no special
tags or kernel command line arguments like Linux so you use the "go"
command rather than the linux-specific "exec" command. You can start the
kernel by loading the "netbsd-wd0.bin" file from tftp at 0x200000 using
something like:
load -r -b 0x00200000 -h mytftpserver.foo.net /foo/bar/netbsd-wd0.bin
go
If your kernel is smaller than 0x160000 bytes, you can store and load the
kernel uncompressed using the RedBoot FIS. e.g.
load -r -b 0x00200000 -h mytftpserver.foo.net /foo/bar/netbsd-wd0.bin
fis delete <old_image_fis_name>
fis create -b 0x00200000 -l 0x160000 netbsd
.. and then start it up like this after each boot:
fis load netbsd
go
If your netbsd.bin is larger than 0x160000, you have to compress it and
attach a special decompressor header at the front of the image like so:
gzip -9 netbsd-wd0.bin
cat gzboot_TS7200_0x60660000.bin netbsd-wd0.bin.gz > netbsd-wd0.gz.bin
The "gzboot_TS7200_0x60660000.bin" file is located in your DESTDIR under
"/usr/mdec" if you've done a full release build. There is also a
gzboot_TS7200_0x60e6000.bin there for TS7200's with 16MB flash. Both
files are also available on the netbsd CF in /usr/mdec.
The new compressed image file "netbsd-wd0.gz.bin" must be loaded instead
of the netbsd.bin into the RedBoot FIS like so:
load -r -b 0x00200000 -h mytftpserver.foo.net /foo/bar/netbsd-wd0.gz.bin
fis delete <old_image_fis_name>
fis create -b 0x00200000 -l 0x1600000 netbsd.gz
.. the system can then be started with a single RedBoot command:
go 0x60660000
.. this executes-in-place in the FIS area decompressing the kernel to
0x200000 and automatically jumping into it afterwards.
I'd recommend you subscribe to and
as there are a lot of other NetBSD developers
much smarter than me that may also be able help you. Also, keep in mind
if you've installed NetBSD you automatically have an installed script
called "send-pr" which will bring up a form for emailing problem reports
to NetBSD should you run into something where you suspect a bug.
//Jesse Off
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ts-7000/
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|