Hi TomE,
thanks for the useful help and suggestions,
i was some days off, tonight i jumped back on the board.
To answer your question, i am using u-boot as a bootloader/trampoline, just to copy linux into sdram memory and to jump on it. Anyway u-boot enable interrupts for some stuff, as to give a timestamp using a console time command.
Unfortunately, still nothing good.
I did the following tests:
1) Reenabled completely the interrupt request, as original u-boot code. I don't think u-boot have issues here, it is quite stable, anyway, i ported many cpu-related files from another coldfire model, since 5307 was not completely supported, so there can be issues.
This is the original assembly interrupt handler code part:
/* handlers */#define ipush \ move.w #0x2700,%sr; /* disable intrs */ \ subl #60,%sp; /* space for 15 regs */ \ moveml %d0-%d7/%a0-%a6,%sp@; \#define ipop \ moveml %sp@,%d0-%d7/%a0-%a6; \ addl #60,%sp; /* space for 15 regs */ \ rte .globl _exc_handler_exc_handler: ipush movel %sp,%sp@- bsr exc_handler addql #4,%sp ipop
Then int_handler is called, and there, as you suggested, the timer interrupt is cleared correctly.
Anyway, clearing it, generate quite immedately another interrupt, with continuos exceptions:
U-Boot 1.1.6 (May 27 2011 - 00:09:24)CPU: Freescale Coldfire MCF5307 at 90 MHzBoard: Sysam AMCORE BoardDRAM: 16 MBStack set to 00fa1f78Start relocate of code from ffc00400 to 00ff2000Now running in RAM - U-Boot at: 00ff2000*** Unex*** Une*** Unex*** Une
2) i tried to disable the cache, nothing change.
3) i tested completely the sdram, all 16 MB, it is working properly. This ram once setup correctly, without shorts or open pins, works always perfectly.
If you have any other suggestion, it is welcome, really.
Thanks again
angelo