[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Why yaboot is NOT for oldworld macs, Oldworld owners please read! (was Re: StarMax and yaboot...)



On Mon, Jun 05, 2000 at 09:10:24PM -0700, Brian Macy wrote:
> I'm trying to get my StarMax 4400 (OF 2.02) to like yaboot. Simply can't
> get it to work. Since it is not a "New World" Mac 90% of the
> documentation is not quite right.

yaboot will not work on oldworld macs, that is why the documentation
says it won't and does not tell you how to set it up ;-)

this question seems to come up over and over and over and over again,
for some reason alot of people want to make yaboot work on oldworld
macs despite the fact the statements that such an effort is futile, so
i am going to attempt an explanation of both by yaboot won't work and
why it is not desirable to use yaboot on an oldworld:


1) yaboot does not work:  
	yaboot is designed for the newworld Macs which have a
signicantly different system for bootstrap then the oldworld macs.
they also have a much different version of OpenFirmware (read
significantly less broken).  on oldworld macs OpenFirmware is not at
all responsible for the boot process, all it does is start the
Hardware MacOS ROM and nothing else.  the MacOS hardware ROM is 4MB
worth of the MacOS, it is responsible for reading the disk and loading
the rest of MacOS, not OpenFirmware.  as a result Apple only
implemented enough OpenFirmware to accomplish this goal, leaving a
quite thoroughly broken implementation of OpenFirmware.  Newworld macs
on the other hand have no hardware Mac ROM, instead the old hardware
ROM is saved into a compressed image, and attached to an ELF
executable with a OpenFirmware CHRP boot script that reinvents the ELF
loader among other things.  OpenFirmware is responsible for executing
this OpenFirmware CHRP script which eventually causes OF to load the
ELF executable which in turn decompresses the ROM image into RAM, and
executes that.  in short newworld OF actually has to do a significant
ammount of work, including reading of block devices (properly) and
filesystems (properly) along with a useful execution environment.  as
a result newworld OpenFirmware is much much closer to a complete, and
somewhat usable implemenatation of OpenFirmware (still rather broken
in many obnoxious and shortsighted ways but...)

2) why you don't WANT to use yaboot on oldworld hardware: 
	No matter how many times i say it, and its pointed out on the
various yaboot documentation sites, people continue excercises in
futility of setting up yaboot on an oldworld mac.  I can only assume
this is because yaboot is a OpenFirmware boot loader, for Macs that
actually works without significant ammounts of witchcraft and black
magic.  and quik has an old reputation for being a rather vile 4
letter word.  (and all distributions except debian are ignoring and
leaving broken versions of quik in thier distribution).  what i want
to point out is that quik is not a 4 letter word, and its not a
horrible boot loader (but is not free of problems largly not its
fault).  first let us go over the main complaints about quik:

a) difficulty finding and configuring the boot-device OF variable. 
	with quik you must change the boot-device variable to the disk
for which quik is installed, this is required since the boot-device is
not set to a disk at all on oldworld machines, instead it is set to
/AAPL,ROM the MacOS hardware ROM.  on newworld machines you do not
have to mess with boot device if your using IDE disks and ybin.
yaboot being an OF boot loader, even if it worked on oldworld, would
STILL require you to change the boot-device variable in the EXACT SAME
WAY as you do with quik.  this problem is not solved by using yaboot
instead of quik.

b) oldworld macs (with very few exceptions) lack the ability to
interface with OF from the console, instead you must use a serial
terminal:
	this is a significant annoyance given you are unable to see
error messages and diagnose improper boot-device settings, or broken
quik config files. or any number of other problems.  you are also
unable to boot alternate kernels since you cannot interface with the
quik boot: prompt.  again yaboot is a OF boot loader, its boot: prompt
appears in OF, and thus will fall victim to this same limitation of
oldworld OF, you will still need a serial terminal to use an diagnose
yaboot (if it worked) that you need for quik.  again nothing is gained
from using yaboot instead of quik here.

c) quik is broken and/or unreliable:
	wrong, debian's quik is fixed for Powerpc hardware (for the
most part) however OpenFirmware is VERY *VERY* broken (broken does not
begin to describe it) this makes building a working OpenFirmware
program (such as a boot loader) rather difficult, and reliability is a
difficult goal given OF itself is inherently unreliable on these
machines.  (try building a stable house on sand...)  quik can and does
work fairly reliably on some machines.  however another problem is the
kernel itself has to load in a slightly different way compared to
newworlds (something i am not, nor wish to be, intimatly familer with,
see the various prom.[ch] files about the kernel source if you are
interested.)  this code may or may not be functional in a given
kernel, (i am quite suspicious that its broken in paul's 2.2.15) the
kernel developers also AFAIK do not test with quik meaning the kernel
itself may fail to boot from quik, but this is not really quik's
fault.  since yaboot would have to load the kernel the way quik does
to work on oldworld macs you would gain nothing here, the kernel may
(probably) would still have problems booting with yaboot on an
oldworld.  and since OF is so broken yaboot is not likly to be any
less flaky then a quik setup since the foundation it is built on is
such crap. 

anyway those i think are the main issues people have with quik, other
then its horrible reputation, and all the propaganda LinuxPPC,
Inc. has been spreading about it since BootX appeared has created an
exaggerated stench around quik. (which was so bad that people feared
yaboot just as much (by association with the other 4 letter word
OpenFirmware) until very recently (and even still)) 

however now that yaboot is beginning to get a reputation of its own
which is not negative people think that porting yaboot to oldworld
will magically solve the boot loader problem for those machines, this
is a myth (or psychological manifestation) yaboot will solve NOTHING
on oldworld macs.   for a simpler explanation of why:  yaboot is
basically the same thing as quik's second stage loader, so port yaboot
to oldworld and you get /boot/second.b (in ELF format).  

so agian, yaboot does NOT work on anything except *NEWWORLD* macs,
that means iMacs, BlueG3s, iBooks, all G4s.  it will *NOT* work on
oldworld macs, and making it work on oldworld macs would IMO be a
large waste of time since the problems are really not in the boot
loader (quik) but in OpenFirmware on this hardware (and [alleged] lack
of kernel support) 

final word:

* If you have oldworld hardware, your boot loader is quik [1]. deal
with it.

* If your hardware is newworld then you are privileged with a machine
more ammicable to non-MacOS booting then oldworlds are. 

[1] the other option for oldworld is BootX, which is not really a boot
loader IMO (the same way Loadlin is not really a boot loader). 

Note:  for oldworld hardware, if you do NOT have MacOS installed
another option may be miboot, but this option requires a standard HFS
partition and that your kernel be held on that partition.  MacOS will
of course mount it and see its clearly fake and remove the boot blocks
and debless the partition making it unbootable. this is why miboot is
not really suitable for anything except CDs or boot floppies, not a
general purpose boot loader.  

Note2: I do have an idea about implementing an oldworld Bootloader
that does not suffer miboot's limitations/problems and bypasses
OpenFirmware (and all its problems) and does NOT require macos.
however: 

1) i am not certain it would work.  

2) it would take someone very familier with the MacOS hardware ROM,
and what it can do. it would also take someone familier with 68K
assembly, and probably a lot of reverse engineering to pull off.  if
you have these qualifications and some time (haha) let me know and ill
explain it, i am too tired to explian it now ;-).

thanks for reading.

-- 
Ethan Benson
http://www.alaska.net/~erbenson/

Attachment: pgpUeNvraSEWi.pgp
Description: PGP signature


Reply to: