Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Setting up the environment

  1. HummingBoard Gate/Edge

  2. PC that runs Linux

  3. Terminal emulation (putty, minicom etc..) that are connected to HummingBoard2 serial terminal 115200bps 8N1 (J25 pin header where pin 1-gnd,2-i.MX6 TX, 3-i.MX6 RX) – newer PCB layout: J2 pins (6,8,10)

  4. Download and build – imx_usb_loader (credit to BoundaryDevices for the great tool) –https://github.com/boundarydevices/imx_usb_loader

  5. RECOMMENDED – For ease of use we already built imx_usb_loader as static binary with libusb-1.0 and all required configuration files. It can be downloaded from Here-Rev1.1

  6. USB host to host cable – refer to eFuses for i.MX6 SOM  USB host to host cable preparation

Booting through USB OTG

As a reminder, a fresh i.MX6 device (unfused) will boot off the USB OTG port. SolidRun USB OTG port is actually a USB type A host connector but carries the same USB OTG signals. (please make sure to have the latest u-boot-tools installed)

  1. Connect HummingBoard2 USB OTG Host port to PC host and power it up.

  2. While running ‘lsusb’ on the Linux PC you should be seeing either one of the following IDs where the first is for the dual/quad and the second is for the solo / dual-lite devices –

    Code Block
    Bus 002 Device 047: ID 15a2:0054 Freescale Semiconductor, Inc. i.MX6Q SystemOnChip in RecoveryMode
    Bus 002 Device 059: ID 15a2:0061 Freescale Semiconductor, Inc.
  3. Open up the serial console, as a reminder this is a null modem (i.e. hw/sw flow controls are disabled)

  4. Run ‘./runme.sh’ which will mkimage the boot.txt to boot.scr (boot scriptr) and then run ‘sudo ./imx_usb -c .’ which will transfer u-boot.imx DCD (DDR intialization), zImage to 0x10a00000, device tree to 0x18000000 and a boot.scr to 0x17f00000. Once u-boot.imx runs it will source boot.scr

  5. You should see on the terminal u-boot prompt with it’s boot count down. Press any key to stop it.

  6. You can now use ‘fuse’ utility to modify fuses, or you can boot Linux and modify fuses there. To boot Linux run –

    Code Block
    'setenv bootargs console=ttymxc0,115200; bootz 0x10a00000 - 0x18000000'
  7. The root filesytstem is embedded in the kernel image (initramfs) and root password is –

    Code Block
    123456

Blowing fuses to program the unit MAC address

...

echo <high 16 bit of the MAC address> > /sys/fsl_otp/HW_OCOTP_MAC1
echo <lower 32bit of the MAC address> > /sys/fsl_otp/HW_OCOTP_MAC0 
For example – Program MAC Address 'D0:63:12:34:56:78'

Code Block
echo 0xd063 > /sys/fsl_otp/HW_OCOTP_MAC1
echo 0x12345678 > /sys/fsl_otp/HW_OCOTP_MAC0

...