Project Home
Project Home
Trackers
Trackers
Documents
Documents
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - QNX TiOMAP-L137 BSP can't run on my evm board: (1 Item)
   
QNX TiOMAP-L137 BSP can't run on my evm board  
I download the BSP bsp-nto640-ti-omap-l137-evm-trunk-201010250724.zip from QNX website. I burned the QNX image to the 
evm SPI flash following the steps listed in release note.
1. add the compress flag in the file src/hardware/startup/boards/omapl137/build as follows:

[image=0xc0008000]
[+compress]
[virtual=armle,raw] .bootstrap = {

2. After U-Boot boots up:

tftp 0xc0008000 ifs-omapl137.raw
sf probe 0
sf erase 0x80000 0x200000
sf write 0xc0008000 0x80000 size_of_the_qnx_ifs
setenv bootcmd 'sf probe 0; sf read 0xc0008000 0x80000
size_of_the_qnx_ifs; go 0xc0008000;'
saveenv

3. Reset the Board. The Board now boots the U-Boot and after the boot delay, it boots up the QNX IFS image. But image 
boot hang. The following messages are displayed:

Booting with Modem UBL
Device OPP (300MHz, 1.2V)

U-Boot 1.3.3 (Jun 28 2012 - 13:59:37)

I2C:   ready
DRAM:  64 MB
In:    serial
Out:   serial
Err:   serial
ARM Clock : 300000000 Hz
More than one PHY detected.
Hit any key to stop autoboot:  0 
4096 KiB W25Q32 at 0:0 is now current device
## Starting application at 0xC0008000 ...
CPU Frequency is 300000000 Hz
CPU0: Dcache: 512x32 WB
CPU0: Icache: 512x32
CPU0: 41069265: arm926 rev 5 300MHz
network0, ivec idx 0 == 34
network0, ivec idx 1 == 35
uart0, ivec idx 0 == 25
uart1, ivec idx 0 == 53
uart2, ivec idx 0 == 61
spi0, ivec idx 0 == 20
spi1, ivec idx 0 == 56
i2c0, ivec idx 0 == 15
i2c1, ivec idx 0 == 51
usb0, ivec idx 0 == 58
usb1, ivec idx 0 == 59
usb1, ivec idx 1 == 60
rtc0, ivec idx 0 == 19
gpio0, ivec idx 0 == 42
gpio0, ivec idx 1 == 43
gpio0, ivec idx 2 == 44
gpio0, ivec idx 3 == 45
gpio0, ivec idx 4 == 46
gpio0, ivec idx 5 == 47
gpio0, ivec idx 6 == 48
gpio0, ivec idx 7 == 49
timer0, ivec idx 0 == 21
timer0, ivec idx 1 == 22
wdog0, ivec idx 0 == 23
wdog0, ivec idx 1 == 24
Qtime->Interrupt: 21
Qtime->Timer_scale: -15
Qtime->Cycles_Per_Sec: 24000000
Qtime->Timer_Rate: 41666666

When I dig into the problem, I found the initialization hang in:
main.c 
    ->init_system_private()                                                      -- init_system_private.c
        -> load_ifs(ifs_paddr)                                                     -- load_ifs.c
            -> uncompress(comp, ifs_paddr, src)                        -- uncompress.c
                  -> uncompress_ucl(dst, src)                                -- uncompress_ucl.c
            	for(;;) {
            		len = (*src++ << 8);
            		len += (*src++);
            		if(len == 0) break;
            		status = ucl_nrv2b_decompress_8(src, len, dst, &out_len, NULL);
            		if(status != 0) {
            			crash("fail");
            		}
            		dst += out_len;
            		src += len;
            	}

Anyone has ideas how this happens? Thanks a lot,

Yaohua