"Subject: Powerbook G4 Disabled Lower Memory Slot Fix
Hi Guys, Here is my solution for the disabled lower memory slot that has plagued many Powerbook users. Unfortunately it is not currently a permanent fix, but I submit this to you in the hope someone will be able to come up with a proper solution. Little testing has been done on this fix, but I have trialed it on my Powerbook with 100% success.
Kind Regards, Jonathan T.
here is a solution to the problem, sort of.
i confirmed my lower slot is not fried by starting up with a single dimm in the lower slot. however it still will not recognize the lower dimm if there is memory in both the upper and lower. this may be different to what others are experiencing so your mileage may vary.
####NOTE THIS INVOLVES THE USAGE OF OPEN FIRMWARE, YOU COULD PERMANENTLY DAMAGE YOUR MACHINE FOLLOWING THIS PRODECURE SO PERFORM AT YOUR OWN RISK, I WILL NOT BE HELD LIABLE####
anyway as i said, my powerbook was physically detecting the ram in open firmware, simply not mapping it to any address space.
logic dictates that if the ram isn't properly mapped to an address, it will not be visible in mac os x. thus the ability to artifically reduce the size of your system ram in open firmware by changing these mappings.
1) first of all a note about module sizes. sizes appear to be in hex.
- 10000000 = 256mb
- 20000000 = 512mb
- 40000000 = 1gb
- and so forth...
you need to use the sizes above to map your ram to relavent address space.
2) next boot into open firmware. do this by holding cmd+opt+o+f just after the boot chime of your macintosh.
3). this will bring you to the white open firmware prompt "0>". from here you need to navigate to the memory device tree by typing:
4) to display the details about the current memory mappings type:
5). this is an example of how i mapped my powerbooks memory modules to address space.
0> 0 encode-int 10000000 encode-int encode+
2> 10000000 encode-int 40000000 encode-int encode+
4> encode+
2> " reg" delete-property
2> " reg" property
0> mac-boot
the first line loads onto the OF stack the location of my first memory module. in this case it starts at address space 0 and is 10000000 (256mb) in size.
the second loads my second memory module onto the stack starting at address 10000000 (directly after the first module) and is 40000000 (1gb) in size. the third line encodes the two lines above together on the stack. the fourth line deletes the current address space mappings (the contents of the " reg" property). the fifth pops my new memory mappings off the stack and onto the " reg" property. finally the last line starts the boot process for your mac. check system profiler and both dimms should be registering now.
6) There are two problems I can see with the use of this method. First of all it is not persistant, when you reboot your machine these mappings will be lost and you will be back to square one. Second, and this is the biggie, why is open firmware not doing its job and mapping both modules properly! is there a problem with it gauging the size of the memory in the lower slot when two modules are installed (i.e. faulty module)? or is this just a firmware bug?
Anybody have any answers? Anybody at all?
-Jonathan T."
When this first came up years ago, I thought it may have been memory module related (years ago a powermac G4 firmware update would not recognized PC100/PC133 dimms that did not have CL3 timing in the SPD for instance - I linked to a 'dimm first aid' util for that here) - but swapping modules IIRC did not help. After the usual voodoo didn't help (reset nvram, PMU, reseat sodimms, etc. there may be an issue with one of the contacts (either in socket or socket contact to logic board). BTW - replacement logic boards are still not cheap - PB G4/1GHz logic board was appx $400, 1.25GHz was appx $450 when I checked today, plus install costs if you can't do it yourself.