From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1Es1fX-0007v0-HB for mharc-grub-devel@gnu.org; Thu, 29 Dec 2005 12:34:27 -0500 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Es1fW-0007ur-FE for grub-devel@gnu.org; Thu, 29 Dec 2005 12:34:26 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Es1fV-0007uW-8G for grub-devel@gnu.org; Thu, 29 Dec 2005 12:34:25 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Es1fV-0007uT-5G for grub-devel@gnu.org; Thu, 29 Dec 2005 12:34:25 -0500 Received: from [194.109.24.36] (helo=smtp-vbr16.xs4all.nl) by monty-python.gnu.org with esmtp (Exim 4.34) id 1Es1fs-0003Rr-IU for grub-devel@gnu.org; Thu, 29 Dec 2005 12:34:48 -0500 Received: from localhost.localdomain (mgerards.xs4all.nl [82.92.27.129]) by smtp-vbr16.xs4all.nl (8.13.3/8.13.3) with ESMTP id jBTHWmjY065212; Thu, 29 Dec 2005 18:32:52 +0100 (CET) (envelope-from mgerards@xs4all.nl) Mail-Copies-To: mgerards@xs4all.nl To: The development of GRUB 2 References: <1135872727.6254.11.camel@em2.my.own.domain> <20051229170421.GA21280@openbios.org> From: Marco Gerards Date: Thu, 29 Dec 2005 18:32:48 +0100 In-Reply-To: <20051229170421.GA21280@openbios.org> (Stefan Reinauer's message of "Thu, 29 Dec 2005 18:04:22 +0100") Message-ID: <87bqyzn70f.fsf@xs4all.nl> User-Agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: by XS4ALL Virus Scanner Cc: linuxbios@openbios.org, Svante Signell Subject: Re: GRUB vs LinuxBIOS question X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GRUB 2 List-Id: The development of GRUB 2 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Dec 2005 17:34:26 -0000 Stefan Reinauer writes: Hi, > * Svante Signell [051229 17:12]: >> I'm currently reading the mailing list archives on GRUB V2 and LinuxBIOS >> development. Can somebody please enlighten me on the interfaces between >> the two development projects. > > I've only been marginally following grub2 development, but the short > answer is: There are no interfaces at all at the moment. The somewhat > longer answer is: From the LinuxBIOS perspective, this is not a bad > thing, as LinuxBIOS tries to keep it's interfaces as small as possible. > There are only two "transitions" between LinuxBIOS and a "client": > > 1) LinuxBIOS comes with an ELF loader that can load any static self > contained ELF binary from flash and execute it. This means a single > binary containing all grub parts that are needed to boot an OS > could be packed together with LinuxBIOS and burned to flash. So > far: in theory. In that case it would be easy to create a GRUB 2 binary which can be loaded from LinuxBIOS. There are similar binaries to load GRUB 2 using PXE or Multiboot (from GRUB Legacy, for example) already. I assume it is little work to implement this. > 2) There is a mechanism to pass information from LinuxBIOS to the > outside world called the "LinuxBIOS table". This table contains > internal information about the BIOS, such as the possible CMOS > settings, the RAM map of the machine, etc (there's also E820, > PIRQ, MPTABLE and ACPI). > > NOTE: LinuxBIOS does not provide any "legacy bios interrupt callbacks", > so no client can call back into the bios to load stuff from the hard > disk. This means a client has to provide a driver for this that accesses > the hardware, not the BIOS. This is why I wrote "in theory" above. It's possible to add drivers to GRUB 2. At the moment there are no drivers there yet, but it surely is possible without too much effort. > I have been working on taking the grub1 frontend and packing it into FILO > a while ago. So you can use a grub user interface easily with LinuxBIOS > already (with a reduced function set. patches welcome) It would be nice to have a GRUB 2 payload as well. I plan to add drivers in the long term, it's required for several ports. So it fits well within the design and direction of the GRUB 2 project, IMO. >> Is anything tutorial-like written explaining the different >> functionality of the (Linux)BIOS (CPU, memory, peripheral >> initialisation, etc) and GRUB (kernel loading, transfer of control >> to kernel etc). GRUB 2 has loaders, you can find them in loaders/. For every OS a separate loader is required. I think the sourcecode is quite easy to understand, but feel free to ask any question you have regarding the code and its design. -- Marco