j
: Next unread message k
: Previous unread message j a
: Jump to all threads
j l
: Jump to MailingList overview
After trying to fix a problem with the quik boot loader (as in you can't actually compile it with a current e2fslib without it breaking), I kept having odd problems.
My tests were done using qemu (from git) and hence using openbios-ppc (which is way better than openhackware ever was). I managed to compile with an old library version just to verify that things still worked that way, and they did. Howver as soon as I changed anything about how QUIK structured its data, then it no longer booted. In fact it didn't even appear to try to start the boot loader. Seemed odd, and even though I don't considere myself that experienced at dealing with assembly, I was pretty sure what I was doing was right. But it never worked.
So after about 3 days of trying different things and many many reboots of qemu, I finally thought I would look at what openbios uses to determine if the bootloader should be started. Much to my surprise I found a copy of a data structure from quik's source code plastered in openbios, and not only that openbios had various #define values copied from quik as well and was using those to determine where in the first stage boot loader to check for the string "QUIK" to decide if this was in fact the quik boot loader it had located. Gah!
Well clearly as soon as I change quik, and move things around, this match no longer happens, and openbios ignores the perfectly valid bootable partition. Wouldn't it make a lot more sense to simply try booting any partition marked bootable? Isn't that what a real oldworld powermac would have done?
So my first "quick fix" was to change the structure and constants to match my modified quik boot laoder, and hey what do you know, now it boots and it works with new e2fslib versions and it even supports using more than 11MB of ram for the kernel+initrd combination (I increased it to 64MB from 16MB mapped, except for the ppc 601 which is different and which I have no idea how to test).
So a better fix would be to scan for the string QUIK anywhere in the 1KB first stage bootloader area, rather than looking at a specific location.
The best fix would of course be to simply boot the partition if it is flagged as bootable and hence support any boot loader that could be there not just QUIK 2.x. Not sure if or how this might conflict with the yaboot support.
Any suggistions and/or preferences for how this gets done? I will be fixing it one way or another because the current method simply doesn't work since the current version of quik no longer works if you recompile it on a modern powerpc linux system, and I have fixed that (I just have to figure out where the maintainer is to see how to go about doing a new release, assuming he still cares).