[#5958] Kernel xip failed on bf527-ezkit with FDPIC format
Submitted By: Vivi Li
Open Date
2010-03-11 01:34:44 Close Date
2010-05-21 03:18:40
Priority:
Medium Assignee:
Barry Song
Status:
Closed Fixed In Release:
N/A
Found In Release:
2010R1 Release:
Category:
N/A Board:
N/A
Processor:
BF527 Silicon Revision:
Is this bug repeatable?:
Yes Resolution:
Postponed
Uboot version or rev.:
Toolchain version or rev.:
gcc4.3-2010_Jan_22
App binary format:
N/A
Summary: Kernel xip failed on bf527-ezkit with FDPIC format
Details:
Kernel xip failed on bf527-ezkit with FDPIC format. Shared-flat format is OK.
--
U-Boot 2009.11.1-svn2233 (ADI-2010R1-pre) (Feb 08 2010 - 08:29:37)
CPU: ADSP bf527-0.0 (Detected Rev: 0.2) (parallel flash boot)
Board: ADI BF527 EZ-Kit board
Support: http://blackfin.uclinux.org/
Clock: VCO: 525 MHz, Core: 525 MHz, System: 131.250 MHz
RAM: 64 MB
Flash: 4 MB
In: serial
Out: serial
Err: serial
KGDB: [on serial] ready
Net: Blackfin EMAC
Hit any key to stop autoboot: 5 ^H^H^H 0
bfin> tftpboot 0x1000000 vmImage
Using Blackfin EMAC device
TFTP from server 10.100.4.174; our IP address is 10.100.4.50
Filename 'vmImage'.
Load address: 0x1000000
Loading: *^H#################################################################
#####################
done
Bytes transferred = 1258120 (133288 hex)
bfin> protect off 20040000 201fffff
............................ done
Un-Protected 28 sectors
bfin> erase 20040000 201fffff
............................ done
Erased 28 sectors
bfin> cp.b 0x1000000 20040000 0x133288
Copy to Flash... done
bfin> tftpboot 0x1000000 rootfs.romfs
Using Blackfin EMAC device
TFTP from server 10.100.4.174; our IP address is 10.100.4.50
Filename 'rootfs.romfs'.
Load address: 0x1000000
Loading: *^H#################################################################
#################################################################
########
done
Bytes transferred = 2019328 (1ed000 hex)
bfin> protect off 20200000 203fffff
................................ done
Un-Protected 32 sectors
bfin> erase 20200000 203fffff
................................ done
Erased 32 sectors
bfin> cp.b 0x1000000 20200000 0x1ed000
Copy to Flash... done
bfin> set bootargs root=/dev/mtdblock2 rootfstype=romfs ro console=ttyBF1,57600
bfin> bootm 20040000
## Booting kernel from Legacy Image at 20040000 ...
Image Name: bf527-2.6.33-ADI-2010R1-pre-svn8
Created: 2010-03-11 3:55:59 UTC
Image Type: Blackfin Linux Kernel Image (uncompressed)
Data Size: 1258056 Bytes = 1.2 MB
Load Address: 20040040
Entry Point: 2010a714
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting Kernel at = 2010a714
console [ttyBF1] enabled, bootconsole disabled
Calibrating delay loop... 1013.76 BogoMIPS (lpj=2027520)
Security Framework initialized
Mount-cache hash table entries: 512
Blackfin Scratchpad data SRAM: 4 KB
Blackfin L1 Data A SRAM: 16 KB (16 KB free)
Blackfin L1 Data B SRAM: 16 KB (16 KB free)
Blackfin L1 Instruction SRAM: 48 KB (42 KB free)
Blackfin DMA Controller
ezkit_init(): registering device resources
bio: create slab <bio-0> at 0
Switching to clocksource jiffies
ROMFS MTD (C) 2007 Red Hat, Inc.
msgmni has been set to 124
io scheduler noop registered
io scheduler cfq registered (default)
bfin-otp: initialized
bfin-uart: Blackfin serial driver
bfin-uart.1: ttyBF1 at MMIO 0xffc02000 (irq = 31) is a BFIN-UART
brd: module loaded
physmap platform flash device: 00400000 at 20000000
cmdlinepart partition parsing not available
RedBoot partition parsing not available
Using physmap partition information
Creating 3 MTD partitions on "physmap-flash.0":
0x000000000000-0x000000040000 : "bootloader(nor)"
0x000000040000-0x000000200000 : "linux kernel(nor)"
0x000000200000-0x000000400000 : "file system(nor)"
VFS: Mounted root (romfs filesystem) readonly on device 31:2.
dma_alloc_init: dma_page @ 0x020e6000 - 256 pages at 0x03f00000
--
Follow-ups
--- Barry Song 2010-03-22 06:02:49
The kernel doesn't die, but seems deadlock. use jtag to debug, CTRL + C in gdb
imply hrtimer frequently:
(gdb) c
Continuing.
^C
Program received signal SIGINT, Interrupt.
alarm_setitimer (seconds=1) at kernel/itimer.c:259
259 if (seconds > INT_MAX)
(gdb) c
Continuing.
^C
Program received signal SIGINT, Interrupt.
alarm_setitimer (seconds=18) at kernel/itimer.c:255
255 {
(gdb) c
Continuing.
^C
Program received signal SIGINT, Interrupt.
hrtimer_try_to_cancel (timer=0x201ee80) at kernel/hrtimer.c:938
938 if (hrtimer_is_queued(timer)) {
(gdb) c
Continuing.
^C
Program received signal SIGINT, Interrupt.
0x2006399e in hrtimer_run_queues () at kernel/hrtimer.c:1455
1455 if (gettime) {
(gdb) bt
Let me check what causes deadlock.
--- Barry Song 2010-03-24 05:55:37
It is due to the rootfs image attained on PC.
10.99.29.74:
genromfs on any partition, image works
10.99.29.52/56:
genromfs on any partition, image doesn't work
10.99.29.60:
genromfs on home partition, image doesn't work; genromfs on / partition, image
works.
genromfs on my PC, image works.
--- Mike Frysinger 2010-03-24 18:28:40
are they all using user/genromfs/ for the genromfs utility ?
--- Barry Song 2010-03-24 22:39:59
yes. I will use other filesystem to boot the linux at first and mount romfs
partition to debug. Direct romfs stops me to find the problem.
--- Barry Song 2010-03-26 02:02:35
For those romfs who fail to run, the init will enter deadloop then it looks like
program hang. in fact, it fails to open existing file even in RAM like
/etc/inittab, example:
if (!(f = fopen(initfile, "r")))
return 1;
function will return;
run init in NOR as a subprocess of any process like: gdbserver, time, strace,
the init can run normally.
cp init from NOR to ram and run, it can run normally.
And we tried to disable i/d cache in kernel, compile init statically, with
long-call, adjust async timing, all get same result.
Looks like there is instruction pre-fetch anomaly in async area. If running
init by gdb, it run completely right.
--- Barry Song 2010-03-26 02:12:11
It should be a hardware anomaly in async bank4 instruction pre-fetch. Adjust the
partition and move same romfs image 1MB ahead, all work completely right.
--- Vivi Li 2010-05-19 04:24:21
XIP test case is modified according to this bug. And it can work on bf527-ezkit.
--- Vivi Li 2010-05-21 03:16:26
Close it.
Files
Changes
Commits
Dependencies
Duplicates
Associations
Tags
File Name File Type File Size Posted By
config.config.xip.fdpic application/octet-stream 45380 Vivi Li
config.linux.xip.fdpic application/octet-stream 25219 Vivi Li