On Tue, May 15, 2001 at 06:18:34PM -0700, Mike Fedyk wrote: > > > > no. oldworld OpenFirmware does nothing more then activate the > > hardware MacOSROM, this is on a ROM chip and has nothing to do with > > any sort of disk media. > > > > It obviously does more, or quik wouldn't work ;) in its standard configuration it does no more... OpenFirmware is supposed to have far more capability but Apple didn't bother to make it work right. all apple tested and perfected was the `boot macosrom'. borrowing from some comments about x86 BIOSes in the linux kernel source apple's OF QA process is something like this: (not quite so bad now..) 1: Write OpenFirmware code. <---- ^ 2: Does it compile? no ->---| ^ 3: Does it boot MacOS 7 ? no ->--| > What executable format is quik in anyway? first stage is powerpc asm. second stage i think is something custom, i think its ELF with all the ELF stuff stripped off. first stage loads it into memory, sets the load-base or somesuch and tells OF to execute that code. > I understand that, but it would be _made_ to understand oldworlds. more is required then simply recompiling in a different executable format. the proper format to use is the same as quik's second stage. > Oh, what about fat support? on newworlds OF will refuse to read a FAT filesystem unless the disk uses x86 partition tables. so i doubt oldworld is any better. like i keep saying the only way your going to get yaboot going on oldworld is to make it be the quik second stage. there is nothing wrong with that. you seem to be thinking that the bootstrap partition kludge used on newworld somehow makes OF booting more reliable. it doesn't. it has nothing whatsoever to do with it. the *ONLY* reason we use the bootstrap partition kludge on newworlds is because we have to, newworld OF is broken and refuses to load a bootblock. oldworld OF does not have this flaw. (ironically enough oldworld OF is better then newworlds in this respect...) > Why does it boot reliably with tiny xcoff kernels on floppies? it doesn't. (boot reliably that is). > Why does newworld need that anyway? Can't OF > 3.0 work with bootblocks or some > non-partition setup? nope, apple removed the ability for OF to load a bootblock in 3.0, along with it they removed the ability to load a raw partition. (i have confirmed this) [yaboot as quik second stage] > Looks good... good. > > alternativly oldworlds i think have the ability to bootstrap like > > RS/6000's do. in this case a xcoff yaboot would be dded to a > [snip] > Agreed, that wouldn't be any better, and wouldn't solve OF. nope, this is the aproach apple took with OSX's bootloader for some reason. thats what that Apple_Loader partition is. it does absolutly nothing but waste space on newworlds, but its booted on an oldworld. (conversly the Apple_Boot does nothing but waste space on the oldworld, but is booted nearly the same way as ybin on a newworld). > I think it is now a stated fact in this thread that oldworld OF, yaboot, and > quik are total crap. ;) oldworld OF is total crap, quik is rather a mess, but not the main thing to blame for crappy OF booting. yaboot isn't too bad but it could use a massive cleanup and decrufting. its basically like this: silo -> garbled, code/feature removal -> quik -> many bug fixes, some poof code, some random touchup -> yaboot. silo has alot of really nice features that all disappeared misteriously when its bastard child quik was born. > Will apple release these patches? Has darwin made them open anything like > this up to the public? they are in Forth, and thus cannot be made proprietary like C code. but that is not the point, they are non-free and cannot and will not be included in this bootloader package. (i will not have yaboot/ybin end up in non-free or contrib of debian). the only way is a cleanroom reimplentation. > If you do that, I think it will probably become popular. Especially if you > give cvs access. i will probably start either a sourceforge project, or one on the GNU thing that just started. if there is interest in helping this out. [nramrc patching] > Probable. apple seems to figure out how to put the right patches in but then im not sure how reliable they really do it.. all they care about is the beige g3... systemdisk is totally proprietary. > bloat, and how big can nvram get anyway? not that big, on my newworld the entire nvram (including the macos partition) is 8K. im not sure what it is on oldworld. > So, how exactly does this MacOS rom work anyway? > > I'm guessing: > > look in map for hfs partitions > > read partitions until valid system folder is found > > execute necisary file actually its: destroy OpenFirmware ruin OpenFirmware device tree screw up hardware state etc. look at disks for Apple disk driver partitions (all that Apple_Driver, Apple_Patch crap) load them if they are found, crash if they are corrupt, pretend the disk does not exist if they are not found. check Apple_HFS partitions for, a 68K bootblock, and a blessed MacOS system folder with a MacOS System file, if all found load the MacOS System file. > Now... > > When/how does it use the driver partitions? see above i know what your getting at, use the MacOSROM to make a bootloader for linux. ill stop you right there, ANY macos based booting is fundementally flawed (quoting benh). this includes miboot, bootx, and a hyopthetical bootloader masquerading as a MacOS disk driver. alot of the same problems that make MacOS based booting on newworld horrible also exist for oldworld (some just less severe), this is the reason benh has shunned bootx and all MacOS based booting on newworlds and will hear no bug reports from users who continue to do so. macos based booting still causes problems on oldworld so it would be a Good Thing to get rid of BootX and other MacOS based bootloaders for everything except temporary system rescue. > What is apple's license on MacOS 7.5 that they have downloadable? Would we > be able to dist parts of that under non-free? no. the licence is as non-free and proprietary as it was the day it came out. the only difference is apple gives it to you gratis. you are not permitted to distribute it, reverse engineer it, decompile it, <insert freedom forbidden by standard EULAs>. > Maybe we can use oldworld OF as it was _designed_ and boot with the rom. no. see above, MacOS based booting whether via disk installed MacOS or the MacROM is fundementally flawed, only a true OpenFirmware based bootlaoder will actually get us anywhere, otherwise you may as well use BootX because there is no difference. just a note, originally the MacOSROM was *ALL* of MacOS, the original classic could even boot off the ROM entirely. that is why MacOS fit on a floppy, all there was was just some patches and new features. even today the MacOS ROM contains 4MB of MacOS, the majority of MacOS system calls are run from the ROM (which is why newworlds run macos faster then oldworlds, the ROM just gets stashed in a block of ram) > This may look like a step backwards, but it may be the only solution in some > cases, or temp solution until nvram patches can be made. its not a solution at all. it does not solve the fundemental problem with MacOS based booting. there is no point to wasting time on it. if you want macos based booting use BootX. period. i am only interested in building a real bootloader that will free the kernel from dealing with all the problems MacOS (including the ROM) creates. anything other then that is a waste of time, miboot and bootx already exist as MacOS based bootloaders, and they suck just like all MacOS based bootloaders will suck. (miboot, a `driver' based loader, bootx all have really serious user problems that cannot be solved). > Anyone have docs on what the rom does? URLs would be nice. its MacOS, so whatever MacOS does is what the ROM does. like i said, don't waste your time. just as a point of interest, NetBSD has allegedly gotten OpenFirmware based booting working very well (or at least the docs give that impression) we should look at thier code and see what they came up with. and NetBSD has no MacOS based bootloaders at all, no bootx, no miboot, nothing. the ONLY way to boot netbsd is via OpenFirmware. so they MUST have gotten this cleaned up. i really think it was unfortunate that BootX ever got written really, all it has done is create a band-aid good enough to halt any progress whatsoever on a real bootloader for oldworlds. when it totally failed to function on newworlds was when it kicked yaboot into existence. but now these flaws are still causing trouble, because BootX is a band-aid, not a solution. you look at the BSD guys, they had no MacOS based bootlaoder and have no such interest in such kludges [0], that forced them to build a real bootloader and now they have one. [0] in fact it was only very recently that netbsd could even be installed on a disk using Apple partition tables, before you had to use an x86 partition table with just one partition containing the bsd disklabel (just like on an x86 box). that precluded a MacOS install anyway. -- Ethan Benson http://www.alaska.net/~erbenson/
Attachment:
pgpwWZCKsSPqp.pgp
Description: PGP signature