VF61 boots and runs very slowly

I have a Colibri vf61 module running linux V2.5 on a custom board with two LAN ports. The vast majority of the time, the module boots and operates fine. However, very very occasionally, the module boots extremely slowly on power-up. Each line in the boot sequence takes seconds. When I recycle the power, all is fine again. Any ideas?

@ashinton, Would you be able to provide the kernel messages (dmesg) from one of these slow boots?

journal log attached.link text

It looks like their are errors associated with ALSA. This doesn’t look like our stock kernel. Can you provide more info about the kernel you’re using. DId you build it? Can you share the kernel config & device tree? Perhaps you can try one of our stock kernels.

I modified the standard Toradex kernel to include PPS support and NXP PCF8523 RTC. I have attached the kernel configuration and modified device tree file

link text

The provided device tree seems to be for a Colibri VF50, but the kernel log and your initial inquiry mentions a Colibri VF61…

As Brandon mentions, the kernel log indicates that the issue is related to the audio functionality of the VF61. It is not clear to me if that comes from a bad interaction with the PPS driver or something else… Do you need audio or resistive touch support?

I have both VF61 and VF50 modules. The same device tree modifications have been made to both device trees. I do not need audio or touch support.

Since you do not use Audio/Touch and Audio/Touch seems to cause the issue, can you try with audio disabled?

Add the following lines to your carrier board device tree:

&sai0 {
    status = "disabled";
};
&sai2 {
    status = "disabled";
};
&sound {
    status = "disabled";
};

When I add the specified lines, the device tree compiles with errors:

andrew@UbuntuLinux:/opt/TORADEX_COLIBRI_VF_KERNEL/linux-toradex$ make dtbs
  CHK     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
  CHK     include/generated/bounds.h
  CHK     include/generated/asm-offsets.h
  CALL    scripts/checksyscalls.sh
  DTC     arch/arm/boot/dts/vf610-colibri-my-slan-carrier.dtb
Error: arch/arm/boot/dts/vf610-colibri-my-slan-carrier.dts:126.2-3 label or path, 'sai1', not found
Error: arch/arm/boot/dts/vf610-colibri-my-slan-carrier.dts:130.2-3 label or path, 'sound', not found
FATAL ERROR: Syntax error parsing input tree
make[1]: *** [arch/arm/boot/dts/vf610-colibri-my-slan-carrier.dtb] Error 1
make: *** [dtbs] Error 2

Hm, I made an error in my above example, it should be sai2 instead of sai1. I updated my initial answer accordingly, sorry about that. However, sound should be a valid device tree node and being picked up from vf610-colibri.dtsi.

What module level device tree is included in your vf610-colibri-my-slan-carrier.dts file? It should include the following file:

#include "vf610-colibri.dtsi"

Also see the include dependencies in our Device Tree Customization article.