Update firmware from microSD card

If you don't have a TFTP server, you can still program Android in your ConnectCore 6 device using a microSD card. The microSD card must be formatted and have at least 2 GB of capacity.

To program Android from the microSD card:

  1. Power off the device.
  2. Change the boot source configuration to boot from the internal eMMC. To do so, set the boot mode micro-switches as follows:
    • SW3.1 OFF
    • SW3.2 OFF

  3. Place the Android firmware images in the root of the FAT formatted microSD card:
    • <u-boot-file>.imx
    • boot.img
    • system.img
    • recovery.img

    Note See hardware variants to verify which U-Boot binary you need.
    After building the Android firmware, you can find the image files inside the sources directory at:

    out/target/product/imx6_ccimx6_sbc
  4. Connect the serial adapter cable to the console port [CONS] and a serial cable from the adapter to the development computer.
  5. Open a serial connection to the serial port to which the ConnectCore 6 is connected. Use the following settings:
    • Port: Serial port to which ConnectCore 6 SBC is attached
    • Baud rate: 115200
    • Data Bits: 8
    • Parity: None
    • Stop Bits: 1
    • Flow control: None
  6. Power on the device and immediately press a key in the serial terminal to stop the auto-boot process. You will be stopped at the U-Boot bootloader prompt:
U-Boot dub-2015.04-r8.3+g0de0373ade (Apr 23 2017 - 22:26:53)

CPU:   Freescale i.MX6Q rev1.5 1200 MHz (running at 792 MHz)
CPU:   Extended Commercial temperature grade (-20C to 105C) at 48C
Reset cause: POR
I2C:   ready
DRAM:  1 GiB
MMC:   FSL_SDHC: 0 (eMMC), FSL_SDHC: 1
In:    serial
Out:   serial
Err:   serial
ConnectCore 6 SOM variant 0x02: Consumer quad-core 1.2GHz, 4GB eMMC, 1GB DDR3, -20/+70C, Wireless, Bluetooth, Kinetis
Board: ConnectCore 6 SBC, version 3, ID 129
Boot device: MMC4
PMIC:  DA9063, Device: 0x61, Variant: 0x60, Customer: 0x00, Config: 0x56
Net:   FEC [PRIME]
Normal Boot
Hit any key to stop autoboot:  0
=>
=>
  1. Optional. Update the U-Boot image:
    1. Execute the following command to update the U-Boot image:
      => update uboot mmc 1 fat <u-boot-file>.imx
    2. Reset the board to boot into the recently updated U-Boot, and press any key to stop the auto-boot process.
    3. Reset the U-Boot environment to default values (this will not reset protected variables like the MAC address). To do so, issue this command:
      => env default -a
    4. Configure the network and TFTP settings on your ConnectCore 6 device again and save the configuration. For instructions, see previous steps 5 and 6.
  2. Configure the partition table of eMMC to hold Android images. To do so, execute these commands:
    => setenv mmcdev 0
    => run partition_mmc_android
  3. Update the kernel image by executing this command:
    => update boot mmc 1 fat boot.img
  1. Wait until the process ends, then update the Android file system image by issuing this command:
    => update system mmc 1 fat system.img
  2. Wait until the process ends, then update the recovery executing this command:

    => update recovery mmc 1 fat recovery.img
  3. Wait until this process finishes to force the format of cache and data partitions:

  4. => bootargs_once="androidboot.cache=format androidboot.data=format"

    Note If the cache and data partitions are already formatted or you wish to preserve their contents, you can skip this command.

  5. Boot the device by executing this command:
    => boot

    Note The first Android boot takes several minutes due to system deployment.