[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
portability.
Okuji
- Re: calling UNDI API,
Yoshinori K. Okuji <=