Netboot Mailing List (by thread)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: v0.9.0d Error in PCI image.rom generation.



Hello,

Omar Walid Llorente <omar@dit.upm.es> wrote:
> 	Hello everybody. I've just found an error in makerom/user.c in the
> netboot-0.9.0d sources.

Thanks for your bug fix. I've included it into the next release.

> 	I found it when i realized that the PCI header offset was zeroed by
> makerom/passes.c while was ok in bootrom/binaries/rom.bin. Now i'm testing
> about Device Indicators. All the roms i've seen working (intel and
> etherboot) have DEVIND= 14h while netboot has DEVIND= b4h or 34h. Now
> romcheck finds a rom space in c800 but with romsize= 4KB and without
> device/vendor identifier... Any idea? The actual romsize is 32KB.

This decrease in ROM size is due to DDIM, the Device Driver Initialization
Model. DDIM means that the BIOS copies the ROM contents into RAM and then
calls the ROM initialization routine. This routine then copies everything
into extended memory. The only parts which have to remain are those to copy
the extended memory copy back into low memory lateron, and those parts are
quite small. Therefore, the ROM initialization routine tells the BIOS that
only the first 4kB of the bootrom are necessary to be kept, and the BIOS
shrinks the RAM area, where the bootrom contents is in, to 4kB, thus allowing
other option roms to be mapped into that freed space.

Regarding the device indicator value, it has the following meaning in the
netboot bootrom:

Bit 7 = 1  -->  ROM supports DDIM. This bit doesn't have to be set with the
                Intel ee100-bootrom (which can be found in the Intel PXE PDK)
                because the ee100 is a PCI card and the Intel bootrom is
                designed to be copied into a flash rom directly on the card.
                With this configuration, DDIM will always be enabled by the
                BIOS no matter how this bit of the device indicator is set.
                However, the netboot bootrom should also be able to run in
                a FlashCard (which is not located on the network card itself)
                and with cards different than PCI. In these cases, some BIOSes
                also allow using DDIM if this bit is set.

Bit 6 = 0  -->  ROM may not be shadowed in RAM. There is no point in shadowing
                the netboot bootrom since it copies itself into RAM anyway
                while getting decompressed. However, I don't know if this bit
                has to be set together with bit 7. I assume that bit 7 takes
                precedence when running with a DDIM aware BIOS.

Bit 5 = 1  -->  ROM is read cacheable

Bit 4 = 1  -->  ROM is only required if selected as a boot device

Bit 3 = 0  -->  reserved

Bit 2 = 1  -->  this is an IPL (Initial Program Load) device, which means, it's
                a bootrom, rather then a BIOS extension like a VGA ROM.

Bit 1 = 0  -->  not an input device

Bit 0 = 0  -->  not an output device

Regarding the device/vendor ID: PCI devices do not have a PnP device/vendor
identifier, so makerom doesn't set one for a PCI bootrom. Note that romcheck
only prints the device/vendor ID in the PnP header, not that one in the PCI
header. I have to extend romcheck sometime to also inspect the PCI header.

Unfortunately, this whole DDIM and BBS support of the netboot bootrom is
still highly untested. I've bought myself a brand-new mainboard for testing,
but after installing it I found that the included Award BIOS does not support
DDIM or BBS... argh :-(  The only way to test it using this new board is
to install the netboot bootrom directly onto a PCI network card, but I don't
want to repeatedly burn EPROM's, so I'm still looking for a PCI network card
which supports Flash EPROM's (it also has to support 10MB BNC ethernet).

gero.

-- 
We all worry about the population explosion -- but we don't worry about it at
the right time.			- Arthur Hoppe
--
Gero Kuhlmann, Hannover     0511/6497525 (Voice)        gero@gkminix.han.de
===========================================================================
This Mail was sent to netboot mailing list by:
Gero Kuhlmann <gero@gkminix.han.de>
To get help about this list, send a mail with 'help' as the only string in
it's body to majordomo@baghira.han.de. If you have problems with this list,
send a mail to netboot-owner@baghira.han.de.



For requests or suggestions regarding this mailing list archive please write to netboot@gkminix.han.de.