OpenBIOS: Difference between revisions

From OpenBIOS
Jump to navigation Jump to search
m (add /trunk to paths)
No edit summary
 
(14 intermediate revisions by 2 users not shown)
Line 3: Line 3:
Welcome to the OpenBIOS download page. Here you'll find releases of OpenBIOS components.
Welcome to the OpenBIOS download page. Here you'll find releases of OpenBIOS components.


OpenBIOS v1.0 has been released. See the [http://tracker.coreboot.org/trac/openbios OpenBIOS issue tracker] for milestones, tasks and open bugs.
After 4 years of hard work, OpenBIOS v1.1 has been released. The new features include:
  * Internal memory API (OFMEM) implementation
  * Forth Source Debugger
  * 64-bit 1275 6d5 implementation
  * Forth Local Variables
  * Internal libopenbios code reorganisation
 
See the [https://github.com/openbios/openbios/issues OpenBIOS issue tracker] for milestones, tasks and open bugs.


= OpenBIOS =
= OpenBIOS =
Line 9: Line 16:
Download the latest release of OpenBIOS including the Forth kernel and all of the IEEE 1275-1994 compliant Forth code for user interface, client interface and device interface.
Download the latest release of OpenBIOS including the Forth kernel and all of the IEEE 1275-1994 compliant Forth code for user interface, client interface and device interface.


Latest release version is: [http://tracker.coreboot.org/trac/openbios/changeset/463/openbios-devel?old_path=%2F&old=463&format=zip OpenBIOS 1.0] (2009-03-01)
Latest release version is: [https://github.com/openbios/openbios/archive/v1.1.zip OpenBIOS 1.1] (2013-05-04)


'''NOTE:''' The FCODE utilities are no longer part of the main OpenBIOS distribution. Have a look at the [[FCODE suite]] if you are looking for toke and detok.
'''NOTE:''' The FCODE utilities are no longer part of the main OpenBIOS distribution. Have a look at the [[FCODE suite]] if you are looking for toke and detok.
Line 15: Line 22:
= Status and use cases =
= Status and use cases =


OpenBIOS can be used directly as a boot ROM for [http://bellard.org/qemu QEMU] system emulators for PPC, PPC64 and Sparc32. OpenBIOS/Sparc64 also exists but does not work very well yet. OpenBIOS/Sparc32 can boot Linux, NetBSD and OpenBSD. There have been attempts to get Solaris boot but so far this has not been successful. OpenBIOS/PPC can boot at least Linux. OpenBIOS/Sparc64 can load a kernel but it hangs or crashes early.
OpenBIOS can be used directly as a boot ROM for [http://qemu.org/ QEMU] system emulators for PPC, PPC64, Sparc32 and Sparc64.
 
OpenBIOS/SPARC32 is currently able to boot the following OS/kernels:
  * Linux
  * NetBSD
  * OpenBSD
  * Solaris
OpenBIOS/SPARC64 is currently able to boot the following OS/kernels:
  * Linux
  * NetBSD
  * OpenBSD
  * FreeBSD
  * HelenOS
OpenBIOS/PPC is currently able to boot the following OS/kernels:
  * Linux
  * HelenOS
  * Darwin/Mac OS X
The following operating systems will partially boot, but may suffer from some emulation bugs under QEMU:
  * FreeBSD
  * NetBSD
  * Mac OS 9


[http://www.coreboot.org Coreboot] can use OpenBIOS as a payload on x86.  
[http://www.coreboot.org Coreboot] can use OpenBIOS as a payload on x86.  
Line 39: Line 66:
= Development Repository =
= Development Repository =


OpenBIOS keeps its development tree in a [http://subversion.tigris.org/ Subversion ] repository. If you do not want to use Subversion, please have a look at the [[#Snapshots|Snapshots]]  below.
OpenBIOS keeps its development tree in a [http://git-scm.com/ git ] repository. If you do not want to use git, please have a look at the [[#Snapshots|Snapshots]]  below.


== Anonymous access ==
== Anonymous access ==


You can check it out as follows:
You can check it out as follows:
   $ svn co svn://openbios.org/openbios/trunk/openbios-devel
   $ git clone https://github.com/openbios/openbios.git


if you want a specific revision:
or for checking out the source code for the OpenBIOS FCode Suite:
   $ svn co svn://openbios.org/openbios/trunk/openbios-devel -r 463
   $ git clone https://github.com/openbios/fcode-utils.git


or for checking out the source code for the OpenBIOS FCode Suite:
== Developer access ==
  $ svn co svn://openbios.org/openbios/trunk/fcode-utils-devel


If your company installed a firewall that blocks the svn port (3690) you can also check out using the webdav frontend:
Access for developers is very similar to anonymous access. Just add your github username as follows when checking out the repository:
  $ git clone https://username@github.com/openbios/openbios.git


$ svn co <nowiki>https://www.openbios.org/openbios-svn/trunk/openbios-devel</nowiki>
= Source code browsing =


or
You can also browse the [https://github.com/openbios/openbios OpenBIOS github repository] online.


$ svn co <nowiki>https://www.openbios.org/openbios-svn/trunk/fcode-utils</nowiki>
= Snapshots =


== Developer access ==
There is currently no archive of snapshots available for OpenBIOS. You can use the [https://github.com/openbios/openbios source code browser] to download a ZIP archive of any revision.


Access for developers is very similar to anonymous access. Just add your subversion username as follows when checking out the repository:
Alternatively you can also download the [https://github.com/openbios/openbios/archive/master.zip most current snapshot] directly.
  $ svn co svn://username@openbios.org/openbios/trunk/openbios-devel


Subversion has commands very similar to CVS.
= Building OpenBIOS =


= Source code browsing =
Download fcode suite:


You can also browse the [http://tracker.coreboot.org/trac/openbios/browser/trunk/openbios-devel OpenBIOS subversion repository] online.
  $ git clone https://github.com/openbios/fcode-utils.git


= Snapshots =
Build the needed programs inside the fcode-utils-devel folder:


There is currently no archive of snapshots available for OpenBIOS. You can use the [http://tracker.coreboot.org/trac/openbios/browser/trunk/openbios-devel source code browser] to download a ZIP archive of any revision.
  $ make


Alternatively you can also download the [http://tracker.coreboot.org/trac/openbios/changeset/latest/trunk/openbios-devel?old_path=%2F&format=zip most current snapshot] directly.
Install the programs:


= Building OpenBIOS =
  $ make install


First, select the build targets:
Download OpenBIOS:
  $ ./config/scripts/switch-arch cross-sparc32 cross-sparc64 cross-x86 cross-ppc amd64


The cross- targets use cross compilers to build the images. In the above example, only amd64 target uses the native host compiler.
  $ git clone https://github.com/openbios/openbios.git


Finally the build command:
Select the build targets:
  $ make
  $ ./config/scripts/switch-arch sparc32 sparc64 x86 ppc amd64


Build OpenBIOS:
  $ make
or
or
  $ make build-verbose
  $ make build-verbose
 


OpenBIOS can even be cross-compiled on a host which is different type (big vs. little endian and 32 vs. 64 bits) from the target. At least Linux and OpenBSD hosts are known to work.
OpenBIOS can even be cross-compiled on a host which is different type (big vs. little endian and 32 vs. 64 bits) from the target. At least Linux and OpenBSD hosts are known to work.
Line 94: Line 122:
If your cross tools use different prefix from what the makefiles assume, the prefix can be overridden with:
If your cross tools use different prefix from what the makefiles assume, the prefix can be overridden with:
   $ make build-verbose TARGET=powerpc-elf-
   $ make build-verbose TARGET=powerpc-elf-
or
  $ make -C obj-ppc CC=powerpc-elf-gcc


The OpenBIOS binaries (typically openbios-builtin.elf) can be found in obj- subdirectories. The Unix executable version (native only) is named openbios-unix.
The OpenBIOS binaries (typically openbios-builtin.elf) can be found in obj- subdirectories. The Unix executable version (native only) is named openbios-unix.


= More on Subversion =


* [http://svnbook.red-bean.com/ Subversion book] - this online book is the best SVN documentation available online.
= Additional Resources =
* [http://subversion.tigris.org/ Subversion homepage]
[http://www.mediafire.com/download/wy5xgj2hwjp8k4k/AWOS_Cross-Compilers.zip PowerPC, x86, ARM, and Sparc elf cross-compilers for Mac OS X ]  
*This compiler uses a unsupported compiler prefix. To use it, set the CROSS_COMPILE variable to "ppc-elf-" before running the switch-arch script.  
 
Example:
  CROSS_COMPILE=ppc-elf- ./switch-arch ppc
 
= Notes for Building on Mac OS X =
There is a known build issue when building on Mac OS 10.6. The switch-arch script  will report your computer as 32 bit (x86) when it is really 64 bit (amd64). If you see the message "''panic: segmentation violation at …''" while building, you probably have this problem.
 
If this happens to you, try setting the HOSTARCH variable before using the switch-arch script.  
 
Example:
  HOSTARCH=amd64 ./switch-arch ppc
 
 
= Troubleshooting =
Seeing this message:  ''Unable to locate toke executable from the fcode-utils package - aborting''
<br>- Install the fcode suite first before trying to build OpenBIOS.
 


__NOEDITSECTION__
__NOEDITSECTION__

Latest revision as of 23:43, 9 July 2016

OpenBIOS - Code Releases

Welcome to the OpenBIOS download page. Here you'll find releases of OpenBIOS components.

After 4 years of hard work, OpenBIOS v1.1 has been released. The new features include:

  * Internal memory API (OFMEM) implementation
  * Forth Source Debugger
  * 64-bit 1275 6d5 implementation
  * Forth Local Variables
  * Internal libopenbios code reorganisation

See the OpenBIOS issue tracker for milestones, tasks and open bugs.

OpenBIOS

Download the latest release of OpenBIOS including the Forth kernel and all of the IEEE 1275-1994 compliant Forth code for user interface, client interface and device interface.

Latest release version is: OpenBIOS 1.1 (2013-05-04)

NOTE: The FCODE utilities are no longer part of the main OpenBIOS distribution. Have a look at the FCODE suite if you are looking for toke and detok.

Status and use cases

OpenBIOS can be used directly as a boot ROM for QEMU system emulators for PPC, PPC64, Sparc32 and Sparc64.

OpenBIOS/SPARC32 is currently able to boot the following OS/kernels:

  * Linux
  * NetBSD
  * OpenBSD
  * Solaris

OpenBIOS/SPARC64 is currently able to boot the following OS/kernels:

  * Linux
  * NetBSD
  * OpenBSD
  * FreeBSD
  * HelenOS

OpenBIOS/PPC is currently able to boot the following OS/kernels:

  * Linux
  * HelenOS
  * Darwin/Mac OS X

The following operating systems will partially boot, but may suffer from some emulation bugs under QEMU:

  * FreeBSD
  * NetBSD
  * Mac OS 9

Coreboot can use OpenBIOS as a payload on x86.

Do not try to put OpenBIOS in a real boot ROM, it will not work and may damage your hardware!

Kernel

There is also an ancient stand-alone version of the OpenBIOS Forth kernel BeginAgain.

The last released stand-alone version is: BeginAgain 1.1 (2003-10-12).

NOTE: You should use the latest version of BeginAgain that is present in the complete OpenBIOS release above. It is much newer than BeginAgain 1.1 and it supports cross compiling and lots of other nifty features. BeginAgain 1.1 is here for educational purposes only: The core binary is only 6k on x86.

Development Environment

FCode Suite

To download the latest version of the FCode Suite, including an FCode detokenizer, an FCode tokenizer and the romheader utility, please go to the FCode Suite page.

Flashing

/dev/bios is obsolete and has been replaced by a new and better utility. Please download a coreboot snapshot and use the flashrom utility from coreboot-v2/util/flashrom.

Development Repository

OpenBIOS keeps its development tree in a git repository. If you do not want to use git, please have a look at the Snapshots below.

Anonymous access

You can check it out as follows:

 $ git clone https://github.com/openbios/openbios.git

or for checking out the source code for the OpenBIOS FCode Suite:

 $ git clone https://github.com/openbios/fcode-utils.git

Developer access

Access for developers is very similar to anonymous access. Just add your github username as follows when checking out the repository:

  $ git clone https://username@github.com/openbios/openbios.git

Source code browsing

You can also browse the OpenBIOS github repository online.

Snapshots

There is currently no archive of snapshots available for OpenBIOS. You can use the source code browser to download a ZIP archive of any revision.

Alternatively you can also download the most current snapshot directly.

Building OpenBIOS

Download fcode suite:

 $ git clone https://github.com/openbios/fcode-utils.git

Build the needed programs inside the fcode-utils-devel folder:

 $ make

Install the programs:

 $ make install

Download OpenBIOS:

 $ git clone https://github.com/openbios/openbios.git

Select the build targets:

 $ ./config/scripts/switch-arch sparc32 sparc64 x86 ppc amd64

Build OpenBIOS:

 $ make

or

 $ make build-verbose


OpenBIOS can even be cross-compiled on a host which is different type (big vs. little endian and 32 vs. 64 bits) from the target. At least Linux and OpenBSD hosts are known to work.

If your cross tools use different prefix from what the makefiles assume, the prefix can be overridden with:

  $ make build-verbose TARGET=powerpc-elf-

or

  $ make -C obj-ppc CC=powerpc-elf-gcc

The OpenBIOS binaries (typically openbios-builtin.elf) can be found in obj- subdirectories. The Unix executable version (native only) is named openbios-unix.


Additional Resources

PowerPC, x86, ARM, and Sparc elf cross-compilers for Mac OS X

  • This compiler uses a unsupported compiler prefix. To use it, set the CROSS_COMPILE variable to "ppc-elf-" before running the switch-arch script.

Example:

  CROSS_COMPILE=ppc-elf- ./switch-arch ppc

Notes for Building on Mac OS X

There is a known build issue when building on Mac OS 10.6. The switch-arch script will report your computer as 32 bit (x86) when it is really 64 bit (amd64). If you see the message "panic: segmentation violation at …" while building, you probably have this problem.

If this happens to you, try setting the HOSTARCH variable before using the switch-arch script.

Example:

  HOSTARCH=amd64 ./switch-arch ppc


Troubleshooting

Seeing this message: Unable to locate toke executable from the fcode-utils package - aborting
- Install the fcode suite first before trying to build OpenBIOS.