PPC8247 booting error
i want to mapping FIFO memory to bank 3 by configure br3 and or3 the boot info as following.
in my code, i have mapped FIFO to 0xD0000000, then i red the value from this address.
the prompts as following
there is some wrong with BRx and ORx set? or something others?
please give me some suggestion, thanks everyone.
## Booting image at 00400000 ...
Image Name: Linux-2.6.11 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 818473 Bytes = 799.3 kB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
OK
Linux version 2.6.11 ([email protected]) (gcc version 4.0.0 (DENX ELDK 4.0 4.0.0))
#108 Mon May 4 22:54:23 EDT 2009
Motorola PQ2 ADS PowerPC port
Built 1 zonelists
Kernel command line: mem=32M console=ttyCPM0,9600 root=/dev/nfs/ rw
nfsroot=192.168.0.131:/root/chengmo/fs_folder/rootfs
ip=192.168.0.100:192.168.0.131:#:255.0.0.0:::off
PID hash table entries: 256 (order: 8, 4096 bytes)
Warning: real time clock seems stuck!
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 30632k available (1420k kernel code, 272k data, 88k init, 0k highmem)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
scheduling while atomic: swapper/0x00000002/0
Call trace: [c015fe20] [c0003fe0] [c01a09b4] [c0194614] [000035fc]
NET: Registered protocol family 16
Sauce : fifo mapping to bank3 ! // here, indicate has enter fifo_init
function, but after
this...
Oops: kernel access of bad area, sig: 11 [#1]
PREEMPT
NIP: C01A2108 LR: C01A2104 SP: C0227FC0 REGS: c0227f10 TRAP: 0300 Not
tainted
MSR: 00009032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
DAR: D0000000, DSISR: 20000000
TASK = c0220ab0[1] 'swapper' THREAD: c0226000
Last syscall: 120
GPR00: C01A2104 C0227FC0 C0220AB0 00000025 00000467 FFFFFFFF F00000A0 00000022
GPR08: 001FF1A0 D0000000 F00000A8 C0227ED0 00000001 7FBDFFFF 02000000 00000000
GPR16: 00800000 01FFF9E8 FFFFFFFF 00000000 007FFF00 01FFA4DC 01BD92B8 00000001
GPR24: 00000000 00400000 C01B0000 C0160000 C01A0000 00000001 C0226000 C01A86A8
Call trace: [c0003a40] [c0006504] Kernel panic - not syncing: Attempted to kill init!
here, i have other questions about these information.
what dose mean by "NIP : C01A2108" ? i supposed "C01A2108" may be a address of user space,
what about NIP ?
and what the expression "DAR, DSISR, TASK, and GPR00-24" represent.
i hope some will let me know those or recommand some book for me. thanks
Signature · 2 lines
View this message in context: http://www.nabble.com/PPC8247-booting-error-tp23381214p23381214.html Sent from the linuxppc-dev mailing list archive at Nabble.com.
Quoted 9 lines · Sauce.Cheng
i want to mapping FIFO memory to bank 3 by configure br3 and or3 the boot info as following.
in my code, i have mapped FIFO to
0xD0000000, then i red the value from this address.the prompts as following
there is some wrong with BRx and ORx set? or something others?
You need to pass your physical address (0xd0000000) to ioremap() to obtain a virtual address that you can dereference.
Quoted 3 lines
scheduling while atomic: swapper/0x00000002/0
Call trace: [c015fe20] [c0003fe0] [c01a09b4] [c0194614] [000035fc]
You've got another problem here that you'll want to look into.
-Scott
thanks for Scott's following
Quoted 2 lines
You need to pass your physical address (
0xd0000000) toioremap()to obtain a virtual address that you can dereference.
actually, i have done that like you said. pass my phy addr to a virtual addr, but i suppose it is a kernel virtual addr. i wanna get data from phy in my application of user space. i try it by copy_to_user transfer a kernel virtual addr to a use virtual addr for using by user. but copy_to_user failed...
i do it like this
ssize_t read(....,char *buf,....,....)
{
....
kernel_buf = (void *)ioremap(0xD0000000, 4096);
copy_to_user(buf, kernel_buf, 4096);
....
}Signature · 2 lines
View this message in context: http://www.nabble.com/PPC8247-booting-error-tp23381214p23438722.html Sent from the linuxppc-dev mailing list archive at Nabble.com.