A fix of sorts for PowerBooks with lower RAM slot issues

Mar 04, '08 07:30:02AM

Contributed by: Anonymous

Many PowerBook G4 users are experiencing failures of the lower memory slot. I have found a workaround for the problem, though not quite a full solution (as it won't survive a reboot). Note that very little testing has been done on this fix, but I have used it on my PowerBook with 100% success.

First, I confirmed my lower slot is not fried by starting up with a single DIMM in the lower slot, which worked. However, the Mac still will not recognize the lower DIMM if there is memory in both the upper and lower slots. This may be different to what others are experiencing so your mileage may vary.

[robg adds: Note that this hint involves the use of Open Firmware, and you could permanently damage your machine by following this procedure. Proceed at your own risk, as macosxhints.com will not be held liable for any damages you cause to your own machine.

I was on the fence on running this hint, but when I ran the Google search linked above, it seems this is a somewhat widespread issue...and maybe this will help someone get back some currently unusable RAM. Just keep in mind you could also really damage your Mac when working in Open Firmware.

Read on for this user's workaround to the memory slot recognition issue...]

As I said, my PowerBook was physically detecting the RAM in Open Firmware, but 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 OS X. Thus the possibility exists to increase the size of your system RAM in Open Firmware by changing these mappings.

  1. First of all a note about RAM module sizes. Sizes appear to be in hex: You need to use the sizes above to map your RAM to relavent address space.
  2. Reboot into Open Firmware. Do this by holding Command-Option-O-F just after the system chimes during the boot process.
  3. tThis will bring you to the white Open Firmware prompt, 0>. From here, you need to navigate to the memory device tree by typing dev /memory.
  4. To display the details about the current memory mappings, type .properties.
  5. Here's how I mapped my PowerBook's memory modules to address space -- remember that everything left of the ">" is the prompt:
    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
    Here's how those commands work. The first line loads the location of my first memory module onto the Open Firmware stack. In this case, it starts at address space 0 and is 10000000 (256mb) in size. The next line loads my second memory module onto the stack, starting at address 10000000 (directly after the first module), and it's 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 line pops my new memory mappings off the stack and onto the " reg" property. Finally, the last line starts the boot process for my Mac. After it boots, check System Profiler, and both DIMMs should be registering now.
There are two problems I can see with the use of this method. First of all, it is not persistent -- 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 in the first place? 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?

Comments (13)


Mac OS X Hints
http://hints.macworld.com/article.php?story=20080226020954481