Subject: question about netbooting alpha
To: port-alpha list NetBSD <port-alpha@NetBSD.ORG>
From: Wilko Bulte <wilko@yedi.iaf.nl>
List: port-alpha
Date: 01/23/1998 20:55:53
Hello

I'm having some trouble to get a Jensen to netboot. Getting it to netboot
is a by multiple people recommended way to test attempts for making NetBSD
run on Jensen.

When I tried to netboot NetBSD-1.2 last year with the DE422 I got:

	AUDIT_BOOT_STARTS ... 
	AUDIT_BOOT_REQ 
	AUDIT_BSERVER_FOUND IP 192.168.200.1
	AUDIT_BSERVER_FOUND ENET 00-00-F8-20-7F-45
	AUDIT_LOAD_BEGINS

	AUDIT_LOAD_DONE

	NetBSD/Alpha boot, Revision $NetBSD: version,v 1.5 1996/05/09 
	23:54:18 cgd
	Exp $
	(cgd@bunnahabhain.pdl.cs.cmu.edu, Fri Sep 13 16:10:36 EDT 1996)

	VMS PAL revision: 0x100010530
	OSF PAL rev: 0x20123
	Switch to OSF PAL code succeeded.

	boot_dev = "BOOTP 1 5 0 0 0 2 JENS-IO"
	boot_file = ""
	boot_flags = "I"
	boot_console = "0"
	Boot: /netbsd I
	1420032+137984+118752
	calling fffffc0000230000 with 1e7, 80, 4, 200266c0, 0
	panic: Support for DEC 2000/300 ("Jensen") system type not in kernel.
	halted.

When I try NetBSD-1.3 I get:

        Loading netbsd...
        boot: boot device name does not contain ethernet address.
        boot: using hard-coded ethernet address.
        boot: ethernet address: 08:00:2b:36:86:0c
        prom_init: open failed: 7

        Boot device name was: "BOOTP 1 5 0 0 0 2 JENS-IO"

        Your firmware may be too old to network-boot NetBSD/Alpha,
        or you might have to hard-code an ethernet address into
        your network boot block with setnetbootinfo(8).

For comparison's sake I tried a netboot of my NoName:

	Loading netbsd...
(my debug) prom_getenv_booted dev --> 'BOOTP 0 11 0 0 0 3 0 00-00-F8-20-7F-45 1'
        boot: ethernet address: 00:00:f8:20:7f:45
        boot: client addr: 192.168.200.9

It's easy to see the the difference in the value returned by prom_getenv()
for the booted device. if_prom.c contains code that does a prom_open()
on the returned device name. In the Jensen case this fails miserably.

Using setnetbootinfo you can compensate for the lack of the Ethernet address
as in the Jensen case. But you cannot compensate for the other differences
of the devname returned by prom_getenv(). 

I wonder if it would be feasible to add functionality to setnetbootinfo
so that you can hardcode the right values for the device name fed to 
prom_open(). My problem is that I don't know what the different fields
mean (except from the obvious BOOTP and Ethernet address field). The
different number of fields is also puzzling. Is there any doc on this?

Hardcoding things like this using setnetbootinfo is unclean, but it might
be the only way. The problem is that any SRM later than V1.8 on Jensen
has broken BOOTP support :-( What I currently don't understand why
NetBSD-1.2 had less problems (need to get the 1.2 source back online)

Appreciate comments on this.

Wilko
_     ______________________________________________________________________
 |   / o / /  _  Bulte email: wilko @ yedi.iaf.nl http://www.tcja.nl/~wilko
 |/|/ / / /( (_) Arnhem, The Netherlands - Do, or do not. There is no 'try'
---------------  Support your local daemons: run [Free,Net,Open]BSD Unix  --