There is an option for ld that should control this:
separate-code noseparate-code
Create separate code “PT_LOAD” segment header in the object. This specifies a memory segment that should contain only instructions and must be in wholly disjoint pages from any other data. Don’t create separate code “PT_LOAD” segment if noseparate-code is used.
So maybe the default value changed. If having two segments is important for you , make sure to pass -zseparate-code to ld or -Wl,-zseparate-code to gcc when linking.
Words cannot express how excited I am with each new post in this thread. Thank you all! If there’s anything I can ever do to help, I have tons of Apple PPC machines from all generations laying around.
With noseparate-code and no-rosegment, we still get 2 LOAD segments under Clang. Without them, if memory serves, I believe we’d get 4: RX, R, RW (data), RW (empty/zeroes). So I think there might be something else going on here. We shouldn’t get an RWX section no matter what.
The issue I see with all this is that there is nobody working on new PPC CPUs. For instance the mirari plans to use CPUs from NXP. Who is not going to build new PPC CPUs, they switched to ARM for new designs (https://community.nxp.com/t5/QorIQ/Does-PowePC-QorIQ-line-have-a-future/m-p/943780?profile.language=en)
Sure they will provide PPC CPUs until ~2035, but today CPUs built on a 28nm process are far outdated, what will it look like in 5 years?
I am afraid for the future of Power systems
I’ve been gifted a PowerMac G5 (2 cpus); So now I have a machine I can directly test with and compare. exciting!
Unfortunately the gpu seems broken, I can’t get any video output (which is the condition the previous owner described it as)… or maybe the mainboard battery. Ordered a replacement for it, but not yet for the video card since I’m not quite sure how to diagnose it.
Previous owner said it has 512mb of ram, but there was actually 3,5GB inside. Though the 256+256 pair alone failed the Ram test, so removing that one.
Edit: I actually have a nvidia fx5600eq agp card, but it is not clear to me if there is any way to make this work in the mac
I have a late G5 and a very end of line G4 here, however two and a half decades of poking at code has not given me the skills to figure out much of anything that’d be much use.
Should probably check they both work actually… The G4 I know was in working state when retired, and basically maxed out in terms of RAM (2GB) and I think the biggest, spinning, IDE drive it can support too; plus I added a Mac compatible USB2 card. It was very, very briefly my Logic workstation
Hi,
from what you describe it really sounds more like a GPU issue than the logic board or PRAM battery. If the RAM pairs all check out fine, the G5 should still boot even with less memory installed, so the missing video output is very likely tied to the graphics card.
About the FX5600EQ: that’s most likely a Quadro variant. The problem is that PowerMac G5s only work with cards that have a Mac-compatible firmware. If the card is still in PC firmware, the machine won’t give you video output (and in some cases it won’t even finish booting).
There are two ways forward:
Flash the card with a Mac ROM. This usually requires either an external EEPROM programmer, or a PC with the right tools (nvflash). However, sometimes the Mac ROM is larger than the stock EEPROM on the PC card. In that case, you need to replace the chip with a bigger one before flashing.
Get a Mac-ready AGP card (for example Radeon 9600/9800, or even an Nvidia 6800 Ultra DDL if you find one). That’s usually the quickest way to get a working video output without extra hassle.
So yes, the FX5600EQ can work, but only after you flash it with the right firmware – and possibly swap the EEPROM if it’s too small. Without that step, you’ll just keep getting a black screen
What does a mac compatible firmware entail? Is this related to how openfirmware wants to talk to the gpu?
(How would I obtain one for the nvidia gpu? was there ever a mac compatible model?)
I’m a bit suprised that there is no form of free firmware extending the openfirmware to try and provide support for additional things, if i understood correctly openfirmware is written in forth, so should be extendable.
Actually, as you rightly pointed out, the Mac firmware allows the card to communicate with OF. Since I don’t know your configuration, I can’t tell you which card is the best for your G5 (AGP or PCIe?). In any case, you can find a lot of material online.
PC video cards come with a flash rom containing x86 code for early initialisation and providing the VESA BIOS extensions (plugging into entry points that allow to intercept the x86 INT instruction).
On Macintosh and also Sun Sparc machines, this is replaced by forth bytecode that interfaces with openfnrmware or openboot (it’s not clear if the same bytecode can be used in both cases).
This contains code for early initialization of the card, which is harder to do and less documented than writing a driver. In some cases, drivers will reinitialize the card well enough that the bios/openfirmware interface is not needed and the OS will still get a working display. But if you want to see the openfirmware prompt, that isn’t an option.
So, you have to find a flash dump from a card using the same gpu as yours but that was equiphed with the forth bytecode flash rather than the x86 one. And hope the other parts of the videocard are similar enough.
I have flashed pc Nvidia cards to work in power macs before, so it does indeed work, also I seen to recall using unmodified pc graphics cards, the trick was sure nothing was displayed at boot but as soon as the operating system took over the graphics bios was irrelevant.
Now that I think about it I also have a pair of G5 powermacs, and a good version of that GPU. In my experience the G5 suffered from bad solder joints, I think this was around the time apple started to migrate to lead free solder. Both my G5s suffer from some ailment due to solder joint failures
My G5 has an agp slot that needs a gpu, no pciE. It seems the gpu I have never had any openfirmware compatible firmware, so I guess I will have to find one instead.
reseated the gpu, now have video output, but no OS. I am hoping to get something installed soonish.
For the Haiku port there is one big question though, the G5 has a 64bit processor, but the older machines are all 32bit. Should the Haiku port then target 64bit for G5 and 32bit for the rest or rather 32bit for all of them? Are there other mac computers with a 64bit poc processor? I think even the wii u one is 32bit.