Flash/Update kernel on viola board

It have been a while since I last worked in embedded and never worked with toradex modules so I am a bit lost to set up flexcan on a Colibri iMX6ULL with a Viola carrier board.

I was able to install the torazon linux image BSP 3 with easy installer via vnc.

I was able to setup the sdk and build a hello world app and run on the board.

I was able to create a recipe and use bitbake to build a package for the hello world app.

I was able to follow the instructions at CAN (Linux) | Toradex Developer Center and set the can devices on the dtsi files.

I was able to build the kernel.

Now I am a bit lost trying to figure out how to flash the carrier board with new kernel and modules.

From past experience I know it’s something you should do only when you are sure on how to do it because most embedded boards love to get bricked at this point.

The problem is I see a lot of information on the Colibri development board but almost nothing in the viola carrier board.

I think my boss bought the viola because there where no stonk on the colibri or something like that,

Could you please point me to instructions on how to flash my new kernel and modules to the viola board?

I only have ethernet access.

Also I would like to know if there is an intermediate step between editing the dtsi files and building the kernel or my newly built kernel have the correct can devices set.

Thank you

You can flash an image using Toradex Easy Installer. IF you brick your device you can load Toradex Easy Installer via USB OTG. Unfortunately Viola board does not support this. You need either Viola Plus or any other Colibri Carrer baird (Iris, Aster, Colibri Evaluation board).

I do have the Viola Plus board.

My hardware is:
Colibri iMX6ULL 512MB IT V1.1A
Viola Plus v1.28

I have installed the embedded linux minimall-image BSP 5.0 and built the same image but BSP 3.0.

I have connected the USB cable to the client USB port - mini usb - on the board but is not seen by Easy Installer.

I checked out how to put the board in recovery, but it seems from the documentation PDF that the only way os soldering a 10k resistor on the board.

It looks like my mistake was to test the board with a built-in image from the toradex easy installer pre-installed on it. It have no can bus, even while the modules are there.

Anyway the instructions I followed on the CAN page on the docs told me to edit the file imx6ull-colibri-eval-v3.dtsi

Now I guess this dtsi file is for the Colibri Evaluation Board not for the Viola Plus carrier board.

I see no dtsi files for the VIola Plus, so I am not even sure the kernel I built will work.

I guess there is no documentation on how to build a kernel with can enabled, or how to enable can on a built-in image for the Colibri iMX6ULL on the Viola Plus Carrier Board.

If you could point me in the right direction that would be great.

Viola board has no CAN transceiver. So you can’t test CAN on Viola anyway.
Required modification of Device tree described here.
Instruction for Kernel and Device tree compilation is here.

Please try to load Toradex Easy Installer as described here.

Thank you for your help alex.

I have just done those steps, but the last one.

I would like to clarify, Does editing the imx6ull-colibri-eval-v3.dtsi as pointed in the device tree modificaction on the link you sent me, routes the can1 kernel device to the pins 55/63 on the SODIMM board ?

Another question is, Is there a Linux reference image for the iMX6ULL on the built-in Toradex Easy Installer with the can bus enabled ?

And last one, how do I connect the Viola Plus USB OTG to the PC? There are no descriptions on the pins or connector to use in the documentation you point me to.

Thanks in advance.

Hi @iagorubio ,

As you can see in the link provided by @alex.tx, there’s this section here. Showing all the necessary changes. It also states that the default pins are exactly SODIMM 55/63 like you mentioned. Be aware to not use these pins as GPIO’s at the same time.

Snipped from link:

FlexCAN1 controller uses SODIMM pins 55/63 by default and those pins are configured as GPIOs through the &pinctrl_7 node. Make sure that &pinctrl_7 is not being used in your device tree.

Not that I am aware of.

Use the micro USB connector on the bottom of the board. Be aware that when you use this one, there must not be anything connected on the lower of the double USB-A slots on the top of the board as these share the data lines.

Hope this answers your questions.

Best Regards

Hi Kevin, thanks for your support.

I have already walked this path, my question is if the changes done on the imx6ull-colibri-eval-v3.dtsi, that seem bound to the Collibri Evaluation Board, are also working for the Viola Plus v1.2 board.

I did that with the Colibri-iMX6ULL_ToradexEasyInstaller_5.7.1+build.13 and Colibri-iMX6ULL_ToradexEasyInstaller_1.8-20181019.

None of those worked.

The USB is identified as an Ethernet device, and none of the configurations on both easyInstall bundles match the USB Device ID 0x402c .

Thanks again for your support.

You need to put module in to a recovery mode as described here

1 Like

Ops, thank you.

I was using the wrong pins on the Ftdi cable.

I got it finally working.

Thanks Alex.

1 Like