[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Does grub crash UNDI service?
From: |
Tobias Wollgam |
Subject: |
Re: Does grub crash UNDI service? |
Date: |
Fri, 19 Mar 2004 13:25:44 +0100 |
User-agent: |
KMail/1.6 |
> I’m working on the UNDI driver of the GRUB diskless patch. The driver
> (from etherboot-5.3.5)
why not 5.3.6?
> now works fine before I do any I/O operations.
> That is, the diskless GRUB can do DHCP proper, but dies on
> downloading kernel. It even dies on loading kernel from local disk
> (the disk gets busy and GRUB doesn't respond any more). Two points
> are suspicious: 1. UNDI is resident in the high end of the lower
> memory and
> modifies the BIOS FBMS (at 40:13h) to avoid being crashed by the OS
> (i.e. GRUB) to load. After loaded, the Etherboot UNDI driver will
> release some unused UNDI data, allocate new space to install UNDI API
> and modify the FBMS to the new value. ---- I don't know where the
> GRUB always examines FBMS before it tries to write on the high end of
> the lower memory. If not, GRUB may have crashed the UNDI data before
> it call the driver again :(
> 2. UNDI uses interrupt, so the UNDI driver set a
> 'trivial_irq_handler' after it is initialized. That seems to work
> fine at start, but I don't know whether it conflicts with grub I/O
> mechanic after grub get control. (The driver uses only one irq
> specified by UNDI ROM, but do not uninstall it until it is disabled)
Michal Brown, the author of the etherboot undi driver, mentioned the
following:
> Incidentally, Etherboot C code assumes that interrupts are disabled at
all
> times and only get re-enabled when a real-mode call is made. If this
> assumption isn't valid inside grub, then all sorts of interesting
things
> could happen if an interrupt occurs between the two lines
>
> irq_vector->segment = handler->segment;
> irq_vector->offset = handler->offset;
>
>in install_irq_handler().
HTH
--
Tobias Wollgam
Softwaredevelopment
Competence Center System Management
Business Unit Information
_________________________________________________
MATERNA GmbH Information & Communications
Vosskuhle 37 * 44141 Dortmund
http://www.materna.de