[#5192] run l2 app on bf548 ezkit frequent fails
Submitted By: Mingquan Pan
Open Date
2009-06-02 05:20:59
Priority:
Medium Assignee:
Mingquan Pan
Status:
Open Fixed In Release:
N/A
Found In Release:
2010R1 Release:
Category:
N/A Board:
N/A
Processor:
BF548 Silicon Revision:
Is this bug repeatable?:
Yes Resolution:
Fixed
Uboot version or rev.:
Toolchain version or rev.:
09r1-rc6
App binary format:
N/A
Summary: run l2 app on bf548 ezkit frequent fails
Details:
run l2 app on bf548 ezkit frequent fails and sometimes print dump info like following. And it looks ok for l2 on bf561 ezkit.
## Booting image at 02000000 ...
Image Name: Linux-2.6.28.9-ADI-2009R1-pre-sv
Created: 2009-05-06 0:09:57 UTC
Image Type: Blackfin Linux Kernel Image (gzip compressed)
Data Size: 5384022 Bytes = 5.1 MB
Load Address: 00001000
Entry Point: 00261774
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
Starting Kernel at = 261774
Linux version 2.6.28.9-ADI-2009R1-pre-svn6311 (test@uclinux61-bf548-std) (gcc version 4.1.2 (ADI svn)) #184 Wed May 6 00:09:43 GMT 2009
console [early_BFuart0] enabled
early printk enabled on early_BFuart0
Board Memory: 64MB
Kernel Managed Memory: 64MB
Memory map:
fixedcode = 0x00000400-0x00000490
text = 0x00001000-0x001928f0
rodata = 0x001928f0-0x0021de48
bss = 0x0021e000-0x00232370
data = 0x00232370-0x0024c000
stack = 0x0024a000-0x0024c000
init = 0x0024c000-0x009f8000
available = 0x009f8000-0x03dff000
DMA Zone = 0x03e00000-0x04000000
Hardware Trace Active and Enabled
Boot Mode: 3
Reset caused by Software reset
Blackfin support (C) 2004-2009 Analog Devices, Inc.
Compiled for ADSP-BF548 Rev 0.2
Blackfin Linux support by http://blackfin.uclinux.org/
Processor Speed: 525 MHz core clock and 131 MHz System Clock
NOMPU: setting up cplb tables
Instruction Cache Enabled for CPU0
Data Cache Enabled for CPU0 (write-back)
Built 1 zonelists in Zone order, mobility grouping off. Total pages: 15747
Kernel command line: root=/dev/mtdblock0 rw earlyprintk=serial,uart0,57600 ip=10.100.4.50:10.100.4.174:192.168.0.1:255.255.255.0:bf548-ezkit:eth0:off
Configuring Blackfin Priority Driven Interrupts
PID hash table entries: 256 (order: 8, 1024 bytes)
console handover: boot [early_BFuart0] -> real [ttyBF0]
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory available: 52708k/65536k RAM, (7856k init code, 1606k kernel code, 742k data, 2048k dma, 572k reserved)
Calibrating delay loop... 1046.52 BogoMIPS (lpj=2093056)
Security Framework initialized
Mount-cache hash table entries: 512
Blackfin Scratchpad data SRAM: 4 KB
Blackfin L1 Data A SRAM: 16 KB (15 KB free)
Blackfin L1 Data B SRAM: 16 KB (16 KB free)
Blackfin L1 Instruction SRAM: 48 KB (42 KB free)
Blackfin L2 SRAM: 128 KB (128 KB free)
PDA for CPU0 reserved at 00221000
net_namespace: 288 bytes
NET: Registered protocol family 16
Blackfin DMA Controller
ezkit_init(): registering device resources
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
musb_hdrc: version 6.0, musb-dma, host, debug=0
musb_hdrc: USB Host mode controller at ffc03c00 using DMA, IRQ 82
musb_hdrc musb_hdrc.0: MUSB HDRC host driver
musb_hdrc musb_hdrc.0: new USB bus registered, assigned bus number 1
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
dma_alloc_init: dma_page @ 0x03dd5000 - 512 pages at 0x03e00000
hub 1-0:1.0: 1 port detected
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
NET: Registered protocol family 1
msgmni has been set to 102
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler cfq registered
bf54x-lq043: FrameBuffer initializing...
bfin-otp: initialized
Serial: Blackfin serial driver
bfin-uart.1: ttyBF0 at MMIO 0xffc02000 (irq = 48) is a BFIN-UART
brd: module loaded
smsc911x: Driver version 2007-07-13.
eth0: SMSC911x MAC Address: 00:e0:22:fe:bf:4e
Driver 'sd' needs updating - please use bus_type methods
register bfin atapi driver
scsi0 : pata-bf54x
ata1: PATA max UDMA/66 irq 68
ata1.00: ATA-6: TOSHIBA MK4032GAX, AD101A, max UDMA/100
ata1.00: 78140160 sectors, multi 16: LBA48
ata1.00: configured for UDMA/66
blk_queue_max_hw_segments: set to minimum 1
scsi 0:0:0:0: Direct-Access ATA TOSHIBA MK4032GA AD10 PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 78140160 512-byte hardware sectors: (40.0 GB/37.2 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: [sda] 78140160 512-byte hardware sectors: (40.0 GB/37.2 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sda: sda1 sda2
sd 0:0:0:0: [sda] Attached SCSI disk
physmap platform flash device: 02000000 at 20000000
physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Using buffer write method
Using auto-unlock on power-up/resume
cfi_cmdset_0001: Erase suspend on write enabled
RedBoot partition parsing not available
Using physmap partition information
Creating 3 MTD partitions on "physmap-flash.0":
0x00000000-0x00040000 : "bootloader(nor)"
0x00040000-0x00440000 : "linux kernel(nor)"
0x00440000-0x01000000 : "file system(nor)"
BF5xx on-chip NAND FLash Controller Driver, Version 1.2 (c) 2007 Analog Devices, Inc.
bf5xx-nand bf5xx-nand.0: page_size=256, data_width=8, wr_dly=3, rd_dly=3
NAND device: Manufacturer ID: 0x20, Chip ID: 0xda (ST Micro NAND 256MiB 3,3V 8-bit)
Creating 2 MTD partitions on "NAND 256MiB 3,3V 8-bit":
0x00000000-0x00400000 : "linux kernel(nand)"
0x00400000-0x10000000 : "file system(nand)"
m25p80 spi0.1: m25p16 (2048 Kbytes)
Creating 2 MTD partitions on "m25p80":
0x00000000-0x00040000 : "bootloader(spi)"
0x00040000-0x00200000 : "linux kernel(spi)"
bfin-spi bfin-spi.0: Blackfin on-chip SPI Controller Driver, Version 1.0, regs_base@ffc00500, dma channel@4
bfin-spi bfin-spi.1: Blackfin on-chip SPI Controller Driver, Version 1.0, regs_base@ffc02300, dma channel@5
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
input: bf54x-keys as /devices/platform/bf54x-keys/input/input0
bf54x-keys: Blackfin BF54x Keypad registered IRQ 76
rtc-bfin rtc-bfin: rtc core: registered rtc-bfin as rtc0
i2c /dev entries driver
i2c-bfin-twi i2c-bfin-twi.0: Blackfin BF5xx on-chip I2C TWI Contoller, regs_base@ffc00700
i2c-bfin-twi i2c-bfin-twi.1: Blackfin BF5xx on-chip I2C TWI Contoller, regs_base@ffc02200
bfin-wdt: initialized: timeout=20 sec (nowayout=0)
bfin-sdh bfin-sdh.0: unable to request DMA channel
bfin-sdh: probe of bfin-sdh.0 failed with error -16
hid_zpff: Unknown symbol _input_ff_create_memless
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
Advanced Linux Sound Architecture Driver Version 1.0.18rc3.
ASoC version 0.13.2
dma rx:0 tx:1, err irq:10, regs:ffc00800
AD1980 SoC Audio Codec
asoc: AC97 <-> bf5xx-ac97 mapping ok
ALSA device list:
#0: bf5xx-board (AD1980)
TCP cubic registered
NET: Registered protocol family 17
rtc-bfin rtc-bfin: setting system clock to 2004-05-31 11:19:04 UTC (1086002344)
eth0: SMSC911x/921x identified at 0x24000000, IRQ: 175
eth0: link down
IP-Config: Gateway not on directly connected network.
Freeing unused kernel memory: 7856k freed
eth0: link up, 100Mbps, full-duplex, lpa 0x41E1
usb 1-1: new high speed USB device using musb_hdrc and address 2
usb 1-1: configuration #1 chosen from 1 choice
scsi1 : SCSI emulation for USB Mass Storage devices
_____________________________________
a8888b. / Welcome to the uClinux distribution \
d888888b. / _ _ \
8P"YP"Y88 / | | |_| __ __ (TM) |
8|o||o|88 _____/ | | _ ____ _ _ \ \/ / |
8' .88 \ | | | | _ \| | | | \ / |
8`._.' Y8. \ | |__ | | | | | |_| | / \ |
d/ `8b. \ \____||_|_| |_|\____|/_/\_\ |
dP . Y8b. \ For embedded processors including |
d8:' " `::88b \ the Analog Devices Blackfin /
d8" 'Y88b \___________________________________/
:8P ' :888
8a. : _a88P For further information, check out:
._/"Yaa_: .| 88P| - http://blackfin.uclinux.org/
\ YP" `| 8P `. - http://docs.blackfin.uclinux.org/
/ \.___.d| .' - http://www.uclinux.org/
`--..__)8888P`._.' jgs/a:f - http://www.analog.com/blackfin
Have a lot of fun...
BusyBox v1.13.4 (2009-05-05 23:51:21 GMT) built-in shell (msh)
Enter 'help' for a list of built-in commands.
root:/> version
kernel: Linux release 2.6.28.9-ADI-2009R1-pre-svn6311, build #184 Wed May 6 00:09:43 GMT 2009
toolchain: bfin-uclinux-gcc release gcc version 4.1.2 (ADI svn)
user-dist: release svn-8025, build #1481 Wed May 6 00:08:56 GMT 2009
root:/>
************** STEP 3: Start testing.
************** STEP 4: Clean src directory
rm -rf *.o *.so *.gdb test_helloworld
Make clean.
Make clean.
************** STEP 5: Build test program
bfin-linux-uclibc-gcc -shared -o libhelloworld.so helloworld.c -fno-jump-tables -mfdpic -Wl,--sep-code -Wl,-z -Wl,now
bfin-linux-uclibc-gcc -o test_helloworld test_helloworld.c -lhelloworld -L./ -fno-jump-tables -mfdpic
Build test program done
Case 1 ...PASS
Case 1 ...PASS
ifconfig eth0 10.100.4.50 up
root:/>
************** STEP 6: Copy testcase to target board
Copy libhelloworld.so to target board done
Copy test_helloworld to target board done
Copy test_helloworld to target board done
scsi 1:0:0:0: Direct-Access SanDisk U3 Cruzer Micro 6.51 PQ: 0 ANSI: 0 CCS
sd 1:0:0:0: [sdb] 2014271 512-byte hardware sectors: (1.03 GB/983 MiB)
sd 1:0:0:0: [sdb] Write Protect is off
sd 1:0:0:0: [sdb] Assuming drive cache: write through
sd 1:0:0:0: [sdb] 2014271 512-byte hardware sectors: (1.03 GB/983 MiB)
sd 1:0:0:0: [sdb] Write Protect is off
sd 1:0:0:0: [sdb] Assuming drive cache: write through
sdb: sdb1 sdb2
/test_hellowosd 1:0:0:0: [sdb] Attached SCSI removable disk
rld
Undefined instruction
- May be used to emulate instructions that are not defined for
a particular processor implementation.
Deferred Exception context
CURRENT PROCESS:
COMM=test_helloworld PID=339
CPU = 0
TEXT = 0x0031c000-0x0031ca7c DATA = 0x0031da7c-0x0031dc08
BSS = 0x0031dc08-0x00320000 USER-STACK = 0x0033fe90
return address: [0xfeb00044]; contents of:
0xfeb00020: 0010 0000 0000 0000 4900 0000 b0b8 6000
0xfeb00030: bbe0 b9e0 6410 bbf0 e418 0009 a0b9 e41a
0xfeb00040: 0004 3212 [0001] 0000 0061 b9f0 e801 0000
0xfeb00050: 0010 0000 0084 9310 e14a feb0 e10a 0084
SEQUENCER STATUS: Not tainted
SEQSTAT: 00062021 IPEND: 0030 SYSCFG: 0006
EXCAUSE : 0x21
interrupts disabled
physical IVG5 asserted : <0xffa00b14> { _evt_ivhw + 0x0 }
RETE: <0x00000000> /* Maybe null pointer? */
RETN: <0x0030e000> /* kernel dynamic memory */
RETX: <0x00000480> /* Maybe fixed code section */
RETS: <0x0031c7e2> [ /test_helloworld + 0x7e2 ]
PC : <0xfeb00044> /* kernel dynamic memory */
DCPLB_FAULT_ADDR: <0x00342910> [ test_helloworld + 0x910 ]
ICPLB_FAULT_ADDR: <0xfeb00044> /* kernel dynamic memory */
PROCESSOR STATE:
R0 : 0034f814 R1 : 0031c9a0 R2 : 00346700 R3 : 00000005
R4 : 0033fe94 R5 : 0035badc R6 : 0033ff38 R7 : 0033ff97
P0 : 0035badc P1 : feb00028 P2 : 00346700 P3 : 00342900
P4 : 003598f0 P5 : 0033ff28 FP : 0033fdc8 SP : 0030df24
LB0: 00356351 LT0: 00356344 LC0: 00000000
LB1: 003557cb LT1: 003557ca LC1: 00000000
B0 : 00000000 L0 : 00000000 M0 : 00000000 I0 : 0033ff18
B1 : 00000000 L1 : 00000000 M1 : 00000000 I1 : 0031e1b0
B2 : 00000000 L2 : 00000000 M2 : 00000000 I2 : 00000000
B3 : 00000000 L3 : 00000000 M3 : 00000000 I3 : 00000000
A0.w: 00000000 A0.x: 00000000 A1.w: 00000000 A1.x: 00000000
USP : 0033fdb4 ASTAT: 02002000
Hardware Trace:
0 Target : <0x00004aa4> { _trap_c + 0x0 }
Source : <0xffa005d2> { _exception_to_level5 + 0x9e } CALL pcrel
1 Target : <0xffa00534> { _exception_to_level5 + 0x0 }
Source : <0xffa00406> { _bfin_return_from_exception + 0x6 } RTX
2 Target : <0xffa00400> { _bfin_return_from_exception + 0x0 }
Source : <0xffa0048e> { _ex_trap_c + 0x66 } JUMP.S
3 Target : <0xffa00428> { _ex_trap_c + 0x0 }
Source : <0xffa0065e> { _trap + 0x2a } JUMP (P4)
4 Target : <0xffa00634> { _trap + 0x0 }
Source : <0xfeb00042> /* kernel dynamic memory */ 0x3212
5 Target : <0xfeb00028> /* kernel dynamic memory */
Source : <0xffa003b2> { _ex_dcplb_miss + 0x4a } RTX
6 Target : <0xffa0038e> { _ex_dcplb_miss + 0x26 }
Source : <0xffa00fd4> { _icplb_miss + 0xfc } RTS
7 Target : <0xffa00f60> { _icplb_miss + 0x88 }
Source : <0xffa00f4c> { _icplb_miss + 0x74 } IF CC JUMP
8 Target : <0xffa00f2c> { _icplb_miss + 0x54 }
Source : <0xffa00f20> { _icplb_miss + 0x48 } IF !CC JUMP
9 Target : <0xffa00f1a> { _icplb_miss + 0x42 }
Source : <0xffa00f2a> { _icplb_miss + 0x52 } IF CC JUMP
10 Target : <0xffa00f1a> { _icplb_miss + 0x42 }
Source : <0xffa00f2a> { _icplb_miss + 0x52 } IF CC JUMP
11 Target : <0xffa00f1a> { _icplb_miss + 0x42 }
Source : <0xffa00f2a> { _icplb_miss + 0x52 } IF CC JUMP
12 Target : <0xffa00f1a> { _icplb_miss + 0x42 }
Source : <0xffa00f2a> { _icplb_miss + 0x52 } IF CC JUMP
13 Target : <0xffa00f1a> { _icplb_miss + 0x42 }
Source : <0xffa00f2a> { _icplb_miss + 0x52 } IF CC JUMP
14 Target : <0xffa00ed8> { _icplb_miss + 0x0 }
Source : <0xffa0109e> { _cplb_hdr + 0x22 } JUMP.L
15 Target : <0xffa0109c> { _cplb_hdr + 0x20 }
Source : <0xffa0108a> { _cplb_hdr + 0xe } IF !CC JUMP
Userspace Stack
Stack info:
SP: [0x0033fdb4] <0x0033fdb4> [ test_helloworld + 0x1fdb4 ]
FP: (0x0033fdc8)
Memory from 0x0033fdb0 to 00340000
0033fdb0:<0031c7e2>[0035badc] 00000000 00000000 00000000 00000002 (0033fe54)<008b36cc>
0033fdd0: 0031c9a0 0033fe94 0dfd935e 00000000 00000000 00000000 00000000 00000000
0033fdf0: 00000000 00000003 0031c034 00000004 00000020 00000005 00000008 00000006
0033fe10: 00001000 00000007 00350000 00000008 00000000 00000009 0031c508 00000000
0033fe30: 00000000 0000000b 00000000 0000000c 00000000 0000000d 00000000 0000000e
0033fe50: 00000000 (00000000)<0031c536> 0031e178 0031c508 0031e170 0033ff38 0033ff58
0033fe70:<0031c50c> 00346754 00000001 0033ff58 00346730 00346720 0031e170 0033ff64
0033fe90: 00000001 0033ff97 00000000 <0033ffa8> 0033ffaf 0033ffbd 0033ffe0 00000000
0033feb0: 00000010 00000000 00000006 00001000 00000011 00000064 00000003 0031c034
0033fed0: 00000004 00000020 00000005 00000008 00000007 00350000 00000008 00000000
0033fef0: 00000009 0031c508 0000000b 00000000 0000000c 00000000 0000000d 00000000
0033ff10: 0000000e 00000000 00000017 00000000 0000001f 0001ffeb 00000000 00000000
0033ff30: 00000000 00000000 00020000 00350000 00000000 0000701c 0031e01c 0000b01c
0033ff50: 00000450 00000000 00040000 0031c000 00000000 00000a7c 0031da7c 00004a7c
0033ff70: 0000018c feb00000 feb00000 00000024 feb00024 fec00000 00000004 00000000
0033ff90: 00000000 2f000000 74736574 6c65685f 6f776f6c 00646c72 454d4f48 53002f3d
0033ffb0: 4c4c4548 69622f3d 68732f6e 54415000 622f3d48 2f3a6e69 2f727375 3a6e6962
0033ffd0: 6962732f 752f3a6e 732f7273 006e6962 4d524554 6e696c3d 2f007875 74736574
0033fff0: 6c65685f 6f776f6c 00646c72 00000000 00000000
Return addresses in stack:
address : <0x0031c7e2> [ /test_helloworld + 0x7e2 ]
frame 1 : <0x008b36cc> [ /lib/libc.so.0 + 0x336cc ]
frame 2 : <0x0031c536> [ /test_helloworld + 0x536 ]
address : <0x0031c50c> [ /test_helloworld + 0x50c ]
address : <0x0033ffa8> [ test_helloworld + 0x1ffa8 ]
Illegal instruction
root:/>
Last pass version: uclinux-dist:8022, linux 6310, toolchain 09r1-5
failed version: uclinux-dist:8025,linux 6311, toolchain 09r1-6
Follow-ups
--- Mike Frysinger 2009-06-02 05:35:59
is the L2 code executable ? none of the FDPIC loading code does cache flushing
--- Mingquan Pan 2009-06-02 05:37:17
run l2 module case on bf548 to insert hello.ko also has similar issue, frequent
stuck after running this case.
--- Jie Zhang 2009-06-17 23:31:07
I took a look at this bug. What I found is that this bug only occurs when SDRAM
is configured as dcache write-back and L2 is configured as dcache write-through,
or SDRAM is configured as dcache write-through and L2 is configured as dcache
write-back. And it only occurs when copy data from SDRAM to L2 SRAM. If
CPLB_L1_AOW is not set, this bug cannot be observed. If memcpy does not use
hardware loop, this bug cannot be observed.
--- Mike Frysinger 2009-07-14 06:44:07
problems can also be seen with dmacopy test and writing to L2 [#5314]
--- Sonic Zhang 2009-11-03 03:55:06
This issue is included in latest hardware anomaly list as ANOMALY_05000475. It
is walked around by avoid WB cache config in kernel.
Files
Changes
Commits
Dependencies
Duplicates
Associations
Tags
File Name File Type File Size Posted By
No Files Were Found