Hello All. I am currently running into an issue and can not find a way to
resolve it.
I have two systems built around a AT91RM9200. First, the ek board
(evaluation kit), I can build the kernel, filesystem, and u-boot and
everything works as it should. System is stable and runs well.
Second system, I have a custom board that is very similar to the ek board
but with some differences. First, the flash is a 642D vs the 6416 and I
have made the changes necessary for it to recognize through CFI. Next, the
ram is 1 32mb chip vs two 16 mb chips. I have made the changes to SDRAM
controller for that (rows and columns). Finally, there is also a nand flash
on board. I have the nand flash being recognized and can read and write
from it.
So, onto the problem. When I boot the custom board, it can find the
filesystem on either the nor flash or the nand flash (I just change the
bootargs in u-boot to point to a different mtdblock). If I leave it at the
login prompt, everything is ok. When I login, it goes to the prompt and a
few seconds later, the kernel crashes and looks to be in wake_up_common
here:
static void __wake_up_common(wait_queue_head_t *q, unsigned int mode,
int nr_exclusive, int sync, void
*key)
{
struct list_head *tmp, *next;
list_for_each_safe(tmp, next, &q->task_list) {
<---------------------------------
wait_queue_t *curr = list_entry(tmp, wait_queue_t,
task_list);
unsigned flags = curr->flags;
I am putting the capture below for anyone that can see. I have done
searches around google and some have said that it could be due to a mtd
config issue. However, I am setting up the mtd the same and have even taken
out support for nand flash so that isn't the culprit.
Has anyone seen this or can anyone give me some ideas of a way to track this
down?
uclibc login: root
# cd /bin
# [ 40.180000] Unable to handle kernel NULL pointer dereference at virtual
add
ress 00000000
[ 40.180000] pgd = c1f14000
[ 40.180000] [00000000] *pgd=21eda031, *pte=00000000, *ppte=00000000
[ 40.180000] Internal error: Oops: 17 [#1]
[ 40.180000] Modules linked in:
[ 40.180000] CPU: 0
[ 40.180000] PC is at __wake_up_common+0x28/0x98
[ 40.180000] LR is at 0x0
[ 40.180000] pc : [<c003bf88>] lr : [<00000000>] Not tainted
[ 40.180000] sp : c1f2de50 ip : c1f2de7c fp : c1f2de78
[ 40.180000] r10: 00000003 r9 : c1f2de94 r8 : 00000000
[ 40.180000] r7 : 00000001 r6 : c0000080 r5 : c1d802fc r4 : 00000013
[ 40.180000] r3 : 00000000 r2 : 00000001 r1 : 00000003 r0 : c0000080
[ 40.180000] Flags: nzcv IRQs off FIQs on Mode SVC_32 Segment user
[ 40.180000] Control: C000717F
[ 40.180000] Table: 21F14000 DAC: 00000015
[ 40.180000] Process syslogd (pid: 737, stack limit = 0xc1f2c250)
[ 40.180000] Stack: (0xc1f2de50 to 0xc1f2e000)
[ 40.180000] de40: 00000013 c1d802fc
c0324
000 00000000
[ 40.180000] de60: c1c07ce4 c1c07c88 00000022 c1f2de90 c1f2de7c c003c024
c003b
f70 c1f2de94
[ 40.180000] de80: c0324000 c1f2dea8 c1f2de94 c0054a18 c003c008 c0324000
00000
000 c1f2debc
[ 40.180000] dea0: c1f2deac c0062258 c00549f8 c1f2c000 c1f2def8 c1f2dec0
c0078
ad0 c0062224
[ 40.180000] dec0: 00000000 c1c07d78 00000003 c1f2df10 00000000 00000066
000b3
3cd 00000000
[ 40.180000] dee0: 0000005d 00000000 c1f2df18 c1f2df4c c1f2defc c00793ec
c0078
7ac 00000000
[ 40.180000] df00: c1c07d20 c1c07d4c c1c07ce4 c1f2df78 00000000 00000066
00022
000 00000000
[ 40.180000] df20: 00000000 c1e8a1a8 000b3370 c1f2df78 000000c3 c1f2c000
c1f2c
000 000000c3
[ 40.180000] df40: c1f2df74 c1f2df50 c0080a58 c0079224 00000000 c1e8a1c8
c1e8a
1a8 c1f2df78
[ 40.180000] df60: 00021fa3 00000000 c1f2dfa4 c1f2df78 c0080bf0 c00809b4
00021
fa3 00000000
[ 40.180000] df80: 00000000 000000c3 000000c3 000b3370 00000004 c002af04
00000
000 c1f2dfa8
[ 40.180000] dfa0: c002ad60 c0080bb4 000000c3 000000c3 00000004 000b3370
00000
0c3 00021fa3
[ 40.180000] dfc0: 000000c3 000000c3 000b3370 00000004 000b3370 00000004
00000
0c3 beed3cac
[ 40.180000] dfe0: 000ae328 beed3bd8 0003b558 4005ce0c 20000010 00000004
00000
000 00000000
[ 40.180000] Backtrace:
[ 40.180000] [<c003bf60>] (__wake_up_common+0x0/0x98) from [<c003c024>]
(__wak
e_up+0x2c/0x34)
[ 40.180000] [<c003bff8>] (__wake_up+0x0/0x34) from [<c0054a18>]
(__wake_up_bi
t+0x30/0x38)
[ 40.180000] r4 = C0324000
[ 40.180000] [<c00549e8>] (__wake_up_bit+0x0/0x38) from [<c0062258>]
(unlock_p
age+0x44/0x5c)
[ 40.180000] [<c0062214>] (unlock_page+0x0/0x5c) from [<c0078ad0>]
(shmem_getp
age+0x334/0x458)
[ 40.180000] r4 = C1F2C000
[ 40.180000] [<c007879c>] (shmem_getpage+0x0/0x458) from [<c00793ec>]
(shmem_f
ile_write+0x1d8/0x250)
[ 40.180000] [<c0079214>] (shmem_file_write+0x0/0x250) from [<c0080a58>]
(vfs_
write+0xb4/0x184)
[ 40.180000] [<c00809a4>] (vfs_write+0x0/0x184) from [<c0080bf0>]
(sys_write+0
x4c/0x7c)
[ 40.180000] r8 = 00000000 r7 = 00021FA3 r6 = C1F2DF78 r5 = C1E8A1A8
[ 40.180000] r4 = C1E8A1C8
[ 40.180000] [<c0080ba4>] (sys_write+0x0/0x7c) from [<c002ad60>]
(ret_fast_sys
call+0x0/0x2c)
[ 40.180000] r8 = C002AF04 r7 = 00000004 r6 = 000B3370 r5 = 000000C3
[ 40.180000] r4 = 000000C3
[ 40.180000] Code: e1a0a001 e1a07002 e1a08003 e59b9004 (e59e5000)