Ari's OpenFirmware Replacement Project

Yeah its me shush

So I’m in the works of working on an openfirmware replacement. Currently me and a partner in crime are poking a G5 quad, and soon my DP if I can get some intrusions to work on apple OFW, to see what addresses go where and what is what. The point of this practice is to eventually have a fully open boot for PowerPC Macs.

This replacement will (hopefully) allow you to mess with clocks, drives, what addresses the drives are mounted to, maybe power limits, use thunderbolt (actually is possible), and use NVME (have already gotten it working on the Quad).

Will post more soon. Just wanted a starting post before I forgot. See ya soon~

3 Likes

So, first few steps of the project are pretty much planning out what features SHOULD be in there, and then what ones I can actually get to work.

Heres my list of wants:

Power Monitoring
Thermal Monitoring
Fan Addressing + on\off control | fan control sorta, but IDK if speed is OFW dependant
Overclocking Menu of a sort | Need to see if power control from 12V+ and 3.7V+ is possible
Menu’s
NVME | Already done sorta
Config menu for compute cards | This excludes processor dependant hardware such as the Nvidia GRID and Tesla, which needs Intel opcodes.
Choose direct drop to OFW Terminal, machine config, or boot menu
Notes file to help WITH OFW Terminal
Firewire MAC mode

What I KNOW can be done:

Menu’s
OC
NVME
Fan controls, sorta

A lot of this stuff will need to be done custom, which big whoop Forth is easy as fuck. But I have a 50mb limit on the OFW chipset in the G5… And even less in G4’s. IDK if I’ll bother with G3’s because that shit is stupid slow fuck that.

The goal is to end up with a firmware package that makes a powerpc mac as competent as a raptor blackbird, whether its a 12 inch ibook or a DDR2 powerbook or an MDD or a G5 2.7.

If yall have other ideas for what should be in it, I’m all ears.

1 Like

An append, because I know its possible, I would also like to enable OFW’s ‘supervisor’ mode on the desktops, and maybe ddr2 powerbooks. This would allow you to drop to live term (will call Direct Drop Terminal in settings) in ofw at any point in time. Many ibm systems allow for this, and between an ibm workstation and an apple workstation… Theres very few differences.

The only weird thing is the G5 pcie controller is live reprogrammable. At some point this may be expandable to hotswap pcie, but thats after some code jockeying and stripping a lot of stuff out of ofw to make room for new code.

As it is with the 5mb limit on the apple chipset, it mill be hard to have all of the tools I want in the first place. Networking will have to be stripped, some device types will even be removed because I am intending this to be modern as fuck. No weird 90’s compatibility. Though, that may also have an effect on what tools are in there, so some tools may just get rewritten into compact software suites anyways.

As openfirmware itself, like systemd, is basically an operating system already, it’ll be a sinch to make work. I just hope ppl help test it!

More posts coming. Trying to gather all my thoughts so I can make a move forward. If sink could get unbanned so she could post to here too that’d be dank. But… Eh, no promises.

Edit:. @wendell would you be interested in trying this out when available?

1 Like

https://www.openfirmware.info/OpenBIOS
Future note, heres the source.

Last preliminary post. I wanna talk about some of the things this will also allow for on certain machines.

On my powerbook G4 its clocks are set to the lomest for sake of the battery. Honeshly a powerbook doesn’t get shits worth battery life in the first place, so why the FSB is set to 167mhz instead of 366 or 600 is beyond me, but its still set low.

What I want to do is to allow for ACTUAL FUCKING POWER TARGETS… Not ‘oh I’m playing an mp3? KILL EVERYTHITG’

This is nothing new for apple with the whole i9 thing, its just now its not your cache and bus speeds.

Anyways I want to allow for making active power schedules on specifically the high performance machines first. The DDR2 PB is one of few machines I’m genuinely pissed off about apple throttling. It would have made it a worthwhile machine long into the core 2 or even core i era had it been unlocked. With the speeds able to be unlocked, the machine will be a bit hotter but will run 20x better. Though I might do liquid metal on mine just to be safe (because why not).

On the desktops theres going to just be an overclocking suihe, so theces no need for this there.

Been busy wihh stuff. Will post again when looking at stuff in build in a week or two.

1 Like

InB4 baseless Apple takedown demand :stuck_out_tongue:

Inb4 opensource motherfucker

So I’m trying to find info on the chip itself in my powrbook, though I’m unsure of where to pick up schematics. As well, I’m figuring out what my work environment will need to be to work on the project. Thought it might be a lot more hectic than its turning out to be.

Neat.

Either way, if anyone has such info on hand, that’d be neat. I mostly want to know what the physical (memory) size of the chip is.

Also bumping into one problem now. With the G5’s its pretty easy to sneak a firmware in because you can just change the files out and bam wing damn. No problema. However looking at the G4 tools on apple’s site, nothing there for FW updaters.

As well, looking into some posts made earlier this year, while theres many gens of AOFW, the releases have nothing to do with the machines, just the generation of machines. Only machines that could get proc upgrades or hardware upgrades that mattered got FW packages, so desktops and the imac G3, really. Haven’t had time to look into it too closely, but since apple tools like that run off .plist files I assume I can just change the configuration and have it work?

It looks like its teh same communications controller in other machines, IE a UniNorth 1E42, however how that thing works is beyond me and the apple firmware doesn’t have the code in place to tell me the physical address, but rather gives me base64 variables that I’m supposed to feed to an apple tool that links up with other things. I’m not quite sure how that tool works, nor do I think I care.

I’d rather just get something going, even if its a rough idea base package. Hell even if its just normal OFW and no edits and I make the edits later.

I’m currently also unsure if I can make multiple edits in a row to the OFW chip, or if it keeps an incremental counter on versions. I assume theres a built in checksumming chip or sector in the UN controller, but IDK. No info on that really.

If anyone has any info, I’d appreciate it.

I’m not at the build process yet but a small update. Also been kicked from my home, so some time will be taken to work on this. Not on a G5, either way, which annoys me.

So theres an email chain for a tool called ‘flashrom’. I noticed it on the source site. Leems to be used for hacked bios’, and openbot/coreboot on compatible hardware. Seems theres some stuff in place for ppc shuff and OFW so I’ll ask around on there for anyone who knows info on the flash chips. Haven’t had a tonne of time to dump on this as I’ve been dealing with family being assholes, so for the moment the project is halted until I have better living sitations, at least developmentally. I’ll still work on research though. This is one of few things keeping me going.

Going to start full work on this tomorrow again. I think I’m going to completely skip G5 after all and just work on 32 bit, mostly due to power useage constrictions.

Let me put it this way. Due to current living situations, I’m glad my ryzen based desktop uses almost no power. Doing the few things it does, it uses as much power as my thinkpad does at full load.

In any accord, process tomorrow is as follows, mostly for me to follow in case I forget.

1: Reinstall void. Leave OSX on PB, but I need void.
2: KVM setup. No idea what the process will be honestly.
3: Actually build OFW. Luckily theres stuff in place to assist with that already, so no worries there really. Turns out it should be easier on platform anyways, so fuck what I was doing before.
4: Get at least something running in a VM.

I’m a little lucky in that the DDR2 powerbooks had better versions of the 7447A1 that had faster thread switching. So, even though its a single threaded processor, I still have some boof in VMs if I need it. I think AOFW has access to cache clock settings anyways, so if need be I can beef a few things up. Doubt I’ll need to though.

Also fun note, in looking up some things about the PB controllers I found that power control on the powerbooks should be a little easier. Not that it’ll be easy to begin with, and getting all the values figured out without frying anything will be a large pain in my ass, but it should be something useful, at least on the DDR2 models and the 1.5GHz ibooks.