Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
I'm speechless, @dosdude1. Epic achievement!!

I'm really looking forward to what happens next! Last gen PowerBooks and iBooks?
 
This sounds promising, and is the most progress on this that I've seen in years. Would you post up how to get the data to/from the eeprom, etc.? I can help test this if you'd like.

What would it take to get some help patching a 12" powerbook rom? I would really like to put a 7448 into one.
 
This sounds promising, and is the most progress on this that I've seen in years. Would you post up how to get the data to/from the eeprom, etc.? I can help test this if you'd like.

What would it take to get some help patching a 12" powerbook rom? I would really like to put a 7448 into one.
Awhile ago, I built a custom version of flashrom that works with the EEPROMs in these PPC Macs. However, it is not fully tested, so there is a small chance it could brick your machine, in which case you'd have to flash it using a TL866 EEPROM programmer, along with these adapters. This version of flashrom can only be run from Linux, so you'll have to boot a copy of Linux on your machine to dump or flash using flashrom.

If you dump the PowerBook's ROM using flashrom, I can patch it for you.
 

Attachments

  • flashromppc.zip
    59.7 KB · Views: 127
I found that I made quite a mistake with my previous patched MMG4 ROM, mainly due to getting my ROM dumps mixed up (it's been awhile since I worked with them). I fixed that now, and updated my previous post with a correctly patched ROM, and updated control flow screenshots.
 
Last edited:
I found that I made quite a mistake with my previous patched MMG4 ROM, mainly due to getting my ROM dumps mixed up (it's been awhile since I worked with them). I fixed that now, and updated my previous post with a correctly patched ROM, and updated control flow screenshots.
yeah I noticed you had PowerMac10,1 listed on the iMac flow chart and was a bit puzzled to see stock iMac ROM have the 7447A's PVR in it which we know the iMac does not normally support

now it makes a lot more sense :) (it also shows as I thought from its BootROM version that the PowerMac6,3, does indeed look to support 7447 (No suffix) CPUs natively)


it is some really awesome stuff you have done there, I really hope it works :) because it would open up a bunch of macs to some awesome upgrades


I should dump the BootROM of one of my DLSD's so you can have a look and see just what CPUs it supports, finally figure out if the DLSD's BootROM has native 7448 support or not!


its very interesting to see that the GigaDesigns patcher actually adds in a reference to the 7447/7448 PVR, I always thought it just removed a "halt on unknown CPU" thing

because as you know even once patched OpenFirmware still does not really know what to make of the 7448 etc

(BTW just to be doubly safe I assume you updated/corrected the checksum of the BootROM right?)
 
Last edited:
I found that I made quite a mistake with my previous patched MMG4 ROM, mainly due to getting my ROM dumps mixed up (it's been awhile since I worked with them). I fixed that now, and updated my previous post with a correctly patched ROM, and updated control flow screenshots.
Can the 1GHZ TI G4 be over locked ?
 
I wonder if these dual-core 7448s would ever have a chance to work properly in OS X. Maybe with a custom kernel?
 
yeah I noticed you had PowerMac10,1 listed on the iMac flow chart and was a bit puzzled to see stock iMac ROM have the 7447A's PVR in it which we know the iMac does not normally support

now it makes a lot more sense :) (it also shows as I thought from its BootROM version that the PowerMac6,3, does indeed look to support 7447 (No suffix) CPUs natively)


it is some really awesome stuff you have done there, I really hope it works :) because it would open up a bunch of macs to some awesome upgrades


I should dump the BootROM of one of my DLSD's so you can have a look and see just what CPUs it supports, finally figure out if the DLSD's BootROM has native 7448 support or not!


its very interesting to see that the GigaDesigns patcher actually adds in a reference to the 7447/7448 PVR, I always thought it just removed a "halt on unknown CPU" thing

because as you know even once patched OpenFirmware still does not really know what to make of the 7448 etc

(BTW just to be doubly safe I assume you updated/corrected the checksum of the BootROM right?)
Yes, checksum has been updated appropriately. Send me over a DLSD dump, I'll take a look at it.

And yeah, they way Apple implemented this check is really weird. All they do is check whether or not the PVR is "greater than", "less than", or "equal" to the CPU PVRs Apple determined were compatible. All it does is set the condition register 2 (CR2) to have either the "gt", "lt" or "eq" bit set based on this determined state (or "so", "summary overflow/exception"). The calling function then checks if the "eq" bit is set, and if so, proceeds with boot. Otherwise, system halted. The "lt" and "gt" bits are never checked.
 
Last edited:
Yes, checksum has been updated appropriately. Send me over a DLSD dump, I'll take a look at it.

And yeah, they way Apple implemented this check is really weird. All they do is check whether or not the PVR is "greater than", "less than", or "equal" to the CPU PVRs Apple determined were compatible. All it does is set the condition register 2 (CR2) to have either the "gt", "lt" or "eq" bit set based on this determined state (or "so", "summary overflow/exception"). The calling function then checks if the "eq" bit is set, and if so, proceeds with boot. Otherwise, system halted. The "lt" and "gt" bits are never checked.
This is great news, somehow, I think the price of Mini G4's and Powerbooks will be going up on eBay.

At least until you run dry of 7448's. 🤣
 
  • Haha
Reactions: LightBulbFun
Of course Powerbooks present a small issue with 7448 upgrades, DFS low is set by the bootrom/open firmware, and the OS is expected to change this mode depending upon the user setting in the Energy Saver control panel.


The 7447a/b and the 7448 share the same bit in HID1 for half clock frequency, DFS_LOW, but the 7448 also has a 1/4 speed setting that no Mac OS control has been made to support, as no Mac ever shipped with a 7448.

As a work a round for this issue with Mac OS 9 on Powerbooks and iBooks, we assert set-dfs-high in Open Firmware on the /cpus/@0 node, before we boot the Mac OS, to have full speed.

Not a real issue with iMac G4's or the Mini, as the bus speeds used didn't support DFS mode that can not use 1/4 multipliers.

Just to say, swamping the chips around won't be a purely hardware issue, some form of user control of DFS will likely be needed, even if it's just an OF script or reminding the user that they need to assert DFS-hi went looking for maximum performance, and asserting the other two DFS modes when looking fro better battery life.

It will be interesting to see how the Energy Saver Control Panel will deal with a 7448 in a portable that came with a 7447a/b, will it panic, will some user options not work or become inaccessible, or will it happily accept the two DFS modes that the 7447a/b support?

Also, the 1.5Ghz ( silent upgrade ) Mini G4 would support DFS mode, and all the heat savings we could get from the Mini would be a big bonus, something to consider when setting up a 7448 as far as reaching for the best clock frequency via the multiplier resistors when doing the physical upgrade, even if that means not setting the maximum clock the 7448 maybe binned to support, is to ensure it's a multiplier that will support DFS modes of the 7448.

The late 2005 G5's have the DFS modes in the bootrom, even tho the G5 CPU's used don't support it, it's a harmless setting on the /cpus/@ nodes, as bus slewing is used on the G5's to reduce power and heat, and it can be set in Open Firmware with the set-slew-high and set-slew-low, or something to that effect, on the proper bus nodes in Open Firmware.

So, it would be interesting to know if iMac's and Mini's that came equipped with 7447a/b also has these words on the /cpus/@0 node, I.E. someone check:

Code:
dev /cpus/@0
words

The iMac never came equipped with the 7447a/b, but then, neither did the G5, and the words are still there, so inquiring minds want to know if any of the 7445 FP iMacs share these words.
 
Last edited:
This version of flashrom can only be run from Linux,

I'm struggling with this part right now. From here:


I can boot from a USB stick and get to a linux command prompt. But then I can't seem to get any data in/out of anything. I can't seem to add the files to the USB stick from Mac OSX, and once booted into linux I can't seem to mount the OSX hard drive to get to the files. I also tried a second USB stick and I can't seem to mount that either.

Is there a simple way to run the flashrom program from a linux boot image?
 
I'm struggling with this part right now. From here:


I can boot from a USB stick and get to a linux command prompt. But then I can't seem to get any data in/out of anything. I can't seem to add the files to the USB stick from Mac OSX, and once booted into linux I can't seem to mount the OSX hard drive to get to the files. I also tried a second USB stick and I can't seem to mount that either.

Is there a simple way to run the flashrom program from a linux boot image?
I believe what I did was use a second flash drive formatted as FAT32 or ExFat, that way it was readable and writeable from both OSs. Then I just booted a Linux live image, copied everything to the Linux RAM disk (for proper UNIX permission support), did the necessary tasks with flashrom, and copied any data I needed back to the FAT32 flash drive. If you aren't able to reach a Linux GUI, then you'll have to mount the volume manually, using "mount /dev/sdXX /mnt/mntpoint".
 
  • Like
Reactions: LightBulbFun
A little bit closer maybe:

flashrom.jpg
 
  • Like
Reactions: DearthnVader
Awhile ago, I built a custom version of flashrom that works with the EEPROMs in these PPC Macs. However, it is not fully tested, so there is a small chance it could brick your machine, in which case you'd have to flash it using a TL866 EEPROM programmer, along with these adapters. This version of flashrom can only be run from Linux, so you'll have to boot a copy of Linux on your machine to dump or flash using flashrom.

If you dump the PowerBook's ROM using flashrom, I can patch it for you.
Any instructions on how to use this to just dump the BootROM?

I'm assuming I need more than just ./flashrom --read

Do I need to specify the EEPROM, or other commands?
 
I believe what I did was use a second flash drive formatted as FAT32 or ExFat, that way it was readable and writeable from both OSs. Then I just booted a Linux live image, copied everything to the Linux RAM disk (for proper UNIX permission support), did the necessary tasks with flashrom, and copied any data I needed back to the FAT32 flash drive. If you aren't able to reach a Linux GUI, then you'll have to mount the volume manually, using "mount /dev/sdXX /mnt/mntpoint".

Ditto thats what I did, just booted the live Ubuntu Mate 16.04 from a USB stick, downloaded your custom version of flash ROM and dumped the BootROM to the Live installs Documents folder and then just zipped it up and copied it to a FAT32 USB

Any instructions on how to use this to just dump the BootROM?

I'm assuming I need more than just ./flashrom --read

Do I need to specify the EEPROM, or other commands?

yah the Mac needs to be in Programmers mode for the EERPOM to be seen

otherwise indeed all you need to do is just ./flashrom --read nameofdump.rom

(or ./flashrom -r)
 
  • Like
Reactions: Jubadub
How do you put a mini or powerbook into programmer's mode? The towers had a button that you hold down when you boot.
 
How do you put a mini or powerbook into programmer's mode? The towers had a button that you hold down when you boot.

Is it when it makes a very long beep? If so, on the mini, you have to press and hold the power button the moment the mini receives power from the power supply, such as when you have the power cable unplugged, and plug it back in, or flip a power button off/on elsewhere (i.e. plug "hubs", switches or whatever they are called).

I assume for the PowerBooks it's the same, but I haven't tried.
 
Of course Powerbooks present a small issue with 7448 upgrades, DFS low is set by the bootrom/open firmware, and the OS is expected to change this mode depending upon the user setting in the Energy Saver control panel.


The 7447a/b and the 7448 share the same bit in HID1 for half clock frequency, DFS_LOW, but the 7448 also has a 1/4 speed setting that no Mac OS control has been made to support, as no Mac ever shipped with a 7448.

As a work a round for this issue with Mac OS 9 on Powerbooks and iBooks, we assert set-dfs-high in Open Firmware on the /cpus/@0 node, before we boot the Mac OS, to have full speed.

Not a real issue with iMac G4's or the Mini, as the bus speeds used didn't support DFS mode that can not use 1/4 multipliers.

Just to say, swamping the chips around won't be a purely hardware issue, some form of user control of DFS will likely be needed, even if it's just an OF script or reminding the user that they need to assert DFS-hi went looking for maximum performance, and asserting the other two DFS modes when looking fro better battery life.

It will be interesting to see how the Energy Saver Control Panel will deal with a 7448 in a portable that came with a 7447a/b, will it panic, will some user options not work or become inaccessible, or will it happily accept the two DFS modes that the 7447a/b support?

Also, the 1.5Ghz ( silent upgrade ) Mini G4 would support DFS mode, and all the heat savings we could get from the Mini would be a big bonus, something to consider when setting up a 7448 as far as reaching for the best clock frequency via the multiplier resistors when doing the physical upgrade, even if that means not setting the maximum clock the 7448 maybe binned to support, is to ensure it's a multiplier that will support DFS modes of the 7448.

The late 2005 G5's have the DFS modes in the bootrom, even tho the G5 CPU's used don't support it, it's a harmless setting on the /cpus/@ nodes, as bus slewing is used on the G5's to reduce power and heat, and it can be set in Open Firmware with the set-slew-high and set-slew-low, or something to that effect, on the proper bus nodes in Open Firmware.

So, it would be interesting to know if iMac's and Mini's that came equipped with 7447a/b also has these words on the /cpus/@0 node, I.E. someone check:

Code:
dev /cpus/@0
words

The iMac never came equipped with the 7447a/b, but then, neither did the G5, and the words are still there, so inquiring minds want to know if any of the 7445 FP iMacs share these words.

I would not worry too much about DFS, since AFAIK its only sets it if the BootROM knows what the CPU is , and even once patched the Mac does not fully know what the 7448

note the iMac calls the 7448 "PowerPC 60?" because although the BootROM is patched not to halt on the unknown CPU, its still not patched to actually recognise the CPU (although in theory that could be patched in too)

(the PowerPC 60? is the name OpenFirmware gives to an Unknown CPU as you can tell from the fact it says 60? it goes back to the earliest PCI Mac days :) )

so in the case of a PowerBook I suspect it wont know that the CPU supports DFS and there for wont enable it etc

(but on the Mac Mini front indeed I have set-dfs-high and set-dfs-low as words, but OS X nor Linux sees the CPU as DFS capable, do wonder if you could manually poke the register and force it DFS low or such)


and on the DLSD, its well documented that it handles power management and CPU speed scaling in OS X differently from all other PowerPC macs


and last night I got a Dump of my DLSD's BootROM to @dosdude1 where he disassembled it and found that the DLSD does look to natively support the 7448 which is very exciting!

this means in theory all we need to do is solder a 7448 on and it should work out of the box with no BootROM patching :)

I had a theory that the DLSD may have supported the 7448 natively because even tho it never shipped with it, it was clear apple was flirting with the idea for example if you look at the schematics of a DLSD they do make reference to the 7448 and its options

so its very cool to see it referenced in the BootROM as well :) which you can see in this chart @dosdude1 put together of the CPU support in the DLSD's BootROM
1613159948104.png





and I have often wondered if the unique Power management of the DLSD in OS X was a remnant of leftover 7448 support and its DFS 1/4th mode,


it is worth noting tho that OS X will not natively boot/recognise on a 7448 like it will on a 7447A, you have to include additional NVRAMRC patches for OS X to boot on a 7448 (which we take manually from the newer-tech firmware patcher as the GigaDesigns one does not apply it)

but I wonder if the DLSD takes care of that automatically or if we will need the NVRAMRC patches still, will be very interesting to see :)
 
How do you put a mini or powerbook into programmer's mode? The towers had a button that you hold down when you boot.
All you have to do is hold the power button down until your hear a beep when you turn it on. The machine can stay plugged in; that does not affect it.
 
  • Like
Reactions: LightBulbFun
Thanks! It looks like I'm ready to attempt the patch:

flashrom2.jpg


Before I try, I wanted to make sure I've got the correct version for a 10,2 mac mini, which is the second version I think...
 

Attachments

  • original.rom.zip
    776.2 KB · Views: 172
Thanks! It looks like I'm ready to attempt the patch:

flashrom2.jpg


Before I try, I wanted to make sure I've got the correct version for a 10,2 mac mini, which is the second version I think...
Interesting, it appears the ROM you have attached actually natively supports the 7448, so you do not need to patch your BootROM! (They must have originally intended this system to have a 7448, similar to the DLSD PowerBook G4 models, as discovered by @LightBulbFun's dump). So you should be able to simply solder on a 7448 and be good to go!
 
Last edited:
Holy sh!7, so 2nd gen "silent upgrade" Mac minis (1.33GHz and 1.5GHz) and the 15" and 17" DLSDs not only do not require special firmware patching, but even the Giga Designs & co. patches are unrequired? Just solder, overclock and go nuts?!

@JoyBed, I hope you have read this! :D

So in the end, the only higher-end G4 Power Macintosh model to give us firmware problems (so far)... was the 1st gen Mac mini G4 (1.25GHz and 1.42GHz) very specifically. That's fascinating.

... Doesn't that mean that the firmware ROM of those silent upgrade minis (PowerMac10,2) can be used to flash the earlier ones (PowerMac10,1) without any other custom patching whatsoever??
 
  • Like
Reactions: Strategia
Holy sh!7, so 2nd gen "silent upgrade" Mac minis (1.33GHz and 1.5GHz) and the 15" and 17" DLSDs not only do not require special firmware patching, but even the Giga Designs & co. patches are unrequired? Just solder, overclock and go nuts?!

I suspect any Mac with a 4.9.X BootROM will work with a 7448 if what we are seeing is indeed native 7448 support

(so as well as the DLSD and Mac Mini PowerMac10,2 that includes the last Gen iBook G4's and the last gen eMac IIRC)

since I have noticed CPU support seems to be tied with BootROM version, like you can tell what CPUs a Mac supports just by its BootROM version

its how I knew I stood good chance when I upgraded my first gen iMac G4 PowerMac4,2 to a 7455 from its fried 7451


because its BootROM is 4.3.5 and I knew there was 7455 support in BootROMs as far back as 4.2.8 (the last BootROM version for the PM3,1-3,4)

I also noticed that most 7447 no suffix Macs have 4.7 BootROM,s and that the iMac G4's with 4.7 BootROMs do indeed include 7447 support even tho they never shipped with one



so I did wonder if the DLSD supports 7448's with its 4.9.x BootROM if other Macs where the same and indeed it looks like it which is really exciting :)

of course this is just theory atm, but hopefully it can be tested in good time
 
  • Like
Reactions: Jubadub
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.