hi

I'm currently trying to port an older kernel version (2.6.33-rc6 non realtime) 
to a newer one (2.6.33.9 with RT-PREEMPT 2.6.33.9).
The initial support for USB and CAN was done by Denx.

I've been working on moving this support to the new kernel which is nearly 
completed except from the a kernel panic in the USB setup. It has something to 
do with the fsl bus setup and the panic happens in 
drivers/usb/host/ehci-hcd.c::echi_run(struct usb_hcd *hcd):

----------------------------------------------

/* start HC running; it's halted, ehci_init() has been run (once) */
static int ehci_run (struct usb_hcd *hcd)
{
    struct ehci_hcd        *ehci = hcd_to_ehci (hcd);
    int            retval;
    u32            temp;
    u32            hcc_params;

    hcd->uses_new_polling = 1;
    hcd->poll_rh = 0;

    /* EHCI spec section 4.1 */
    if ((retval = ehci_reset(ehci)) != 0) {
        ehci_mem_cleanup(ehci);
        return retval;
    }
    ehci_writel(ehci, ehci->periodic_dma, &ehci->regs->frame_list);
    ehci_writel(ehci, (u32)ehci->async->qh_dma, &ehci->regs->async_next);

----------------------------------------------

The panic happens every time the ehci_reset(ehci) is called. I've been trying 
to locate the problem and it seems so that I can't go any further because I 
expect the problem to be earlier in the process, e.g. I must be forgetting 
something earlier on.

Here is the kernel boot output:

----------------------------------------------

[  261.521847] console [netcon0] enabled
[  261.525493] netconsole: network logging started
[  261.531162] eth0: fs_enet: 00:60:35:0d:dc:93
[  261.536393] FEC MII Bus: probed
[  261.540330] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[  261.547065] fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller
[  261.553709] fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 
1
[  261.561165] fsl-ehci fsl-ehci.0: irq 44, io mem 0x80004000
[  261.574366] Unable to handle kernel paging request for data at address 
0x00000014
[  261.581914] Faulting instruction address: 0xc02e4c48
[  261.586924] Oops: Kernel access of bad area, sig: 11 [#1]
[  261.592360] PREEMPT Marel v39
[  261.595350] NIP: c02e4c48 LR: c02e488c CTR: c02c3a3c
[  261.600358] REGS: cf831d10 TRAP: 0300   Not tainted  
(2.6.33.9-rt31marel-svn934)
[  261.607817] MSR: 00009032 <EE,ME,IR,DR>  CR: 24004022  XER: 20000000
[  261.614229] DAR: 00000014, DSISR: 22000000
[  261.618359] TASK = cf82fae0[1] 'swapper' THREAD: cf830000
[  261.623624] GPR00: 00000000 cf831dc0 cf82fae0 0000001d 000026e8 ffffffff 
cf831d0e 00020000
[  261.632054] GPR08: c0574d20 00000014 0001ffff 00000000 24004022 05011000 
0ffb9000 00000000
[  261.640485] GPR16: c4653600 00000000 00000000 00000000 00000000 00000000 
00000000 c05a1938
[  261.648916] GPR24: 0000002c 00000002 c055b9d8 cfa32c00 00000080 cfa39048 
cfa39000 cfa390cc
[  261.657544] NIP [c02e4c48] ehci_run+0x404/0x458
[  261.662096] LR [c02e488c] ehci_run+0x48/0x458
[  261.666479] Call Trace:
[  261.668947] [cf831dc0] [c02e488c] ehci_run+0x48/0x458 (unreliable)
[  261.675191] [cf831e30] [c02cd960] usb_add_hcd+0x2f8/0x600
[  261.680627] [cf831e60] [c02e6024] usb_hcd_fsl_probe+0x234/0x394
[  261.686598] [cf831e90] [c0272bb8] platform_drv_probe+0x20/0x30
[  261.692491] [cf831ea0] [c0271798] driver_probe_device+0x88/0x180
[  261.698541] [cf831ec0] [c027194c] __driver_attach+0xbc/0xc0
[  261.704162] [cf831ee0] [c0270e94] bus_for_each_dev+0x70/0xac
[  261.709870] [cf831f10] [c02715dc] driver_attach+0x24/0x34
[  261.715314] [cf831f20] [c027062c] bus_add_driver+0xb4/0x278
[  261.720935] [cf831f50] [c0271c88] driver_register+0x70/0x160
[  261.726641] [cf831f70] [c0272f78] platform_driver_register+0x6c/0x7c
[  261.733056] [cf831f80] [c051d860] ehci_hcd_init+0xf0/0x140
[  261.738589] [cf831fa0] [c000389c] do_one_initcall+0x3c/0x1e0
[  261.744295] [cf831fd0] [c0505204] kernel_init+0xe4/0x154
[  261.749660] [cf831ff0] [c0010ed4] kernel_thread+0x4c/0x68
[  261.755087] Instruction dump:
[  261.758075] 4bfffd4c 7c0004ac 7d204c2c 0c090000 4c00012c 4bfffccc 39290018 
7c0004ac
[  261.765889] 7c004d2c 4bfffc8c 39290014 7c0004ac <7d604d2c> 4bfffc5c 801f0114 
813f0004
[  261.773988] ---[ end trace 364ef0f9c3fc06c7 ]---
[  261.778597] Kernel panic - not syncing: Attempted to kill init!
[  261.784550] Rebooting in 1 seconds..

----------------------------------------------

If there are any that are familiar with this and could perhaps point out the 
problem I hope to hear from you.

Regards
Einar M. Bjorgvinsson
Embedded Software Engineer
Marel
Iceland
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to