Thanks to all that replied. I'm still not 100% there, but finally got further. Greg, I should've just coded up the UART output like you suggested, but I had already started using a GPIO pin I could easily access and hooked it up to my oscope. I did the same as you suggested, and popped it into head.S and confirmed that u-boot was at least jumpping into the kernel. Then I used code similar to:
*((volatile u8 *)0x4010000B) = (u8)(0x01); mdelay(10); *((volatile u8 *)0x4010000B) = (u8)(0x00); and used that in the C startup code to trace through. Eventually I figured out it was getting stuck on my RTC driver (on my platform_driver_register() call), commented that out, and it got far enough to put stuff out the console. Then it oopsed. This was durring the second mtd map operation (I've got two flash chips on this thing): ---- . . . Flash external probe(0xff400000,4194304,2): 400000 at ff400000 bad frame format: 00000000 Modules linked in: PC: [<00133650>] cfi_qry_mode_on+0x8fe/0xf3e SR: 2008 SP: 0183be58 a2: 0027a8f4 d0: 00000002 d1: ff400000 d2: 00000000 d3: 00000008 d4: 0000f0f0 d5: 00000002 a0: ff400000 a1: 0183bf6c Process swapper (pid: 1, task=0183c000) Frame format=4 eff addr=0024c92f pc=00000000 Stack from 0183be94: 0183bf32 00000001 00000002 00000001 0183bf32 0027a8f4 00000000 00131c36 00000000 0027a8f4 0183bf32 0024c92f 0000004c 0183bf32 00000001 00000002 00000001 0027a8f4 0027a664 0012b4cc 000f3acc 00131b2e 0013a9d2 0027a8f4 00000000 00000000 0183bf32 0024c92f 0000004c 68000000 0027a8f4 01f6523a 01f3cf70 00131ab0 0027a66c 0012b4cc 001d7a1c 00131b2e 0027a57c 00270000 00000000 00000002 00000001 00000000 00000000 00000000 00000000 00000000 Call Trace: [<00131c36>] cfi_probe_chip+0x3c/0xaee [<0024c92f>] packet_seq_ops+0x59fc9/0x65b86 [<0012b4cc>] mtd_device_parse_register+0x0/0xc8 [<000f3acc>] memset+0x0/0x7c [<00131b2e>] do_map_probe+0x0/0xb6 [<0013a9d2>] mtd_do_chip_probe+0x8e/0x3d8 [<0024c92f>] packet_seq_ops+0x59fc9/0x65b86 [<00131ab0>] get_mtd_chip_driver+0x0/0x7e [<0012b4cc>] mtd_device_parse_register+0x0/0xc8 [<001d7a1c>] printk+0x0/0x18 [<00131b2e>] do_map_probe+0x0/0xb6 [<00131bf4>] cfi_probe+0x10/0x16 [<00131b52>] do_map_probe+0x24/0xb6 [<001d7a1c>] printk+0x0/0x18 [<0028f9b4>] m5235_mtd_init+0xb8/0x16e [<0024c92f>] packet_seq_ops+0x59fc9/0x65b86 [<0028f8fc>] m5235_mtd_init+0x0/0x16e [<000200c8>] do_one_initcall+0x0/0x1d8 [<000201d8>] do_one_initcall+0x110/0x1d8 [<000200c8>] do_one_initcall+0x0/0x1d8 [<0028666a>] kernel_init+0x82/0x106 [<0028f8fc>] m5235_mtd_init+0x0/0x16e [<002865e8>] kernel_init+0x0/0x106 [<00020a3a>] kernel_thread+0x2a/0x3c Code: 4cd7 1cfc 4fef 0024 4e75 2041 d1c2 3084 <6000> f7f0 2204 2e05 e989 e78c e3af 8a87 2205 e9a9 8a81 6000 f832 2041 d1c3 1085 Disabling lock debugging due to kernel taint Kernel panic - not syncing: Attempted to kill init! ---- So, I'm out of the woods so to speak, but not quite there yet. What I'm totally flummoxed by is the fact that these drivers (indeed, the whole kernel and the stuff in userspace) works just fine booted from the old u-boot, but crap out from the new u-boot. Clearly I've done something wrong here, but I'm not sure what or how. Based on behavior, I'm going to be taking a very close look at the RAM allocations and stack space. Though the stack pointer above is within my address space (32M, starting at 0, so 0x00000000 to 0x02000000). Mayhaps I'm running over my stack, hence a "bad frame format: 00000000"? Not 100% sure of that particular message, got to look that up. Anyway, this is as far as I got today, tomorrow I'm going to be examining the oops in detail and figure out why/what's going on. I can't immagine what the difference between the old u-boot and the new one would be that could cause the kernel to work in former case but totally crash in the latter. I'm open to suggestions. Thanks, - Steve
_______________________________________________ uClinux-dev mailing list uClinux-dev@uclinux.org http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by uclinux-dev@uclinux.org To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev