
I found a first problem in the trap_init function. Here is the situation before the instruction rlwinm r9, r7, 0, 18, 31:
r7 = 0x7fce100 CFG_MONITOR_LEN = 200*1024
So r9, that contains the target address, is set to 0x2100 and consequently the vectors are placed starting from there. If change CFG_MONITOR_LEN to 192*1024 they are copied to the right place (0x100, anybody corrects me if I'm wrong) and the PIT interrupt is ok.
Wolfgang?
Nevertheless the problem with Ethernet still occurs:
### main_loop: bootcmd="tftpboot 0x400000 vmlinux.PPCBoot" Hit any key to stop autoboot: 0 ENET Speed is 10 Mbps - HALF duplex connection ARP broadcast 1
With Ethereal I monitor the LAN traffic and I can see that the PC correctly answers to the ARP request. The SDRAM controller should be ok because I imported the initialization code from OpenBIOS. I suspect there are some slight differences in the Ethernet controller across the 405xx processors (I use a 405EP). I think I should investigate the Ethernet code. Where do you suggest me to start?
I agree, SDRAM should be OK!
If you enable the "irq" command (CFG_CMD_IRQ), do you see any irq's incrementing at all?
This is what I see on a PPC405GP(r):
=> tftp 100000 /tftpboot/pImage ENET Speed is 100 Mbps - FULL duplex connection ARP broadcast 1 TFTP from server 10.0.18.190; our IP address is 10.0.18.160 Filename '/tftpboot/pImage'. Load address: 0x100000 Loading: ################################################################# ################################################################# ########## done Bytes transferred = 712344 (ade98 hex) => irqs
Interrupt-Information: Nr Routine Arg Count 09 01fc3f84 00000000 0 10 01fc3f84 00000000 0 11 01fc3f84 00000000 0 12 01fc3f84 00000000 1394 13 01fc3f84 00000000 0 14 01fc3f84 00000000 0 15 01fc3f84 00000000 0
Sorry, but I haven't digged into the PPC405EP this deep. It could be, that there is a difference in the implementation. Please check the above irq test at first...
Best regards, Stefan.