Go to file
Blue Swirl 05419f51b7 Bump version to 1.1
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>

git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1135 f158a5a8-5612-0410-a976-696ce0be7e32
2013-05-04 10:56:49 +00:00
Documentation Document the debugger 2009-11-15 21:19:59 +00:00
arch SPARC64: Add trivial implementation of udelay() 2013-05-03 21:45:00 +00:00
config Allow powerpc-unknown-linux-gnu- toolchain prefix 2013-04-05 10:33:03 +00:00
drivers use the proper name for the virtio-blk devices 2013-04-27 11:42:18 +00:00
forth Remove /chosen "memory" property from the default device tree. 2013-04-19 07:03:38 +00:00
fs mac-parts.c: Fix detection of wrapped HFS+ volumes. 2012-12-13 21:30:23 +00:00
include SPARC32: Move Forth dictionary location to a fixed location. 2013-04-09 18:32:53 +00:00
kernel Tidy cell types and format strings 2011-02-13 22:30:14 +00:00
libc Don't assume that pointer and cell size are identical, part 1 2010-10-25 20:48:45 +00:00
libgcc ppc: fix build with newer GCCs 2010-10-03 19:18:28 +00:00
libopenbios OFMEM: Fix bad alignments passed into the OFMEM claim words 2013-04-19 07:03:59 +00:00
packages disk-label.c: Fix opening of raw block devices 2013-04-21 08:27:21 +00:00
utils mark devbios officially obsolete. 2006-09-05 19:44:40 +00:00
.gitignore build: support disjoint build directory 2013-02-16 12:08:33 +00:00
COPYING initial import of openbios--main--1.0--patch-26 2006-04-26 15:08:19 +00:00
Makefile build: improve subdir rules 2013-03-03 09:02:29 +00:00
Makefile.target build: support disjoint build directory 2013-02-16 12:08:33 +00:00
README Remove unnecessary trailing newlines 2008-12-13 09:26:41 +00:00
VERSION Bump version to 1.1 2013-05-04 10:56:49 +00:00
build.xml Refactoring of the OpenBIOS source code, as discussed on the mailing list. The primary aim of this process is to try and arrange 2010-03-13 10:58:19 +00:00

README

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
 * OpenBIOS FCode Utils
   Download with svn co svn://openbios.org/openbios/fcode-utils
 * 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