Oh! This seems to be the first mention you're using a PPC 4xx! Which one?
two boards, 405 and 440. At the moment I am working with the 405 one.
Do you have an MMU? An FPU?
TLB: yes
FPU: no, full kernel FPU emulation
The FPGA is memory mapped and offers fixedpoint in hw, but it's a raw hack at the moment
It seems Debian and Ubuntu had their last releases for 32 bit PPC Macs in 2015 (Debian 8, Ubuntu 14.04)
I have my custom builder, I can build 2021 stage4, even for PowerMac-G4 (PPC7450).
Gcc has special flags for 40x, but basically the PPC4xx-stage is profiled like a PPC750-softfloat stage.
4xx is "BookE"
yes, I forced u-boot to start the kernel with
- cache completely invalidated and flushed
- TLB disabled, so the kernel-image can be copied to 0x0000.0000
- PCI pre-programmed with all the devices forced into PCI native mode
- serial0 programmed in polling mode so it can output useful information
Wish I hadn't sold my dual 2.0 G5.
G5 is profiled as PPC64-BE. Its code is different; nowadays PPC64 is well supported for IBM POWER9 and POWER10.
PPC32 has several "platforms" of reference. in my case it's not "Apple" but rather AMCC and Xilinx, but unfortunately they dropped the support years ago.
The problem I have seems related to the Device Tree. There was no DTB in kernel 2.4 when we purchased the boards, DTS was introduced years later (>= k2.6.26), and it has always been a plague.
The 2.6.26 kernel was also the first "hybrid" kernel with both the "arch/ppc" and "arch/powerpc" branches merging into the latest "arch/powerpc". And that has always meant problems, loss of files and features (e.g. all the GPIO support for 4xx stopped to work, and got removed), loss of support and regression.
kernel-4.11.0: <7MB, boots
kernel-4.14.246: <7MB, boots, of_irq_parse_pci fails
kernel-4.14.99: <7MB, boots, of_irq_parse_pci fails
kernel-4.4.199: <7MB, boots, of_irq_parse_pci fails
kernel-5.2.1: >8MB doesn't boot
kernel-5.2.1: <8MB with linkaddr=0x0090.000 doesn't boot
kernel-5.2.1: <8MB with linkaddr=0x0080.000 boots, of_irq_parse_pci fails
kernel-5.2.1: <8MB boots, of_irq_parse_pci fails
kernel-5.5.1: <8MB boots, of_irq_parse_pci fails
kernel-5.7.19: <8MB boots, of_irq_parse_pci fails
kernel-5.8.0: <8MB doesn't boot (4xx support dropped)
(edit: all tests performed with tftpload 0x0400.0000 (64MB))
I can boot modern v5 kernels (<= k5.8.0), but there is a serious problem with the maximum bootable kernel size due to a "bug" somewhere with the boot-wrapper, and it somehow looks to be related to the DTB stuff.