summaryrefslogtreecommitdiffstats
path: root/qemu/roms/openbios/kernel/README
blob: c84879b83e18efcebfbb51b9704f91fa5ddd9965 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
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