Test board goodness

  • Hello,
    we have a couple of boards here that show random errors at any boot or they stop unexpectedly and there is no way to debug the problem.
    Do you have a test image i can load to check hardware problems?
    If not if you can help me understanding the problem of the board...we need to be sure that this problems is just a case and not frequent problem.


    Best Regards, below some messages (they seems totally random)



    mx-sdma imx-sdma: initialized
    Unable to handle kernel NULL pointer dereference at virtual address 00000de3
    pgd = 80004000
    [00000de3] *pgd=00000000
    Internal error: Oops: 805 [#1] PREEMPT SMP
    Modules linked in:
    CPU: 2 Not tainted (3.0.35-2310-gc27cb38 #45)
    PC is at 0x80002b14
    LR is at __rcu_process_callbacks+0x164/0x374
    pc : [<80002b14>] lr : [<800ac944>] psr: a0000113
    sp : bffb5f18 ip : 00000000 fp : 00000009
    r10: 00000fff r9 : bfe3cee4 r8 : 8c018768
    r7 : 00000009 r6 : bfe4e398 r5 : 8083e920 r4 : 8c018750
    r3 : bff1fe78 r2 : 80002b14 r1 : 40000081 r0 : bff1fe78
    Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
    Control: 10c5387d Table: 1000404a DAC: 00000015
    Process swapper (pid: 0, stack limit = 0xbffb42f0)
    Stack: (0xbffb5f18 to 0xbffb6000)
    5f00: 00000001 80818064
    5f20: bffb4000 00000103 80899dc0 00000002 80818040 80077fe0 7a30d68b 00000000
    5f40: 7a30d68b 00000008 7a30d68b bffb4000 bffb4000 80036c00 00000000 00000002
    5f60: bffb4000 00000000 00000000 8007851c 8082bcc0 800382e8 ffffffff f2a00100
    5f80: 00000002 00000002 00000001 8003e2cc 8089b720 60000093 00000001 00000000
    5fa0: bffb4000 80894244 80590948 8082ef5c 1000406a 412fc09a 00000000 00000000
    5fc0: 00000000 bffb5fd8 8004df7c 8003f3e8 40000013 ffffffff 8003f3c4 8003f5bc


    i.MXC CPU frequency driver
    ------------[ cut here ]------------
    WARNING: at mm/percpu-vm.c:320 pcpu_alloc+0x940/0xa0c()
    Modules linked in:
    [<80045a48>] (unwind_backtrace+0x0/0x138) from [<800726d4>] (warn_slowpath_common+0x4c/0x64)
    [<800726d4>] (warn_slowpath_common+0x4c/0x64) from [<80072708>] (warn_slowpath_null+0x1c/0x24)
    [<80072708>] (warn_slowpath_null+0x1c/0x24) from [<800cfddc>] (pcpu_alloc+0x940/0xa0c)
    [<800cfddc>] (pcpu_alloc+0x940/0xa0c) from [<80292d74>] (__percpu_counter_init+0x24/0x7c)
    [<80292d74>] (__percpu_counter_init+0x24/0x7c) from [<80280f64>] (prop_local_init_percpu+0x34/0x3c)
    [<80280f64>] (prop_local_init_percpu+0x34/0x3c) from [<800cd7b4>] (bdi_init+0xe8/0x124)
    [<800cd7b4>] (bdi_init+0xe8/0x124) from [<80015464>] (swap_setup+0x1c/0x40)
    [<80015464>] (swap_setup+0x1c/0x40) from [<80015490>] (kswapd_init+0x8/0x24)
    [<80015490>] (kswapd_init+0x8/0x24) from [<800384f0>] (do_one_initcall+0x34/0x174)
    [<800384f0>] (do_one_initcall+0x34/0x174) from [<80008944>] (kernel_init+0x98/0x13c)
    [<80008944>] (kernel_init+0x98/0x13c) from [<8003f388>] (kernel_thread_exit+0x0/0x8)
    ---[ end trace 50c2318908e304ef ]---
    ------------[ cut here ]------------
    WARNING: at mm/vmalloc.c:106 vmap_page_range_noflush+0x178/0x1b8()
    Modules linked in:
    [<80045a48>] (unwind_backtrace+0x0/0x138) from [<800726d4>] (warn_slowpath_common+0x4c/0x64)
    [<800726d4>] (warn_slowpath_common+0x4c/0x64) from [<80072708>] (warn_slowpath_null+0x1c/0x24)
    [<80072708>] (warn_slowpath_null+0x1c/0x24) from [<800de368>] (vmap_page_range_noflush+0x178/0x1b8)
    [<800de368>] (vmap_page_range_noflush+0x178/0x1b8) from [<800cfa10>] (pcpu_alloc+0x574/0xa0c)
    [<800cfa10>] (pcpu_alloc+0x574/0xa0c) from [<80292d74>] (__percpu_counter_init+0x24/0x7c)
    [<80292d74>] (__percpu_counter_init+0x24/0x7c) from [<80280f64>] (prop_local_init_percpu+0x34/0x3c)
    [<80280f64>] (prop_local_init_percpu+0x34/0x3c) from [<800cd7b4>] (bdi_init+0xe8/0x124)
    [<800cd7b4>] (bdi_init+0xe8/0x124) from [<80015464>] (swap_setup+0x1c/0x40)
    [<80015464>] (swap_setup+0x1c/0x40) from [<80015490>] (kswapd_init+0x8/0x24)
    [<80015490>] (kswapd_init+0x8/0x24) from [<800384f0>] (do_one_initcall+0x34/0x174)
    [<800384f0>] (do_one_initcall+0x34/0x174) from [<80008944>] (kernel_init+0x98/0x13c)
    [<80008944>] (kernel_init+0x98/0x13c) from [<8003f388>] (kernel_thread_exit+0x0/0x8)
    ---[ end trace 50c2318908e304f0 ]---
    PERCPU: allocation failed, size=4 align=4, failed to populate
    [<80045a48>] (unwind_backtrace+0x0/0x138) from [<800cfe08>] (pcpu_alloc+0x96c/0xa0c)
    [<800cfe08>] (pcpu_alloc+0x96c/0xa0c) from [<80292d74>] (__percpu_counter_init+0x24/0x7c)
    [<80292d74>] (__percpu_counter_init+0x24/0x7c) from [<80280f64>] (prop_local_init_percpu+0x34/0x3c)
    [<80280f64>] (prop_local_init_percpu+0x34/0x3c) from [<800cd7b4>] (bdi_init+0xe8/0x124)
    [<800cd7b4>] (bdi_init+0xe8/0x124) from [<80015464>] (swap_setup+0x1c/0x40)
    [<80015464>] (swap_setup+0x1c/0x40) from [<80015490>] (kswapd_init+0x8/0x24)
    [<80015490>] (kswapd_init+0x8/0x24) from [<800384f0>] (do_one_initcall+0x34/0x174)
    [<800384f0>] (do_one_initcall+0x34/0x174) from [<80008944>] (kernel_init+0x98/0x13c)
    [<80008944>] (kernel_init+0x98/0x13c) from [<8003f388>] (kernel_thread_exit+0x0/0x8)
    ------------[ cut here ]------------
    WARNING: at mm/percpu-vm.c:320 pcpu_alloc+0x940/0xa0c()
    Modules linked in:
    [<80045a48>] (unwind_backtrace+0x0/0x138) from [<800726d4>] (warn_slowpath_common+0x4c/0x64)
    [<800726d4>] (warn_slowpath_common+0x4c/0x64) from [<80072708>] (warn_slowpath_null+0x1c/0x24)
    [<80072708>] (warn_slowpath_null+0x1c/0x24) from [<800cfddc>] (pcpu_alloc+0x940/0xa0c)
    [<800cfddc>] (pcpu_alloc+0x940/0xa0c) from [<800ebb54>] (kmem_cache_open+0x1c8/0x328)
    [<800ebb54>] (kmem_cache_open+0x1c8/0x328) from [<800ebdf0>] (kmem_cache_create+0x13c/0x2f0)
    [<800ebdf0>] (kmem_cache_create+0x13c/0x2f0) from [<80019588>] (dnotify_init+0x44/0x84)
    [<80019588>] (dnotify_init+0x44/0x84) from [<800384f0>] (do_one_initcall+0x34/0x174)
    [<800384f0>] (do_one_initcall+0x34/0x174) from [<80008944>] (kernel_init+0x98/0x13c)
    [<80008944>] (kernel_init+0x98/0x13c) from [<8003f388>] (kernel_thread_exit+0x0/0x8)
    ---[ end trace 50c2318908e304f1 ]---
    ------------[ cut here ]------------
    WARNING: at mm/vmalloc.c:106 vmap_page_range_noflush+0x178/0x1b8()
    Modules linked in:
    [<80045a48>] (unwind_backtrace+0x0/0x138) from [<800726d4>] (warn_slowpath_common+0x4c/0x64)
    [<800726d4>] (warn_slowpath_common+0x4c/0x64) from [<80072708>] (warn_slowpath_null+0x1c/0x24)
    [<80072708>] (warn_slowpath_null+0x1c/0x24) from [<800de368>] (vmap_page_range_noflush+0x178/0x1b8)
    [<800de368>] (vmap_page_range_noflush+0x178/0x1b8) from [<800cfa10>] (pcpu_alloc+0x574/0xa0c)
    [<800cfa10>] (pcpu_alloc+0x574/0xa0c) from [<800ebb54>] (kmem_cache_open+0x1c8/0x328)
    [<800ebb54>] (kmem_cache_open+0x1c8/0x328) from [<800ebdf0>] (kmem_cache_create+0x13c/0x2f0)
    [<800ebdf0>] (kmem_cache_create+0x13c/0x2f0) from [<80019588>] (dnotify_init+0x44/0x84)
    [<80019588>] (dnotify_init+0x44/0x84) from [<800384f0>] (do_one_initcall+0x34/0x174)
    [<800384f0>] (do_one_initcall+0x34/0x174) from [<80008944>] (kernel_init+0x98/0x13c)
    [<80008944>] (kernel_init+0x98/0x13c) from [<8003f388>] (kernel_thread_exit+0x0/0x8)
    ---[ end trace 50c2318908e304f2 ]---
    PERCPU: allocation failed, size=16 align=8, failed to populate
    [<80045a48>] (unwind_backtrace+0x0/0x138) from [<800cfe08>] (pcpu_alloc+0x96c/0xa0c)
    [<800cfe08>] (pcpu_alloc+0x96c/0xa0c) from [<800ebb54>] (kmem_cache_open+0x1c8/0x328)
    [<800ebb54>] (kmem_cache_open+0x1c8/0x328) from [<800ebdf0>] (kmem_cache_create+0x13c/0x2f0)
    [<800ebdf0>] (kmem_cache_create+0x13c/0x2f0) from [<80019588>] (dnotify_init+0x44/0x84)
    [<80019588>] (dnotify_init+0x44/0x84) from [<800384f0>] (do_one_initcall+0x34/0x174)
    [<800384f0>] (do_one_initcall+0x34/0x174) from [<80008944>] (kernel_init+0x98/0x13c)
    [<80008944>] (kernel_init+0x98/0x13c) from [<8003f388>] (kernel_thread_exit+0x0/0x8)
    Kernel panic - not syncing: Cannot create slab dnotify_mark size=80 realsize=80 order=0 offset=0 flags=40000

  • We have a suspicion that the power scaling is a little bit too aggressive, when the CPU slows down the frequency, an effect that is only visible on some boards. Can you do the following test:


    In the Linux kernel, call make menuconfig. Then go to "CPU Power Management" -> "CPU Frequency scaling" -> "Default CPUFreq governor". Here select "performance" instead of "interactive". This is a mode where the CPU is not throttled down and always runs at full speed. Now recompile the kernel and install it on the board. Do these failures persist or are they gone now?


    Let's expect that the board now works correctly. Now you can verify the thing in the other direction. At runtime, execute the following command


    echo interactive > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor


    This will activate the slower frequencies again. Now try to execute some commands. If our assumption is correct, then the errors should reappear now.


    Behind the scenes, we are currently working heavily on all the i.MX6 stuff. There will be a new release coming in the next few weeks (in any case 2014), still based on kernel 3.0.35, but with newer BuildRoot and newer U-Boot. There we will also have a closer look at the power settings.


    In parallel we are also working on porting the kernel to 3.10. But this will also change the board support to Device Trees, which is quite different to the previous method. A first pre-release version with u-boot-2014.01 and kernel 3.10.17 will be available in the next few days, but it will only support the efusA9 module and it will also be with Yocto, not BuildRoot. Therefore it will most probably be early 2015 until we have a regular release that supports 3.10 on all boards and will also feature BuildRoot again.


    Your F&S Support Team

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Hello, i am the customer who was in your company in July, we already set the frequency governor to performance.
    This problem was solved: some USB touch panel controllers were faulty and let hang the system.


    We have still one problem:
    -we never were able to connect directly to the board using Prolific USB/Serial Converters. So we used between RS232/RS485 board made by our company to temporarily resolve problem.
    Now we bought a FTDI 232 USB/serial converter that is considered very reliable, but same problem occurs: no serial data is correctly sent or received by the board, also this serial converter works with all other peripherals we have. Again, the only way to have a correct serial communication is to put between RS232/RS485 boards made by us.
    We think there is still a RS232 logical level problem or something else, as from oscilloscope we can see the data incoming and outgoing but at different levels from the board and from computer, so UART does not receive anything.
    Do you know how to solve the problem with the serial converters i talked about? Or could you suggest an USB/serial converter that surely works?
    This is still a big problem for us.
    Best Regards
    Miroglio Paolo

  • Let me clarify this. You have a USB to serial converter on the PC side? And want to connect to the serial port of the armStoneA9? And then the armStone does not receive/send the correct data? Does it receive nothing at all? Or wrong data?


    Which /dev/ttymxc port of the armStoneA9 are you using?


    And just to be sure: do you use the correct cable? The connection requires a NULL-modem cable, where RxD and TxD (and RTS/CTS) are crossed.


    Your F&S Support Team

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.