AM62x SK EVM

Introduction

The AM62x starter kit (SK) evaluation module (EVM) is a stand-alone test and development platform built around the AM62x (SoC).

There are many hardware revisions available for this EVM, mainly 2 families:

  1. AM62x SK EVM

  2. AM62x Low Power (LP) SK EVM

Both families are supported in Android using the same lunch target.

Each families can also have slightly different SoCs, based on security:

  • GP (Global Purpose)

  • HS-FS (High Secure, Field Securable)

Initial flashing procedure

Flashing Android the first time requires booting from DFU.

First, make sure to install snagboot following the official instructions

Make sure to install the udev rules as documented:

$ snagrecover --udev > 50-snagboot.rules
$ sudo cp 50-snagboot.rules /etc/udev/rules.d/
$ sudo udevadm control --reload-rules
$ sudo udevadm trigger

Then, the following steps are required:

  1. Change BOOTMODE DIP switches for DFU (USB) boot:

    Switch Label

    SW2: 12345678

    SW3: 12345678

    USB DFU

    00000000

    11001010

    For E1 revision, make sure to set SW1: 01001010 instead.

  2. Ensure the device is plugged in with USB Host and Debug UART/Serial Debug.

    The board should be setup as follow:

    _images/am62x_sk_evm_dfu.jpg
  3. Open a terminal debugger to view console output from the device:

    $ sudo picocom -b 115200 -r -l /dev/ttyUSB0
    
  4. Run snagrecover

    # for AM62x SK EVM (GP)
    $ snagrecover -s am625 -f ./am62x-sk-evm.yaml
    
    # for AM62x SK EVM (HS-FS)
    $ snagrecover -s am625 -f ./am62x-sk-evm-hsfs.yaml
    
    # for AM62x LP SK EVM (GP)
    $ snagrecover -s am625 -f ./am62x-lp-sk-evm.yaml
    
    # for AM62x LP SK EVM (HS-FS)
    $ snagrecover -s am625 -f am62x-lp-sk-evm-hsfs.yaml
    

    In the serial console, you will see some logs ending with:

    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.0.5--v09.00.05 (Kool Koala)')
    SPL initial stack usage: 1856 bytes
    MMC: no card present
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1:1
    Error: could not access storage.
    Trying to boot from DFU
    

    Type Ctrl-C in the serial console to continue to U-Boot. Then hit any key to halt on the U-Boot prompt.

  5. Make sure the default U-Boot environment is configured

    => env default -a -f
    => saveenv
    
  6. Start fastboot

    => fastboot usb 0
    
  7. In a different terminal, change directory to out/target/product/am62x and run the flashall.sh script:

    $ cd out/target/product/am62x
    
    # for AM62x SK EVM (GP)
    $ sudo ./flashall.sh --board am62x-sk
    
    # for AM62x SK EVM (HS-FS)
    $ sudo ./flashall.sh --board am62x-sk --hsfs
    
    # for AM62x LP SK EVM (GP)
    $ sudo ./flashall.sh --board am62x-lp-sk
    
    # for AM62x LP SK EVM (HS-FS)
    $ sudo ./flashall.sh --board am62x-lp-sk --hsfs
    
  8. Change Boot mode DIP switches to boot from eMMC UDA mode and power cycle the board:

    Switch Label

    SW2: 12345678

    SW3: 12345678

    EMMC (with UDA)

    00000000

    11000010

Device Tree Overlays

Device Tree Overlays (DTBO) can be enabled from U-Boot when extra peripherals are connected to the board. DTBOs are board specific. To configure dtbos, reboot to the U-Boot console and set the adtbo_idx environment variable.

=> env set adtbo_idx '2'
=> saveenv

Note

Enabling multiple DTBOs is not supported.

Here is the list of adtbo_idx that is supported on AM62x SK EVM and its LP variant:

Index

Description

0

HDMI audio output (bridge by shorting a (J24) header on the board.)

1

Digilent PCam 5C OV5640 Camera

2

TEVI-OV5640C-S84-IR-RPI Camera

3

Microtips Technology USA 10.1” WUXGA (1920x1200) OLDI panel

4

Enable MAIN and MCU GPIO + CANUART wakeup source

5

for LP Microtips Technology USA 10.1” WUXGA (1920x1200) OLDI panel

11

M.2-CC3301 WiFi board on the M.2 connector

Touch support

To enable touch input on the am62x:

  1. Power off the LVDS board by disconnecting the 12V barrel jack (do not power off the SK EVM)

  2. Run the following commands from the Linux prompt:

# rmmod ili210x
# i2ctransfer -f -y 0 w3@0x3f 0x09 0x1 0x0e
# i2ctransfer -f -y 0 w6@0x3f 0x08 0x04 0x47 0x50 0x73 0x68
  1. Power on the LVDS board

  2. Run the following command:

insmod /vendor/lib/modules/ili210x.ko

After re-initializing the module, the touch IC should now be registered as an input and touch should be functional.

Note

This step needs to be done each time the board reboots.

External resources