2008-04-02 14:07:31 Board hangs at "Starting kernet at = 1000"
blue hash (UNITED STATES)
Message: 53560 Hello,
I'm trying to run the latest version of uClinux on a BF537 board.
u-boot is 1.1.3.
Question: What's the first thing that u-boot does when it says "starting kernel at 0x1000"
My board seems to be hanging.
Other than the "early printk", is there any other way. I did read throug the other posts, but
couldnt get a solution.
Thanks.
-----------------------------------------------------------------------------
## Booting image at 00800000 ...
Image Name: uClinux Kernel and ext2
Created: 2008-04-01 21:41:22 UTC
Image Type: Blackfin Linux Kernel Image (gzip compressed)
Data Size: 2328130 Bytes = 2.2 MB
Load Address: 00001000
Entry Point: 00001000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
Starting Kernel at = 1000
QuoteReplyEditDelete
2008-04-02 14:16:10 Re: Board hangs at "Starting kernet at = 1000"
Mike Frysinger (UNITED STATES)
Message: 53561 review:
http://docs.blackfin.uclinux.org/doku.php?id=post_mortem
QuoteReplyEditDelete
2008-04-02 15:40:36 Re: Board hangs at "Starting kernet at = 1000"
Vitja Makarov (RUSSIAN FEDERATION)
Message: 53563 May be your version of u-boot is too old? I have had similar problem once.
QuoteReplyEditDelete
2008-04-02 18:20:27 Re: Board hangs at "Starting kernet at = 1000"
blue hash (UNITED STATES)
Message: 53570 I'm trying to upgrade my bersion of u-boot to 1.1.6 from 1.1.3 to get past the problem in post 1)
My toolchain, uClinux and u-boot are all the latest 2008 releases
I get this error whn compiling u-boot:
make[1]: Entering directory `/home/bwiuser/Desktop/u-boot-1.1.6-2008R1/examples'
bfin-uclinux-gcc -g -Os -ffixed-P5 -fomit-frame-pointer -mcpu=BFIN_CPU -D__KERNEL__ -DTEXT_BASE=0x00FC0000 -I/home/bwiuser/Desktop/u-boot-1.1.6-2008R1/include -fno-builtin -ffreestanding -nostdinc -isystem /opt/uClinux/bfin-uclinux/lib/gcc/bfin-uclinux/4.1.2/include -pipe -DCONFIG_BLACKFIN -I/home/bwiuser/Desktop/u-boot-1.1.6-2008R1 -Wall -Wstrict-prototypes -c -o hello_world.o hello_world.c
cc1: error: -mcpu=BFIN_CPU is not valid
-mcpu=BFIN_CPU -> Most of the replies here for this kind of error seem to be due to incompatible releases. But I already have the same releases.
is there a way to change it to bf537-0.2, I cant seem to find the line in the top level makefile.
Thanks for the replies.
QuoteReplyEditDelete
2008-04-02 18:42:05 Re: Board hangs at "Starting kernet at = 1000"
Mike Frysinger (UNITED STATES)
Message: 53571 you need to update your board config file
QuoteReplyEditDelete
2008-04-02 18:48:17 Re: Board hangs at "Starting kernet at = 1000"
blue hash (UNITED STATES)
Message: 53572 Just an update, I solved the u-boot error by putting
#define BFIN_CPU bf537-0.2
in my boards .h file.
The reason it wasnt there was because, I just added the new board files
to u-boot 1.1.6
Although I do need more help.
make[1]: Entering directory `/home/bwiuser/Desktop/u-boot-1.1.6-2008R1/board/bf537-wrun'
bfin-uclinux-gcc -g -Os -ffixed-P5 -fomit-frame-pointer -mcpu=bf537-0.2 -D__KERNEL__ -DTEXT_BASE=0x00FC0000 -I/home/bwiuser/Desktop/u-boot-1.1.6-2008R1/include -fno-builtin -ffreestanding -nostdinc -isystem /opt/uClinux/bfin-uclinux/lib/gcc/bfin-uclinux/4.1.2/include -pipe -DCONFIG_BLACKFIN -I/home/bwiuser/Desktop/u-boot-1.1.6-2008R1 -Wall -Wstrict-prototypes -c -o bf537-wrun.o bf537-wrun.c
bf537-wrun.c: In function ‘do_bootldr’:
bf537-wrun.c:60: error: ‘_BOOTROM_BOOT_DXE_FLASH’ undeclared (first use in this function)
bf537-wrun.c:60: error: (Each undeclared identifier is reported only once
bf537-wrun.c:60: error: for each function it appears in.)
Where do I find _BOOTROM_BOOT_DXE_FLASH? Thanks
QuoteReplyEditDelete
2008-04-02 19:04:20 Re: Board hangs at "Starting kernet at = 1000"
Mike Frysinger (UNITED STATES)
Message: 53573 you copied an older board file without actually customizing it for your needs. dont declare local versions of bootldr() in your code.
QuoteReplyEditDelete
2008-04-03 10:06:06 Re: Board hangs at "Starting kernet at = 1000"
blue hash (UNITED STATES)
Message: 53603 Hello,
I just realised the no. of differences between 1.1.3 and 1.1.6 versions of u-boot.
So just copying the board configs wouldnt work.
In 1.1.3, according to the svn, there was a flash.c driver
In 1.1.6, I see only the spi_flash.c. I have a parallel NOR flash on the board,29W320EB
Has it been placed somewhere else.?
QuoteReplyEditDelete
2008-04-03 10:24:52 Re: Board hangs at "Starting kernet at = 1000"
Mike Frysinger (UNITED STATES)
Message: 53605 the flash.c driver isnt needed as the common CFI driver works fine
QuoteReplyEditDelete
2008-04-15 10:22:00 Re: Board hangs at "Starting kernet at = 1000"
blue hash (UNITED STATES)
Message: 54278 Thanks for the help.
I got u-boot up to the the latest version. uClinux is also at 2008.
The kernel crashes on uncompressing. Is it probably because of wrong SRAM/flash initilization.
I tried doing a post mortem on it, but md 0x.........., give all 0's
bfin>bootm 0x800000
## Booting image at 00800000 ...
Image Name: uClinux Kernel and ext2
Created: 2008-04-15 13:49:42 UTC
Image Type: Blackfin Linux Kernel Image (gzip compressed)
Data Size: 1530656 Bytes = 1.5 MB
Load Address: 00001000
Entry Point: 00001000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
Starting Kernel at = 1000
Ack! Something bad happened to the Blackfin!
SEQUENCER STATUS:
SEQSTAT: 00000021 IPEND: fc00c4 SYSCFG: 0032
HWERRCAUSE: 0x0
EXCAUSE : 0x21
physical IVG6 asserted : <0x00fc0578> { _evt_default + 0x0 }
physical IVG7 asserted : <0x00fc0578> { _evt_default + 0x0 }
RETE: <0x01018047> { ___smulsi3_highpart + 0x411eb }
RETN: <0xa2881994> { ___smulsi3_highpart + 0xa18aab38 }
RETX: <0xffa0083c> { __etext_l1 + 0x80c }
RETS: <0x00fc7ef0> { _do_bootm + 0x344 }
PC : <0x00fc00c4> { _start + 0xc4 }
DCPLB_FAULT_ADDR: <0x00000312> /* unknown address */
ICPLB_FAULT_ADDR: <0xffa0083c> { __etext_l1 + 0x80c }
PROCESSOR STATE:
R0 : ffb00000 R1 : 0017abf4 R2 : 0017ab64 R3 : fffffff9
R4 : 00000002 R5 : 00800000 R6 : 00000527 R7 : 00000001
P0 : ffb00000 P1 : 00fced80 P2 : 0017abf4 P3 : 00f9bec8
P4 : 00ae767c P5 : 00f9c000 FP : 00fd9498 SP : 00f9ba04
LB0: 00fd6e24 LT0: 00fd6e18 LC0: 00000000
LB1: 00fd1162 LT1: 00fd115c LC1: 00000000
B0 : 00000023 L0 : 00000000 M0 : 0000003f I0 : 00000000
B1 : 00fa8768 L1 : 00000000 M1 : 0000000f I1 : 00fa1530
B2 : 00fa9d20 L2 : 00000000 M2 : b664f13a I2 : 00000314
B3 : 000001ff L3 : 00000000 M3 : 00fd795c I3 : 00000007
A0.w: fffb34a2 A0.x: ffffffff A1.w: ffffeb7f A1.x: ffffffff
USP : 86e7cf1e ASTAT: 02002000
Hardware Trace:
0 Target : <0x00fc0a44> { _bfin_panic + 0x0 }
Source : <0x00fc0c14> { _trap_c + 0x194 }
1 Target : <0x00fc0c0a> { _trap_c + 0x18a }
Source : <0x00fc0a9a> { _trap_c + 0x1a }
2 Target : <0x00fc0a80> { _trap_c + 0x0 }
Source : <0x00fc051e> { _trap + 0x56 }
3 Target : <0x00fc04c8> { _trap + 0x0 }
Source : <0xffa0083a> { __etext_l1 + 0x80a }
4 Target : <0xffa00838> { __etext_l1 + 0x808 }
Source : <0x00001014> /* unknown address */
5 Target : <0x00001000> /* unknown address */
Source : <0x00fd479a> { _do_bootm_linux + 0x96 }
6 Target : <0x00fd4790> { _do_bootm_linux + 0x8c }
Source : <0x00fc01f6> { _dcache_disable + 0x1e }
7 Target : <0x00fc01d8> { _dcache_disable + 0x0 }
Source : <0x00fd478c> { _do_bootm_linux + 0x88 }
8 Target : <0x00fd478c> { _do_bootm_linux + 0x88 }
Source : <0x00fd6d24> { _flush_data_cache + 0x44 }
9 Target : <0x00fd6d14> { _flush_data_cache + 0x34 }
Source : <0x00fd6d0a> { _flush_data_cache + 0x2a }
10 Target : <0x00fd6cfe> { _flush_data_cache + 0x1e }
Source : <0x00fd6d18> { _flush_data_cache + 0x38 }
11 Target : <0x00fd6d14> { _flush_data_cache + 0x34 }
Source : <0x00fd6d0a> { _flush_data_cache + 0x2a }
12 Target : <0x00fd6cfe> { _flush_data_cache + 0x1e }
Source : <0x00fd6d18> { _flush_data_cache + 0x38 }
13 Target : <0x00fd6d14> { _flush_data_cache + 0x34 }
Source : <0x00fd6d0a> { _flush_data_cache + 0x2a }
14 Target : <0x00fd6cfe> { _flush_data_cache + 0x1e }
Source : <0x00fd6d18> { _flush_data_cache + 0x38 }
15 Target : <0x00fd6d14> { _flush_data_cache + 0x34 }
Source : <0x00fd6d0a> { _flush_data_cache + 0x2a }
Please reset the board
### ERROR ### Please RESET the board ###
QuoteReplyEditDelete
2008-04-15 10:33:03 Re: Board hangs at "Starting kernet at = 1000"
Mike Frysinger (UNITED STATES)
Message: 54279 the kernel hasnt finished initializing. look at the memory in question:
Source : <0x00001014> /* unknown address */
5 Target : <0x00001000> /* unknown address */
as well as the exception cause:
EXCAUSE : 0x21
QuoteReplyEditDelete
2008-04-15 12:52:43 Re: Board hangs at "Starting kernet at = 1000"
Robin Getz (UNITED STATES)
Message: 54286 Mike:
Isn't the "Ack! Something bad happened to the Blackfin!" actually coming from U-Boot? Meaning that if the kernel was compiled with early printk, has not even started head.S yet - which makes sense looking at the trace.
5 Target : <0x00001000> /* unknown address */
Source : <0x00fd479a> { _do_bootm_linux + 0x96 }
doesn't look right - Neither does:
Load Address: 00001000
Entry Point: 00001000
Either the uImage that was created got messed up somehow, or U-boot is not reading the uImage properly.
Blue:
What vendor/board are you configuring for in the uClinux-dist?
If you do a "make image", you should see a lines near the end that looks like:
Image Name: Linux-2.6.24.4-ADI-2008R2-pre-sv
Created: Tue Apr 15 12:51:22 2008
Image Type: Blackfin Linux Kernel Image (gzip compressed)
Data Size: 5180904 Bytes = 5059.48 kB = 4.94 MB
Load Address: 0x00001000
Entry Point: 0x00178000
Kernel: arch/blackfin/boot/vmImage is ready
Can you post yours?
-Robin
QuoteReplyEditDelete
2008-04-15 13:51:28 Re: Board hangs at "Starting kernet at = 1000"
Mike Frysinger (UNITED STATES)
Message: 54288 yes and no ... the panic message is from u-boot, but u-boot has already jumped into the kernel. the kernel just didnt execute far enough to replace u-boot's handlers.
the trap address you highlight looks perfectly valid from u-boot's point of view. the uimage declared the entry point to be 0x1000, so that's where it jumped.
QuoteReplyEditDelete
2008-04-15 15:48:41 Re: Board hangs at "Starting kernet at = 1000"
blue hash (UNITED STATES)
Message: 54290 Here's it,
Image Name: uClinux Kernel and ext2
Created: Tue Apr 15 15:33:27 2008
Image Type: Blackfin Linux Kernel Image (gzip compressed)
Data Size: 1539369 Bytes = 1503.29 kB = 1.47 MB
Load Address: 0x00001000
Entry Point: 0x00001000
The board is a custom bf537 board , similar to the stamp with 4Mb parallel NOR flash.
I was using configs for the custom board which were based on uClinux(2006).
I just copied the custom vendor directories from 2008 to 2008.
I tried to load uClinux(2008) which was working for the stamp board onto it( with a little modifications)
and it booted into uClinux.
So you can close this thread. I have another problem, but i'll open another thread for it.
Thanks for your help. If you need any more info about the above problem, let me know.
QuoteReplyEditDelete
2008-04-16 09:44:30 Re: Board hangs at "Starting kernet at = 1000"
Robin Getz (UNITED STATES)
Message: 54335 Blue:
I think this is wrong.
You should check your vendor files - we updated the way things are made, which requires some tweaks to the vendors Makefile (we updated all the files in svn/the release). If you are using your own out of tree files - they need to be updated before they can be used.
-Robin
QuoteReplyEditDelete
2008-04-16 09:46:47 Re: Board hangs at "Starting kernet at = 1000"
blue hash (UNITED STATES)
Message: 54336 Thanks Robin,
I'm using the stock BF537 release(2008) and moving back bit by bit customizing it for my board.
QuoteReplyEditDelete
2008-04-16 10:24:44 Re: Board hangs at "Starting kernet at = 1000"
Robin Getz (UNITED STATES)
Message: 54340 Blue:
Have a look at:
the addition of ENTRY is the key you are missing in your vendor Makefile (I think)
-Robin