94 lines
3.2 KiB
Text
94 lines
3.2 KiB
Text
|
|
||
|
Welcome to the OpenBIOS forth core "begin again".
|
||
|
|
||
|
Find more information about OpenBIOS at http://www.openbios.org/
|
||
|
|
||
|
This program was written by Patrick Mauritz and Stefan Reinauer in 2003
|
||
|
For license details on this piece of software, check Documentation/COPYING.
|
||
|
|
||
|
How OpenBIOS works
|
||
|
------------------
|
||
|
|
||
|
The OpenBIOS forth core is split into a forth kernel written in 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 "hosted" unix binary. This binary can be used on a unix system
|
||
|
|
||
|
- to execute a forth dictionary from a file. This can be used for
|
||
|
testing openbios code in a development environment 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
|
||
|
* grub or any other multiboot loader to run the standalone
|
||
|
binary "openbios.multiboot"
|
||
|
|
||
|
Building & Usage
|
||
|
----------------
|
||
|
|
||
|
* make
|
||
|
|
||
|
this builds "openbios.multiboot", the standalone image and "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 "unix" to create a forth dictionary on your own:
|
||
|
$ ./unix -Iforth start.fs
|
||
|
creates the file forth.dict from forth source forth/start.fs.
|
||
|
|
||
|
* use "unix" to run a created dictionary:
|
||
|
$ ./unix forth.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/openfirmware.dict
|
||
|
|
||
|
Note: change (hd0,2) to the partition you copied openbios and
|
||
|
forth.dict to.
|
||
|
|
||
|
To boot OpenBIOS from LinuxBIOS/etherboot, you can either use
|
||
|
"openbios" or "openbios.full":
|
||
|
|
||
|
- openbios is the pure kernel that loads the dictionary from a
|
||
|
hardcoded address in flash memory (0xfffe0000)
|
||
|
|
||
|
- openbios.full 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
|
||
|
|
||
|
|
||
|
Comments are welcome.
|
||
|
|
||
|
OpenBIOS team
|
||
|
|
||
|
------------------------------------------------------------------------
|
||
|
tag: README for openbios forth core
|