mirror of
https://gitlab.com/qemu-project/openbios.git
synced 2024-02-13 08:34:06 +08:00
initial import of openbios--main--1.0--patch-26
git-svn-id: svn://coreboot.org/openbios/openbios-devel@1 f158a5a8-5612-0410-a976-696ce0be7e32
This commit is contained in:
131
README
Normal file
131
README
Normal file
@@ -0,0 +1,131 @@
|
||||
Welcome to OpenBIOS
|
||||
-------------------
|
||||
|
||||
OpenBIOS is a free, portable implementation of IEEE 1275-1994
|
||||
(Open Firmware). Find detailed information about OpenBIOS at
|
||||
http://www.openbios.org/
|
||||
|
||||
What is OpenBIOS?
|
||||
-----------------
|
||||
|
||||
OpenBIOS can replace your system firmware (BIOS) partly or completely. It
|
||||
can also be used as a bootloader to create an Open Firmware compatible
|
||||
interface between legacy firmware and an operating system.
|
||||
|
||||
This is achieved by a modular concept that consists of a portable Forth
|
||||
kernel and three interfaces for user interaction, device initialization
|
||||
and client (operating system) control.
|
||||
|
||||
While far not all possible applications of OpenBIOS are implemented yet,
|
||||
a lot of functionality is already there. OpenBIOS can be used to enhance
|
||||
LinuxBIOS (http://www.linuxbios.org), or be booted from any multiboot
|
||||
capable bootloader to bring Open Firmware to your machine. OpenBIOS can
|
||||
also be used when an operating system is already running. It provides
|
||||
the needed OpenFirmware functionality to MOL (MacOnLinux) to boot MacOS
|
||||
9 and X on PPC machines, as well as Linux (all supported platforms)
|
||||
|
||||
OpenBIOS build options
|
||||
---------------------
|
||||
|
||||
config/scripts/switch-arch <platform> - build for specified platform
|
||||
Look in config/example for
|
||||
platforms.
|
||||
|
||||
make - build all configured binaries
|
||||
|
||||
make run - run unix example.
|
||||
|
||||
|
||||
How OpenBIOS works
|
||||
------------------
|
||||
|
||||
The OpenBIOS forth core is split into a forth kernel written in portable
|
||||
C and a forth dictionary which operated on by the kernel.
|
||||
|
||||
When building the forth core, you get different versions of
|
||||
the forth kernel:
|
||||
|
||||
* a unix executable program
|
||||
|
||||
- to execute a forth dictionary from a file. This can be used for
|
||||
easily testing and developing OpenBIOS on a unix host.
|
||||
|
||||
- to create a dictionary file. Such a dictionary file sets up
|
||||
all of the forth language. Primitives are indexed to save relocations.
|
||||
|
||||
The default is to create a forth dictionary forth.dict from
|
||||
forth/start.fs. This file includes all of the basic forth language
|
||||
constructs from forth/bootstrap.fs and starts the interpreter.
|
||||
|
||||
To achieve this, the hosted unix version contains a basic set of
|
||||
forth words coded in C that allow creating a full dictionary.
|
||||
|
||||
* a varying number of target specific binaries. On x86 you can start
|
||||
openbios for example from GRUB or LinuxBIOS. They are all based on
|
||||
the same forth engine consisting of a dictionary scheduler, primitive
|
||||
words needed to build the forth environment, 2 stacks and a simple
|
||||
set of console functions. These binaries can not be started directly
|
||||
in the unix host environment.
|
||||
|
||||
Requirements
|
||||
------------
|
||||
* gcc
|
||||
* gnu make
|
||||
* grub or any other multiboot loader to run the multiboot
|
||||
binary "openbios.multiboot" with it's module "openbios-<platform>.dict"
|
||||
* xsltproc
|
||||
|
||||
Building & Usage
|
||||
----------------
|
||||
|
||||
* make
|
||||
|
||||
this builds "openbios.multiboot", the standalone image and "openbios-unix",
|
||||
the hosted image. Additionally it creates a forth dictionary
|
||||
file from forth/start.fs. All generated files are written to
|
||||
the absolute directory held by the variable BUILDDIR, which defaults
|
||||
to obj-[platform]. Some compile time parameters can be tweaked in
|
||||
include/config.h
|
||||
|
||||
* use "openbios-unix" to create a forth dictionary on your own:
|
||||
$ obj-x86/openbios-unix -Iforth start.fs
|
||||
creates the file forth.dict from forth source forth/start.fs.
|
||||
|
||||
* use "openbios-unix" to run a created dictionary:
|
||||
$ obj-x86/openbios-unix obj-x86/openbios-unix.dict
|
||||
This is useful for testing
|
||||
|
||||
* booting openbios
|
||||
You can boot openbios i.e. in grub. Add the following lines to
|
||||
your menu.lst:
|
||||
|
||||
title openbios
|
||||
kernel (hd0,2)/boot/openbios.multiboot
|
||||
module (hd0,2)/boot/openbios-x86.dict
|
||||
|
||||
Note: change (hd0,2) to the partition you copied the openbios image and
|
||||
openbios-x86.dict to.
|
||||
|
||||
To boot OpenBIOS from LinuxBIOS/etherboot, you can either use
|
||||
"openbios-plain.elf" or "openbios-builtin.elf":
|
||||
|
||||
- openbios-plain.elf is the pure kernel that loads the dictionary from a
|
||||
hardcoded address in flash memory (0xfffe0000)
|
||||
|
||||
- openbios-builtin.elf also includes the dictionary directly so that it
|
||||
can be easily used from etherboot or the LinuxBIOS builtin ELF
|
||||
loader without taking care of the dictionary
|
||||
|
||||
CREDITS
|
||||
-------
|
||||
OpenBIOS was developed by Stefan Reinauer, Samuel Rydh and Patrick Mauritz.
|
||||
The OpenBIOS IDE driver was written by Jens Axboe.
|
||||
For license details on this piece of software, see Documentation/COPYING.
|
||||
|
||||
|
||||
If you have patches, questions, comments, feel free to contact the OpenBIOS
|
||||
mailinglist.
|
||||
|
||||
Regards,
|
||||
the OpenBIOS team
|
||||
|
||||
Reference in New Issue
Block a user