
Scott Harper writes:
Scott> I am working with the MPPC8540ADS and I am having problems.
Scott> I have followed the discussion about the MPPC8560ADS and have Scott> tried the top of the CVS tree.
Scott> I have the following undefined. Note I have defined these in Scott> include/asm-ppc/processor.h
Scott> #define SVR_MAJ SVR_MJREV Scott> #define SVR_MIN SVR_MNREV Scott> #define SVR_8540 0x80300010 Scott> #define SVR_8560 0x80700010 Scott> #define SVR_8541 0x80b00010 // Just guesses Scott> #define SVR_8555 0x80f00010 // Just guesses
Scott> #define PVR_85xx_REV1 0x80200010 Scott> #define PVR_85xx_REV2 0x80200020 Scott> #define PVR_85xx 0x80200020
Scott> My problem is that I am stuck looping through at 0xfff81400 Scott> <DataTLBError>
Scott> I have other software working on the board so I am pretty sure Scott> that the board works. My chip is a REV2.
Scott> I would appreciate any help any one has.
Jon> Excellent. So you have applied the patch of 17-June-2004 as well, Jon> right? It is necessary as the top-of-CVS is broken and will not Jon> compile as it is now.
Wolfgang already described the patch when tried to apply it so I doubt it would help. I work with MPC8560ADS and I managed to get working U-Boot from the CVS top with some changes. Maybe some of the changes are included in the patch, I didn't check. It looks like they can be relevant for 8540 too but I haven't got the hardware to verify this assumption. First of all, I changed the memory map to make it consistent with the README, i.e.
#define CFG_CCSRBAR 0xE0000000 #define CFG_LBC_SDRAM_BASE 0xf0000000 #define CFG_PCI_MEM_BASE 0x80000000 #define CFG_PCI_MEM_PHYS 0x80000000 #define CFG_PCI_MEM_SIZE 0x20000000 #define CFG_PCI_IO_BASE 0xe2000000 #define CFG_RAPID_IO_BASE 0xc0000000
Then I noted that TSEC initialisation (tsec_initialize in cpu/mpc85xx/tsec.c) is defined with two parameters but called with one. I just hard-coded the missing parameter (TSEC number) to zero. I also commented out all the version check code in checkcpu function. After making these changes, I was able to compile and run the U-Boot ... until the first saveenv command. A quick look into the configuration file showed that the environment is placed in the middle of the U-Boot's code. I moved the environment to (CFG_MONITOR_BASE - 0x40000) and now it's OK.
A note about building the U-Boot. I don't what tool chain you're using but if it's not Freescale-tweaked GCC 2.95 you probably will have a problem because target CPU type is missing from cpu/mpc85xx/config.mk. I added `-mcpu=8540 -mno-string' to PLATFORM_RELFLAGS.
I could submit a patch cleaning up all this (and many other things) but IMHO preparing a patch against current CVS top does not make sense because Jon is working on a new version of his patch. We'll be just removing each other's code.
Hope this helps,