Split off from Etherboot as mknbi-1.1-0 on 2001-02-18

+ Change Z5 unpack formats to a5 because Z introduced on in Perl 5.005.

+ Set dl to drvid just before calling boot block, in case some boot
blocks expect this.

+ Updated comments in first32.c to reflect Etherboot-5.0 memory map.

Released as mknbi-1.1-1 (development)

Released as mknbi-1.2-0 (production)

+ A debugging statement left behind in disnbi.pl, tsk.

+ Support setup.S header version 0x0202 where parameter string pointer
is 32-bit pointer.

+ Put mknbi version into vendor string so that it will be in image.

+ Derive version number of mknbi.pl and first32.c from VERSION in Makefile.

+ Replace 0x9000 by $relocseg, and add support for placement of Linux
segments at 0x90000 and 0x80000 upwards.

+ Makefile now makes 2 more versions of first32{,pm,elf}.linux for
placement at 0x92200 and 0x82200.

Released as mknbi-1.2-1 (production)

+ Vendor magic string changed due to addition of version number, this
caused the self consistency check to fail in first-*dos.

+ Use --oformat binary to cater for newest ld's.

+ Moved setup segment of mknbi-fdos to 0x93000. 0x97000 is used by
Etherboot now.

Released as mknbi-1.2-2 (production)

+ Added the --rdbase option to mknbi-linux, for specifying the memory
location of the ramdisk.

+ Added some tips by Phil Davey on creating bootable MSDOS images.

+ Henk van de Kamer pointed out that 2.88 MB floppies actually have 80
tracks and 36 sectors instead of 160/18. It doesn't matter for network
booting, but I changed it to reduce confusion.

+ Merged in changes by Peter Lister to support --rootmode=rw|ro.

+ Round down top of memory as returned by memory sizing routine to next
lower 4kB boundary to make sure that ramdisk will be aligned properly.

+ Implement missing functionality per spec: appending additional kernel
options from the vendor selection. RFC1533_VENDOR_SEL option holds value
of tag that holds the options string. If the 7th argument exists, append
it to kernel options after the global options, but before keyword=value
substitutions.

Released as mknbi-1.2-3 (production)

+ Hyun-Joon Cha discovered a trivial bug in 1.2-3.  The kernel
parameters are inserted twice, which may lead to overflow of the
parameter space.

+ A new (s)printf which does not limit the length of the output is now
used.

Released as mknbi-1.2-4 (production)

+ Renamed do_printf to vsprintf because that's the standard function it
has the same signature as.

+ Moved include of linux-asm-string.h into string.h in anticipation of
using string.h for other standalone binaries. Added signatures for more
string functions. Introduced stddef.h which contains minimal definitions
to port hosted programs. Current target: lua.

+ Daniel Wagner sent in patches to the Makefile so that distinct
intermediate files are used for the various first* images, otherwise
there will be problems with parallel makes (-j).

+ Implemented --noharddisk option to disable hard disk access. No, make
that --disableharddisk. In Perl Getopt --noharddisk is automatically the
inverse of --harddisk.

+ first-linux.S had the right parenthesis in the wrong place for the
initialisation of vmagic.

+ Print warning if zImage kernels are large enough to extend into
Etherboot area.

Released as mknbi-1.2-5 (production)

+ Implement --rdbase for mknbi-fdos and mknbi-dos to specify starting
address of ramdisk (floppy image).

+ Make first.*dos depend on Makefile so that the version signature gets
updated when the version is updated.

+ Print some friendly advice if --ip is not specified and there is no
ramdisk argument (i.e. probably needs NFSroot).

+ Shuffle segments to make more space for parameters and first32. This
version and future versions may not work with Etherboot images that have
been compiled with BOOTP_DATA_AT_0x93Cxx. (There is some reprieve due to
first32.c not using all 6kB of the allocated room yet, but that space
may be used some day.)

+ Implement interception and decoding of the mem= kernel parameter to
use as top of memory for the purpose of relocating the ramdisk.

Released as mknbi-1.2-6 (production)

+ Add E820 BIOS memory sizing routines from Etherboot written by Eric
Biederman.

+ If setup version is 0x203 or later, limit the top of memory using the
greater of the setup variable ramdisk_max or 896MB. If the user
overrides it, then it's their responsibility.

Released as mknbi-1.2-7 (production)
