All of lore.kernel.org
 help / color / mirror / Atom feed
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



  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.