https://openfirmware.info/api.php?action=feedcontributions&user=Mark&feedformat=atomOpenBIOS - User contributions [en]2024-03-29T13:14:29ZUser contributionsMediaWiki 1.40.0https://openfirmware.info/index.php?title=OpenBOOT&diff=465OpenBOOT2018-12-09T15:57:42Z<p>Mark: </p>
<hr />
<div>== Introduction ==<br />
<br />
In 2006 [http://sun.com/ Sun Microsystems] released their Open Firmware implementation OpenBoot under a BSL like license. Their code supports the sun4v architecture running on a hypervisor.<br />
<br />
== Download ==<br />
<br />
You can [https://github.com/openbios/openboot browse the source code online].<br />
<br />
The repository is available through git:<br />
<br />
You can check it out as follows:<br />
$ git checkout https://github.com/openbios/openboot.git<br />
<br />
__NOEDITSECTION__</div>Markhttps://openfirmware.info/index.php?title=SmartFirmware&diff=464SmartFirmware2018-12-09T15:56:01Z<p>Mark: </p>
<hr />
<div>== Introduction ==<br />
<br />
In 2006 [http://codegen.com/ CodeGen, Inc] released their Open Firmware implementation under a BSL like license. Their code, entirely written in ANSI C, contains the following components:<br />
<br />
* [http://www.codegen.com/SmartFirmware/index.html SmartFirmware™]: an ANSI C implementation of the IEEE-1275 Open Firmware boot firmware standard. Dramatically reduce and ease your firmware development and system bring-up times and costs.<br />
* An [http://www.codegen.com/SmartFirmware/ccfcode.html ANSI C compiler] that generates Open Firmware compatible Forth/Fcode makes it easy to develop drivers for PCI cards and PMC modules.<br />
<br />
== Download ==<br />
<br />
You can [https://github.com/openbios/smartfirmware browse the code online].<br />
<br />
The repository is available through git:<br />
<br />
You can check it out as follows:<br />
$ git checkout https://github.com/openbios/smartfirmware.git<br />
<br />
__NOEDITSECTION__</div>Markhttps://openfirmware.info/index.php?title=Open_Firmware&diff=463Open Firmware2018-12-09T15:53:48Z<p>Mark: </p>
<hr />
<div>== Introduction ==<br />
<br />
In 2006 the company of Open Firmware inventor Mitch Bradley, [http://firmworks.com/ Firmworks, Inc], released their Open Firmware implementation (OFW) under a BSD license. This code shares some code with SUN's OpenBOOT implementation. The open source OFW supports x86, PowerPC, and ARM architectures. Other architectures, including SPARC and MIPS, may be added as time and interest dictate.<br />
<br />
The x86 version is used on the OLPC "XO" computer. The x86 version can be configured for numerous other environments, including<br />
* Direct QEMU ROM (replacing the "bios.bin" that is supplied with QEMU<br />
* Coreboot payload<br />
* Loadable on directly on top of a conventional PC BIOS (booted from floppy or hard disk like an OS). In this configuration it can run on an arbitrary PC, or on an emulator like QEMU, VirtualBox, or VMWare.<br />
<br />
OFW can boot Linux directly from a disk file (FAT, ext2, ISO9660, or jffs2 filesystems) without the need for an intermediate bootloader like LILO or GRUB. The Linux image can be in either ELF format (as created by the first phase of the Linux kernel compilation process) or in the "bzImage" format that "wraps" the ELF image. When booting an ELF image, OFW can read the ELF symbol table so OFW's assembly language debugger can resolve kernel symbols.<br />
<br />
OFW can also boot other ELF standalone images, providing to them rudimentary "libc" capability. That facility has been used for booting, for example, Minix, ReactOS, Plan9, Inferno and SqueakNOS. The OLPC system ROM includes several such "standalone client programs", including MicroEMACS, memtest86, and NANDblaster (a facility for fast OS updates over multicast wireless).<br />
<br />
On the OLPC system, OFW emulates enough legacy BIOS "real mode INTs" to boot Windows XP. On another system, OFW supports booting Windows CE.<br />
<br />
== Download ==<br />
<br />
You can [https://github.com/openbios/openfirmware browse the source code online].<br />
<br />
The repository is available through git:<br />
<br />
You can check it out as follows:<br />
$ git checkout https://github.com/openbios/openfirmware.git<br />
<br />
==Building Different Versions==<br />
<br />
* Direct QEMU ROM: see [[Building OFW for QEMU]]<br />
* Coreboot: see [[OFW as a Coreboot Payload]]<br />
* OLPC: see [[Building OFW for OLPC]]<br />
* BIOS-loaded: see [[Building OFW to Load from BIOS]]<br />
* ARM: see [[Building OFW for ARM]]<br />
<br />
== Mailing List ==<br />
<br />
There's an Open Firmware mailing list at:<br />
<br />
* http://www.openfirmware.info/mailman/listinfo/openfirmware.<br />
<br />
The mailing list archive is also available:<br />
<br />
* http://www.openfirmware.info/pipermail/openfirmware/</div>Markhttps://openfirmware.info/index.php?title=MediaWiki:Sidebar&diff=461MediaWiki:Sidebar2018-01-18T08:03:08Z<p>Mark: </p>
<hr />
<div>* About the Project<br />
** mainpage|mainpage<br />
** Contact us|Contact us<br />
** Mailinglist|Mailinglist<br />
** Code of Conduct|Code of Conduct<br />
** Credits|Credits<br />
** Licensing|Licensing<br />
<br />
* Implementations<br />
** Open Firmware|Open Firmware<br />
** SmartFirmware|Smart Firmware<br />
** OpenBOOT|OpenBOOT<br />
** OpenBIOS|OpenBIOS<br />
** SLOF|SLOF<br />
<br />
* Development<br />
** FCODE suite|FCODE suite<br />
** BeginAgain|Kernel<br />
** FlashRom|Flashing<br />
** https://github.com/openbios/openbios/issues|Issues/Bugs<br />
** Low Level Firmware<br />
<br />
* Documentation<br />
** IEEE 1275-1994|Open Firmware<br />
** Bindings|Bindings and Supplements<br />
** Forth/FCode|Forth/FCode<br />
** On the Net|On the Net<br />
<br />
* Wiki<br />
** recentchanges-url|recentchanges</div>Markhttps://openfirmware.info/index.php?title=SLOF&diff=429SLOF2017-02-13T10:36:02Z<p>Mark: </p>
<hr />
<div>Slimline Open Firmware (SLOF) is initialization and boot source code based on the IEEE-1275 (Open Firmware) standard, developed by engineers of the IBM Corporation.<br />
<br />
The SLOF source code provides illustrates what's needed to initialize and boot Linux or a hypervisor on the industry Open Firmware boot standard.<br />
<br />
Currently the SLOF source code is hosted on github at https://github.com/aik/SLOF/ and provides:<br />
<br />
* Documentation<br />
* An Open Firmware implementation for prototyping, test, and debug<br />
* Low Level Firmware for IBM's JS20, JS21 and the YDL PowerStation (partially closed source)<br />
* Firmware for the emulated 'pseries' machine of QEMU</div>Markhttps://openfirmware.info/index.php?title=SLOF&diff=428SLOF2017-02-13T08:52:31Z<p>Mark: </p>
<hr />
<div>Slimline Open Firmware (SLOF) is initialization and boot source code based on the IEEE-1275 (Open Firmware) standard, developed by engineers of the IBM Corporation.<br />
<br />
The SLOF source code provides illustrates what's needed to initialize and boot Linux or a hypervisor on the industry Open Firmware boot standard.<br />
<br />
Currently the SLOF source code is hosted on github at https://github.com/aik/SLOF/ and provides:<br />
<br />
* Documentation<br />
* Pseudo Open Firmware for prototyping, test, and debug<br />
* Low Level Firmware for IBM's JS20 (closed source)</div>Markhttps://openfirmware.info/index.php?title=SLOF&diff=427SLOF2017-02-13T08:51:21Z<p>Mark: </p>
<hr />
<div>Slimline Open Firmware (SLOF) is initialization and boot source code based on the IEEE-1275 (Open Firmware) standard, developed by engineers of the IBM Corporation.<br />
<br />
The SLOF source code provides illustrates what's needed to initialize and boot Linux or a hypervisor on the industry Open Firmware boot standard.<br />
<br />
The link below offers:<br />
<br />
* Documentation<br />
* Pseudo Open Firmware for prototyping, test, and debug<br />
* Low Level Firmware for IBM's JS20 (closed source)<br />
<br />
* https://github.com/aik/SLOF/</div>Markhttps://openfirmware.info/index.php?title=OpenBIOS&diff=196OpenBIOS2016-07-09T23:43:18Z<p>Mark: </p>
<hr />
<div>= OpenBIOS - Code Releases =<br />
<br />
Welcome to the OpenBIOS download page. Here you'll find releases of OpenBIOS components.<br />
<br />
After 4 years of hard work, OpenBIOS v1.1 has been released. The new features include:<br />
* Internal memory API (OFMEM) implementation<br />
* Forth Source Debugger<br />
* 64-bit 1275 6d5 implementation<br />
* Forth Local Variables<br />
* Internal libopenbios code reorganisation<br />
<br />
See the [https://github.com/openbios/openbios/issues OpenBIOS issue tracker] for milestones, tasks and open bugs.<br />
<br />
= OpenBIOS =<br />
<br />
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.<br />
<br />
Latest release version is: [https://github.com/openbios/openbios/archive/v1.1.zip OpenBIOS 1.1] (2013-05-04)<br />
<br />
'''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.<br />
<br />
= Status and use cases =<br />
<br />
OpenBIOS can be used directly as a boot ROM for [http://qemu.org/ QEMU] system emulators for PPC, PPC64, Sparc32 and Sparc64.<br />
<br />
OpenBIOS/SPARC32 is currently able to boot the following OS/kernels:<br />
* Linux<br />
* NetBSD<br />
* OpenBSD<br />
* Solaris<br />
OpenBIOS/SPARC64 is currently able to boot the following OS/kernels:<br />
* Linux<br />
* NetBSD<br />
* OpenBSD<br />
* FreeBSD<br />
* HelenOS<br />
OpenBIOS/PPC is currently able to boot the following OS/kernels:<br />
* Linux<br />
* HelenOS<br />
* Darwin/Mac OS X<br />
The following operating systems will partially boot, but may suffer from some emulation bugs under QEMU:<br />
* FreeBSD<br />
* NetBSD<br />
* Mac OS 9<br />
<br />
[http://www.coreboot.org Coreboot] can use OpenBIOS as a payload on x86. <br />
<br />
Do not try to put OpenBIOS in a real boot ROM, it will not work and may damage your hardware!<br />
<br />
== Kernel ==<br />
There is also an ancient stand-alone version of the OpenBIOS Forth kernel ''BeginAgain''.<br />
<br />
The last released stand-alone version is: [http://www.openbios.org/data/bin/kernel-1.1.tar.bz2 BeginAgain 1.1] (2003-10-12). <br />
<br />
'''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.<br />
<br />
= Development Environment =<br />
<br />
== FCode Suite ==<br />
<br />
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|FCode Suite page]].<br />
<br />
== Flashing ==<br />
/dev/bios is obsolete and has been replaced by a new and better utility. Please download a coreboot snapshot and use the [[FlashRom|flashrom utility]] from ''coreboot-v2/util/flashrom''.<br />
<br />
= Development Repository =<br />
<br />
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.<br />
<br />
== Anonymous access ==<br />
<br />
You can check it out as follows:<br />
$ git clone https://github.com/openbios/openbios.git<br />
<br />
or for checking out the source code for the OpenBIOS FCode Suite:<br />
$ git clone https://github.com/openbios/fcode-utils.git<br />
<br />
== Developer access ==<br />
<br />
Access for developers is very similar to anonymous access. Just add your github username as follows when checking out the repository:<br />
$ git clone https://username@github.com/openbios/openbios.git<br />
<br />
= Source code browsing =<br />
<br />
You can also browse the [https://github.com/openbios/openbios OpenBIOS github repository] online.<br />
<br />
= Snapshots =<br />
<br />
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.<br />
<br />
Alternatively you can also download the [https://github.com/openbios/openbios/archive/master.zip most current snapshot] directly.<br />
<br />
= Building OpenBIOS =<br />
<br />
Download fcode suite:<br />
<br />
$ git clone https://github.com/openbios/fcode-utils.git<br />
<br />
Build the needed programs inside the fcode-utils-devel folder:<br />
<br />
$ make<br />
<br />
Install the programs:<br />
<br />
$ make install<br />
<br />
Download OpenBIOS:<br />
<br />
$ git clone https://github.com/openbios/openbios.git<br />
<br />
Select the build targets:<br />
$ ./config/scripts/switch-arch sparc32 sparc64 x86 ppc amd64<br />
<br />
Build OpenBIOS:<br />
$ make<br />
or<br />
$ make build-verbose<br />
<br />
<br />
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.<br />
<br />
If your cross tools use different prefix from what the makefiles assume, the prefix can be overridden with:<br />
$ make build-verbose TARGET=powerpc-elf-<br />
<br />
or<br />
$ make -C obj-ppc CC=powerpc-elf-gcc<br />
<br />
The OpenBIOS binaries (typically openbios-builtin.elf) can be found in obj- subdirectories. The Unix executable version (native only) is named openbios-unix.<br />
<br />
<br />
= Additional Resources =<br />
[http://www.mediafire.com/download/wy5xgj2hwjp8k4k/AWOS_Cross-Compilers.zip PowerPC, x86, ARM, and Sparc elf cross-compilers for Mac OS X ] <br />
*This compiler uses a unsupported compiler prefix. To use it, set the CROSS_COMPILE variable to "ppc-elf-" before running the switch-arch script. <br />
<br />
Example:<br />
CROSS_COMPILE=ppc-elf- ./switch-arch ppc<br />
<br />
= Notes for Building on Mac OS X =<br />
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.<br />
<br />
If this happens to you, try setting the HOSTARCH variable before using the switch-arch script. <br />
<br />
Example: <br />
HOSTARCH=amd64 ./switch-arch ppc<br />
<br />
<br />
= Troubleshooting =<br />
Seeing this message: ''Unable to locate toke executable from the fcode-utils package - aborting''<br />
<br>- Install the fcode suite first before trying to build OpenBIOS.<br />
<br />
<br />
__NOEDITSECTION__</div>Mark