4.1 testing

Branched from git://, Branch: processor-sdk-linux-02.00.00
Adds initial support for the Critical Link MitySOM-335x module and dev kit.

The device tree is hardcoded to support modules with 512MB of RAM. Search for "512" in am335x-mitysom.dts to find the line that needs to be changed if you don't have 512MB of RAM on your module.

Supported interfaces using the MitySOM-335x dev kit



  • Console
  • MMC0
  • Ethernet (Micrel PHY)
  • RS-485 (UART3/UART4, Expansion 0/1)
  • CAN0/CAN1
  • USB/micro USB

U-boot does not have to be changed from the latest Critical Link version

Build instructions

On a Linux install or Virtual Machine, install yocto toolchain from

NOTE: After TI's EZSDK release 8.0, TI has renamed their SDKs from EZSDK to Processor SDK. They also decided to reset their numbering scheme to 1.0. Their latest processor SDK should work with this example and is available here:

$ source /opt/criticallink/mitysom-335x_20170306/environment-setup-cortexa8t2hf-vfp-neon-criticallink-linux-gnueabi
$ make CROSS_COMPILE=arm-criticallink-gnueabihf- ARCH=arm distclean
$ make CROSS_COMPILE=arm-criticallink-gnueabihf- ARCH=arm mitysom-335x-devkit_defconfig
$ make CROSS_COMPILE=arm-criticallink-gnueabihf- ARCH=arm zImage modules
$ make INSTALL_MOD_PATH=/path/to/root_filesystem ARCH=arm CROSS_COMPILE=arm-criticallink-gnueabihf- modules_install
$ make CROSS_COMPILE=arm-criticallink-gnueabihf- ARCH=arm am335x-mitysom.dtb

The device tree file will be located at arch/arm/boot/dts/am335x-mitysom.dtb

Booting from Network

Useful U-Boot boot commands (loading Device tree, kernel, and filesystem over the network):
(you will need to set $serverip to the IP address of the EZSDK machine)

setenv fdtaddr 0x88000000; setenv fdt_high 0xFFFFFFFF; setenv kloadaddr 0x80007fc0
setenv rootpath /export/rootfs
run net_args
setenv serverip
dhcp; tftp $fdtaddr am335x-mitysom.dtb; tftp $kloadaddr zImage; bootz $kloadaddr - $fdtaddr

Booting from SD Card

If you already have an SD card from the Critical Link Dev Kit, there are two main partitions on the card: boot and rootfs. You will need to copy files to these partitions in order to boot the 3.14 kernel:

  • zImage: copy to the Boot partition.
    $ sudo cp arch/arm/boot/zImage /path/to/mounted/sdcard/boot
  • Device tree file: copy to the Boot partition:
    $ sudo cp arch/arm/config/am335x-mitysom.dtb /path/to/mounted/sdcard/boot
  • Rootfs: copy to the rootfs partition on the sdcard. The yocto root filesystem can be found in /opt/criticallink/mitysom-335x_20170306/deploy/mitysom-335x-devkit-mitysom-335x.tar.bz2
    PLEASE type carefully so you do not delete important system files.
    $ cd /path/to/mounted/sdcard/rootfs
    $ sudo rm -rf /path/to/mounted/sdcard/rootfs/* 
    $ sudo tar xavf mitysom-335x-devkit-mitysom-335x.tar.bz2
  • Kernel modules: copy to the root filesystem.
    $ sudo cp -R path/to/installed/modules/lib/modules/4.1*  /path/to/mounted/sdcard/rootfs/lib/modules/

Once the files have been copied to your SD card, please use these commands in U-Boot to boot the 4.1 kernel:

U-Boot# mmcinfo
U-Boot# setenv fdtaddr 0x88000000; setenv fdt_high 0xFFFFFFFF; setenv kloadaddr 0x80007fc0
U-Boot# fatload mmc 0 $kloadaddr zImage            
reading zImage
4284120 bytes read in 477 ms (8.6 MiB/s)
U-Boot# fatload mmc 0 $fdtaddr am335x-mitysom.dtb
reading am335x-mitysom.dtb
37893 bytes read in 10 ms (3.6 MiB/s)
U-Boot# run mmc_args
U-Boot# bootz $kloadaddr - $fdtaddr     

You can save the current U-Boot environment to NAND using the saveenv command. In addition, once you have commands you want to use to boot (and you're typing them in manually), you can save those commands to the bootcmd variable which U-Boot runs by default:

  • U-Boot# setenv bootcmd "mmcinfo; fatload mmc 0 0x82000000 zImage; fatload mmc 0 0x80F80000 am335x-mitysom.dtb; run mmc_args; bootz 0x82000000 - 0x80F80000"
  • U-Boot# saveenv

This will save this config to the NAND and it should run on the next boot if you do not interrupt U-Boot.



Go to top
Add picture from clipboard (Maximum size: 600 MB)