Subject: Re: diskless booting
To: Martin Renters <>
From: Steven Reiz <>
List: current-users
Date: 05/06/1994 18:05:01
>>>>> "Martin" == Martin Renters <> writes:

Martin> I wrote the FreeBSD netboot program.  I don't think the NetBSD
Martin> folks ever did anything about running NetBSD diskless.

Well, they did, there has been a pretty recent and extensive discussion
about in-kernel support for diskless booting, apparently to help
porting NetBSD to the sun3 without having to write a disk driver first.
The person who did all this work (Adam Glass?), used the sun bootrom,
which has support for diskless booting.

Martin> think /usr/src/sys/arch/i386/netboot has kept up to date with
Martin> other development (but then again, I haven't run NetBSD for a
Martin> while, so I don't really know what the status of it is).  I
Martin> don't even know if it can cope with loading kernels into the
Martin> above 1MB range.


>> The second loader I tried is the one from FreeBSD, which passes the
>> rarp stage without any problems, but after Loading
>> /tftpboot/cfg.  it gives Executable too large.
>> Unable to load config file.

Martin> The FreeBSD netboot will only work with FreeBSD at the moment.
Martin> This is because NetBSD has defined the nfs_diskless structure
Martin> to be larger than that of FreeBSD and the netboot program
Martin> expects the FreeBSD sized version.  I had intended to make
Martin> changes to support NetBSD as well, but the NetBSD core team
Martin> was planning their own implementation so I never bothered.

Well, I got past this stage by recompiling both and
diskless_cfg on NetBSD, the FreeBSD loader succeeds loading the
kernel (text and data segments!), then the machine reboots, probably
because the kernel is called at the wrong address.
I would very much like to use your loader (it looks very nice :),
could you give me some directions on how to make it work with NetBSD?
I've tried setting RELOCADDR to 0x100000 in the Makefile, but netboot didn't
compile with that value, complaining that some assembler instructions
were no longer valid.