OMAP35xx Boot failure

2010-04-09 Thread Jerry Johns
Hello all, 
    I've got a custom OMAP3503 board with 256Mbytes of LPDDR memory 
(single die, x32-bit) that i've got working with x-loader and u-
boot. However, when i load the Linux kernel (2.6.32 git), it randomly produces 
the following errors: 

1) Hangs midway through the "Uncompressing Linux " stage, and this is 
arbitrary and random on different attempts 
2) If it ever does go through, it sometimes displays "invalid compressed format 
(err = 2)" or "crc error", "incomplete literal tree" and says "System halted" 
3) If i disable caching in the kernel (in arch/arm/boot/compressed.S, line 233 
"bl cache_on"), it at least completes the Uncompressing stage fine and proceeds 
to print "... done, booting the kernel.", at which point it does not boot 
(most likely since i disabled the caching) 
4) If i reset the board (not power-cycle) after the board hang above, and do a 
crc32 check on the kernel image in DDR memory (this is 
possible since DDR2 memory contents do not get changed after a soft- reset), it 
matches the CRC32 that i have calculated manually on the 
kernel image. This shows that the main kernel image (from which it is 
uncompressed) is still intact. 

I've run my own DDR2 tester using the ROM bootloader, and done address/bus 
stuck-at testing as well as complete psuedo-random data testing on the full 
256MByte memory. They all check out fine. The only difference i have from the 
BeagleBoard is that i'm using the CUS 0.65mm packaged version of the OMAP3503 
as well as a non-POP LPDDR memory with single die (not dual die in the Beagle 
Board) - hence, i had to modify the DDR MCFG register for 14-bit RAS width and 
256MByte CS space to get this to work properly. 
I've also verified (using CRC checks) that the page tables are intact and 
correct before/after the errors happen (full 0x4000 sized page table)

If you guys have any ideas, please do help as i'm at my wits end! 

Thank you kindly, 
Jerry 

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


OMAP3 <-> FPGA boot-delay

2009-10-19 Thread Jerry Johns
Hello all,
    I'm not exactly sure where to ask this, but I figured it would be 
on a mailing list that is linux specific, with a slight bias towards the OMAP:

I have an OMAP3530 mated to an FPGA over the GPMC interface found on that chip. 
I have an interrupt controller on the FPGA (and mapped into virtual IRQs in 
Linux through irqchip and chained handlers) and a few UARTs in it as well - the 
UART is specifically chosen to be 16550 compatible so that it can directly be 
mapped as a platform device into the 8250 serial platform driver. This way, I 
avoid having to write a serial driver, and it is directly compatible with that 
in Linux.

The FPGA currently is programmed by a separate device on boot, and that process 
can take up to 20 seconds - hence, the interrupt layer and serial driver in 
Linux cannot really be loaded until the FPGA has completed boot. At the same 
time, I do not want to hold-off booting Linux till the FPGA is alive.

What is the correct solution to this? Should I just load the interrupt and 
serial drivers anyways (and not use them till the FPGA is up) or should I defer 
loading them? If the latter is a better idea, how do I do a deferred 
hotplug-style serial device connection? Can platform_device_register happen 
much later in the boot lifecycle?

Any ideas are much appreciated!

Thanks,
Jerry Johns
Design Engineer
Nuvation Research Corp - Canada
Tel: (519) 746-2304 ext. 221
www.nuvation.com

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html