Mar 04, '08 07:30:02AM • Contributed by: Anonymous
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.
- First of all a note about RAM module sizes. Sizes appear to be in hex:
- 10000000 = 256mb
- 20000000 = 512mb
- 40000000 = 1gb
- ... and so forth ...
- Reboot into Open Firmware. Do this by holding Command-Option-O-F just after the system chimes during the boot process.
- 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.
- To display the details about the current memory mappings, type .properties.
- Here's how I mapped my PowerBook's memory modules to address space -- remember that everything left of the ">" is the prompt:
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.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
