[U-Boot-Users] MPC8540 FEC/TSEC -Issues while enabling both controllers

Hi all..
I have some issues in Uboot while enabling both the controllers FEC/TSEC in MPC8540 based board..
Individually they are working fine..but when enabled together , both are not working.
Now im trying to analyze why they are not working ?
If anyone can provide me details to enable both it would save some time for me.

What ppc405gp board is cheapest, and have minimum hardware?
Or more excactly, which board DO NOT have real time clock and preferably no fpga. and if the ram is integrated with no upgrade support it would be perfect.
I want to use its code as referense. if the board have something more then it is hard to remove.
And maybe someone know is it posible tu run linux without RTC?

In message 001a01c496d5$c2873da0$030aa8c0@t you wrote:
What ppc405gp board is cheapest, and have minimum hardware?
Strange request.
I want to use its code as referense. if the board have something more then it is hard to remove.
I think you misunderstand. It is MUCH easier to remove support for things (just disable the config options) than adding something.
And maybe someone know is it posible tu run linux without RTC?
Sure. Linux does not need any RTC.
Best regards,
Wolfgang Denk

Hi Tadas,
What ppc405gp board is cheapest, and have minimum hardware?
DO you what to by one or only use the U-Boot port as a starting point for your board?
Or more excactly, which board DO NOT have real time clock and preferably no fpga. and if the ram is integrated with no upgrade support it would be perfect.
I want to use its code as referense. if the board have something more then it is hard to remove.
Hmmm. I find it pretty easy to remove something from U-Boot. I would suggest to start with the CPCI4052 and remove all stuff you don't need (FPGA, RTC, etc.).
And maybe someone know is it posible tu run linux without RTC?
Yes. We do it on some of our boards.
Best regards, Stefan

What ppc405gp board is cheapest, and have minimum hardware?
DO you what to by one or only use the U-Boot port as a starting point for your board?
I have most simple ppc405gp board and need to port bootloader, and linux to it. there is no aditional hardware just integrated 8mb ram cpu, ethernet, and one pci slot. so I should remove everything from any other board code to port it.
Or more excactly, which board DO NOT have real time clock and preferably no fpga. and if the ram is integrated with no upgrade support it would be perfect.
I want to use its code as referense. if the board have something more then it is hard to remove.
Hmmm. I find it pretty easy to remove something from U-Boot. I would suggest to start with the CPCI4052 and remove all stuff you don't need (FPGA, RTC, etc.).
FPGA , RTC is easy to remove from u-boot, but I dont know how remove them from linux. and RTC seems to be vital part to run linux. (I found somewhere that it is nesecary to calculate bogomips) so probably some special driver is nesecary.
And maybe someone know is it posible tu run linux without RTC?
Yes. We do it on some of our boards.
OK, i will try to use CPCI4052 code.

Hi Tadas,
I have most simple ppc405gp board and need to port bootloader, and linux to it. there is no aditional hardware just integrated 8mb ram cpu, ethernet, and one pci slot. so I should remove everything from any other board code to port it.
Yes!
Or more excactly, which board DO NOT have real time clock and preferably no fpga. and if the ram is integrated with no upgrade support it would be perfect.
I want to use its code as referense. if the board have something more then it is hard to remove.
Hmmm. I find it pretty easy to remove something from U-Boot. I would suggest to start with the CPCI4052 and remove all stuff you
don't need
(FPGA, RTC, etc.).
FPGA , RTC is easy to remove from u-boot, but I dont know how remove them from linux. and RTC seems to be vital part to run linux. (I found somewhere that it is nesecary to calculate bogomips) so probably some special driver is nesecary.
No, not needed at all! Just configure your kernel without RTC!
Best regards, Stefan

Hello, I still have lots of problems with my board. ppc405gp board. 8mb ram, 1mb flash, 1 pci , ethernet. Mostly with linux, but also with bootloader.
first problem with bootloader: (this is default code for all ppc405 boards ) ---------------------------------- _start: addi r4,r0,0x0000 // second command executed after reset mtspr sgr,r4 mtspr dcwr,r4 mtesr r4 /* clear Exception Syndrome Reg */ mttcr r4 /* clear Timer Control Reg */ mtxer r4 /* clear Fixed-Point Exception Reg */ mtevpr r4 /* clear Exception Vector Prefix Reg */ addi r4,r0,0x1000 /* set ME bit (Machine Exceptions) */ oris r4,r4,0x0002 /* set CE bit (Critical Exceptions) */
// mtmsr r4 /* change MSR */ this command creates exception 0x200 (machine check exception) so I need to comment it out, anyway it still works without it.
addi r4,r0,(0xFFFF-0x10000) /* set r4 to 0xFFFFFFFF (status in the */ /* dbsr is cleared by setting bits to 1) */ mtdbsr r4 /* clear/reset the dbsr */ ........--------------------------------------- how that can happen? Seems everybody else is executing this code without problems
***
Another problem is with MMU on linux. cpu crashes almost immediately at start. when linux atempts to initialize MMU
.text:C0000018 turn_on_mmu: .text:C0000018 lis r0, 2 # 0x21232 .text:C000001C ori r0, r0, 0x1232 # 0x21232 .text:C0000020 mtsrr1 r0 .text:C0000024 lis r0, (start_here >> 16) # 0xC0002250 .text:C0000028 ori r0, r0, (start_here & 0xFFFF) .text:C000002C mtsrr0 r0 .text:C0000030 rfi
then it should jump to start_here function
text:C0002250 start_here: .text:C0002250 lis rtoc, (init_task >> 16) # 0xC00D7150 .text:000000200 ....... and and here it crashes, "Machine check exception" hapens. looks like mmu is initialized incorectly, or it attempts to execute from nonexsisting memory, I can view that virtual memory until first command execution, and then it disaperars. seems cpu goes into r
I cant understand this, seems no board dependent code is even executed, averything happerns very early in first attempt to initilaize MMU (but if mmu is initialized from exeption handler code it works.) everybody else is also runnig that code without problems, because it is same on all linux kernels. I have tested 2 boards and all behave in same way. What can cause such behavior? Or these cpu have some defect?

In message 008d01c4986d$8293fb90$030aa8c0@t you wrote:
first problem with bootloader:
...
Seems everybody else is executing this code without problems
Indeed. Are you sure your CPU can read the flash contents without problems?
Another problem is with MMU on linux. cpu crashes almost immediately at start. when linux atempts to initialize MMU
How do you know? Are you using a JTAG debugger? Which one/ Does it understand to use virtual addresses, and is it configured correctly for this?
What can cause such behavior? Or these cpu have some defect?
I guess you are using an inappropriate and/or misconfigured tool. Additionally, there might be the typical RAM problems you can read about in at least 9 out of 10 postings on tis list.
Best regards,
Wolfgang Denk

Second problem solved, seems cpu realy behave strangely, I placed ram initialization at the very begining of bootloader and now it works. also there was some incorect timing but it is not likely to cause problem, (becase fixing that did not helped) ram just must be initialized before any other peripherials (dont know why but now it works ok) at first the first thing initilalized was UART.
first problem with bootloader: ... Seems everybody else is executing this code without problems
Indeed. Are you sure your CPU can read the flash contents without problems?
The reson of this one is till unknown, but it does not matter, anyway.
I also found, that some time ago this instruction also was removed on ppcboot so someone had this problem too. http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/boot/ppcboot/ppc4xx/Attic/s...
#if 1 /* test-only */ addi r4,r0,0x1000 // set ME bit (Machine Exceptions) oris r4,r4,0x0002 // set CE bit (Critical Exceptions) mtmsr r4 // change MSR #else /* problems in rom2ram (see test-only in rom2ram!!!) */ addi r4,r0,0x0000 // dont set (!!!) ME bit (Machine Exceptions) oris r4,r4,0x0002 // set CE bit (Critical Exceptions) mtmsr r4 // change MSR #endif as you see it is same instruction.
It would be interesting to know why this happens.
participants (4)
-
Stefan Roese
-
Sudhakar
-
Tadas
-
Wolfgang Denk