blob: 430bd445d08b559ee6557bf735652dbd68ef9814 [file] [log] [blame]
This is an implementation of Open Firmware, a processor-independent
firmware design. Open Firmware is specified by IEEE 1275-1994,
Standard for Boot (Initialization, Configuration) Firmware. The
IEEE standard designation lapsed in 1999, when the Open Firmware
working group declined to go through the rather time-consuming
IEEE reaffirmation process, but the design lives on.
This implementation was written primarily by Mitch Bradley, the
original author of Open Firmware. The bulk of the recent
development was done at Firmworks by Bradley and colleagues.
It traces its roots back to the original Open Boot firmware
implementation that Bradley developed at Sun Microsystems in the
late 80s and early 90s. That in turn had roots in Forthmacs,
a Forth programming language implementation developed and
marketed during the early 80s by Bradley Forthware. And
Forthmacs, in turn, owes a debt of gratitude to the public
domain Forth implementations F83, developed by Michael Perry,
and MVP Forth, by Glen Haydon. Lilian Walter wrote the USB stack.
Most of the files within this source tree are licensed under
the MIT open source license, primarily the files copyrighted
by Firmworks (including code that Firmworks purchased from
Bradley Forthware). Some files are licensed under other forms
of open source license - Sun Microsystems released their core
Open Boot code under a variant of the BSD license, and a few
C source files from outside sources carry a GPL license.
See the individual files for details.
A few of the files are not copyrighted at all; such files
include binary graphics images that serve as simple examples,
files that are very short or essentially trival, load scripts
that are primarily just simple lists of other files, and simple
makefiles. The non-copyrighted files do not constitute
significant intellectual property.
This Open Firmware implementation has been ported to quite a
few different CPUs and platforms. The initial release contains
the processor-independent core code, x86 CPU support, drivers
for some common PC peripherals, and the current version of the
port to the One Laptop per Child computer. The support code
for other CPUs and devices, and documentation, will be released
as time permits.
Mitch Bradley
2006-11-12