From: MX%"[email-masked]" 14-JUL-2000 23:34:54.13
To: MX%"[email-masked]"
Cc: MX%"[email-masked]"

From: [email-masked]
Date: Fri, 14 Jul 00 22:43:19 +0200
To: [email-masked]
CC: [email-masked]
Subject: Etherboot/Netboot introductory info
Sender: [email-masked]
Reply-To: [email-masked]

Hello,
I wrote some introductory info about Netboot and Etherboot.

Of course, I am not sure if it is completely correct, also
there are few questions in it, and maybe some info I did not
put here is important enough to be required in such an info.

So, please help me make it better.

Jerzy Tarasiuk
PS: one of my purposes was to have the info for me, to know
    what to do with these programs, what can I expect, etc.
----------------------------------------------------------------
1. Making bootrom.

Etherboot requires a driver - when you have the Etherboot
driver for your card, just 'cd src' and use 'make' to make
the bootrom images (will be in src/bin*/ subdirectories);
otherwise you need write or get suitable driver:
- written in C, to be compiled on Linux
- has one public function: probe, which returns a pointer
  to a nic structure, describing other functions and NIC
- has the following functions passed in the nic structure:
  - reset ( nic_struct_pointer )
  - disable ( nic_struct_pointer )
  - send ( nic_struct_pointer , byte eth_addr[6] , p_type ,
           data_size , &data )
  - poll ( nic_struct_pointer ) - this returns 0 if nothing
      received, 1 if received ( nic->packet gets data from
      the packet, nic->packetlen gets length of the data )
more detailed info how to write an Etherboot driver is <a href=
"http://etherboot.sourceforge.net/doc/html/README-9.html#driver"
>here</a>;
and there are drivers for many cards <a href=
"http://etherboot.sourceforge.net/doc/html/README-1.html#ss1.1"
>(here is list)</a>.

Netboot driver and related issues:
- uses packet driver (from netboot/bootrom/netdrvr/, drivers
  3c501, 3c503, 3c509, arcether, dc21x4, e100bpkt, ne1000, ne2000,
  ne2100, smc_wd  are distributed with netboot;
- has relatively large 'kernel', e.g. bootrom code length w/ 3c503
  driver is 0x3172 bytes (driver size ~= 0x1512) for minimal one,
  other kernels result in larger image - almost 16kbytes;
- a 'makerom' program which makes rom image asks for:
  - kernel (1:normal, 2:minimal, 3:8086; '1'-'3' ~= 112 bytes)
  - look for boot drives (y/n; size does not depend on answer)
  - driver (these from the netdrvr directory - can put own ones
    there, or 0 to be asked for full path of the driver to use)
  - command line arguments for the driver
  - do you want to use ANSI display driver (yes = almost 1kb more)
  - do you want to use acket driver debugger (almost 1kb, too)
  - do you want to specify an additional program, if 'yes' then
    - full path name of the program
    - command line arguments for the program
    - and the question about additional program displayed again
    (an empty program takes 5 bytes; the program is told to be
     invoked before driver, it can be DOS .com or .exe file)
  - finally, output file format (always floppy image is made)
  and writes files image.flo and image.rom; the first has 200-byte
  (decimal 200!) more than rom size, second is 0-filled to 2^N,
  and last byte in the image is adjusted to get proper checksum
  (it would be better to use FF fill (eprom programming time)).

2. Making boot images.

I believe both share the same boot image format - is it true?

Both have utils to make the boot image (called mknbi*), and
these are different (in spite of their common origin):
- Netboot has utils to make DOS or Linux images, and Menu image
  (written in some Pascal-like language); do I guess correctly
  that it allows to select what boot is to be done?
- Etherboot can make images for linux, freedos (loading kernel
  without the image and saving memory this way), dos, and rom -
  this last allows to load bootrom image from boot image, for
  testing purposes; I did not see info about menu there.

[seems need write more on the topic - later]

3. Where can get them from and what version?

Etherboot:	http://etherboot.sourceforge.net/
		version 4.6.3 of 08 Jul 2000
Netboot:	http://www.han.de/~gero/netboot.html
		version 0.8.1 of 07 Jun 1998
		version 0.9.0e of 29 Jun 2000 ?

(the 'version' is the last known when I was writing it)
----------------------------------------------------------------
===========================================================================
This Mail was sent to netboot mailing list by:
[email-masked]
To get help about this list, send a mail with 'help' as the only string in
it's body to [email-masked]. If you have problems with this list,
send a mail to [email-masked].