My kernel is no longer crashing. Unfortunately, I do not have the exact work-around - as I was messing around with a lot of stuff to try to get this to work.
The one thing consistent in all this is the backtrace (/var/log/kern.log) in that the routine c_can_get_berr_counter is doing something that it should not do. But trying to get someone that knows about this code to take a look seems to be a huge challenge. If you would like to see the backtrace, let me know. I do know that the resolution was one of two things: 1. Our CAN transceiver's enable line was being shared with MMC1_DAT0 - which was brought out to P8-25 on an expansion header. I tried (various methods) to reset the eMMC in hopes of driving its pins to an open-drain state. I could never get that to work, and therefore I could never drive the CAN transceiver's enable line low. I got around this by wiring P8-25 directly to ground. That could have been causing problems with either the CAN transceiver or the processor itself. Or it could be that leaving the CAN transceiver enabled through the boot process caused issues as well. Nonetheless, I clipped the P8-25 pin on our cape and wired from another GPIO line that was routed to the P8 expansion header (P8-17 I think). This allowed me to enable the CAN transceiver cleanly, post-boot. 2. I disabled some things in my kernel config. ---------------------------- Original default (defconfig) ---------------------------- CONFIG_CAN_SLCAN=m CONFIG_CAN_TI_HECC=m CONFIG_CAN_MCP251X=m CONFIG_CAN_GRCAN=m # CONFIG_CAN_DEBUG_DEVICES is not set CONFIG_WIMAX=m CONFIG_WIMAX_DEBUG_LEVEL=8 CONFIG_RFKILL=m CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y CONFIG_RFKILL_GPIO=m CONFIG_USB_HSO=m # WiMAX Wireless Broadband devices # # CONFIG_WIMAX_I2400M_USB is not set CONFIG_RADIO_WL128X=m ---------------------------- Modified defconfig ---------------------------- # CONFIG_CAN_SLCAN is not set # CONFIG_CAN_TI_HECC is not set # CONFIG_CAN_MCP251X is not set # CONFIG_CAN_GRCAN is not set CONFIG_CAN_DEBUG_DEVICES=y # CONFIG_WIMAX is not set # CONFIG_RFKILL is not set # Enable WiMAX (Networking options) to see the WiMAX drivers # # CONFIG_FB_BACKLIGHT is not set # CONFIG_USB_APPLEDISPLAY is not set Hope that helps. On Friday, November 21, 2014 2:47:21 PM UTC-5, Me Nee wrote: > > Thanks, very informative links, particularly the last one. > > On Friday, November 21, 2014 8:09:41 AM UTC-7, beagler001 wrote: >> >> >> No solution here yet, but I have found some very relevant discussions out >> there. Something must have changed with the kernel scheduler that requires >> drivers (CAN in our case) to be updated. I copied the BeagleBone kernel >> support guru to this post (Robert Nelson). Perhaps he is already aware of >> this problem and knows of a work-around. I will post something if/when I >> get this figured out. Until then, here are some relevant links. >> >> >> http://stackoverflow.com/questions/3537252/how-to-solve-bug-scheduling-while-atomic-swapper-0x00000103-0-cpu0-in-ts >> http://e2e.ti.com/support/omap/f/849/t/250383.aspx >> https://community.freescale.com/thread/330079 >> > -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
