[Top][All Lists]

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

Re: calling UNDI API

From: Yoshinori K. Okuji
Subject: Re: calling UNDI API
Date: Thu, 1 Jul 2004 13:32:42 +0200
User-agent: KMail/1.6.1

On Tuesday 29 June 2004 13:29, Marco Gerards wrote:
> What is the best way to implement network support?  We can access the
> raw interfaces using UNDI.  I think the same is possible (in such a
> way) when using Open Firmware.

If you look at the header file include/grub/net.h, you can see what I 
had in my mind. Basically, network devices should provide a generic 
interface to network protocols.

> How will we support the other cards?  By using etherboot (or whatever
> it was used in GRUB Legacy)?  What I would prefer is to have our own
> TCP/IP stack that is platform independent.

In GRUB Legacy, we use our own implementation for network protocols. The 
source code is derived from etherboot, but we have modified it to adapt 
it to the GRUB semantics. So, in principle, we only use the ethernet 
drivers in etherboot.

For network drivers, there are some candidates: Etherboot, OSKit, and 
drivers in Linux, FreeBSD, NetBSD and OpenBSD. If we want to steal 
drivers from operating systems, this is not easy, because this requires 
support for interruptions by hardware. GRUB doesn't assume that 
hardware interrupts occur during normal execution, since this makes the 
implementation very complex, due to the switch between real mode and 
protected mode on i386. So I prefer the polling approach to the 
interruption-based approach. For this, Etherboot fits gracefully.

If my understanding is correct, Etherboot is now being ported to other 
architectures, although it was only for i386 like GRUB Legacy. This 
looks very interesting to us.

BTW, do you really need TCP in GRUB? I know some people want to use TCP 
protocols for netboot, such as HTTP and FTP. But I feel this is 
overkill. If you need only UDP, it's quite easy to implement. You can 
just copy the code from GRUB Legacy with a few modifications for 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]