From: "Yoshinori K. Okuji" <okuji@enbug.org>
To: The development of GRUB 2 <grub-devel@gnu.org>
Subject: Re: calling UNDI API
Date: Thu, 1 Jul 2004 13:32:42 +0200 [thread overview]
Message-ID: <200407011332.42252.okuji@enbug.org> (raw)
In-Reply-To: <87fz8ezjo9.fsf@marco.marco-g.com>
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
next prev parent reply other threads:[~2004-07-01 11:30 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-06-21 15:02 calling UNDI API lode leroy
2004-06-21 15:22 ` Tobias Wollgam
2004-06-22 3:06 ` Feng Shuo
2004-06-27 12:16 ` Marco Gerards
2004-06-28 9:25 ` Yoshinori K. Okuji
2004-06-28 16:49 ` Marco Gerards
2004-06-29 11:29 ` Marco Gerards
2004-06-29 14:59 ` chaac
2004-07-01 11:32 ` Yoshinori K. Okuji [this message]
2004-07-01 13:36 ` Marco Gerards
2004-07-01 18:44 ` Johan Rydberg
2004-07-02 1:39 ` Feng Shuo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200407011332.42252.okuji@enbug.org \
--to=okuji@enbug.org \
--cc=grub-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.