Communicating with the Board

With Android, there are several options to connect your host PC to the Genio boards for debugging and development purposes:

  • UART Port: The UART port provides access to Boot ROM, bootloader and kernel console access in Android. This design is shared across all Genio EVKs.

  • USB: Various functionality is provided via the USB of Genio SoCs in it’s default configuration:
    • Image Download: You can program the on-board storage (EMMC or UFS) through USB with Genio Tools.

    • Ethernet connectivity: The device is configured to expose a virtual Ethernet connection with the host via multiple protocols.

      This allows various networking services to be exposed such as ssh / scp to obtain shell & file transfer functionality.

    • Debugging capabilites: The device is also configured as an Android Debug Bridge (ADB) device.

Serial Console

Most Genio evaluation kits and development boards have the UART0 port connected to an UART-to-USB chip, such as FTDI-232 on Genio 350-EVK, which expose the UART as an USB serial device to your host PC, allowing access to boot messages, plus bootloader and Linux consoles.

Note

See Connecting Board to Host for more details of connecting UART0. For other development boards, check which port UART0 is connected to in the user guide or schematics of the board.

Serial configuration

Different stages of the boot process utilise different baud rates:

Console Baud Rates

Console

Baud Rate

Purpose

Download Agent

921600

Download progress log from download agent (lk.bin) when using genio-flash

Boot ROM

115200

SoC boot ROM logs and messages

Bootloader Console

921600

Bootloader console for debugging and boot configurations

Kernel Console

921600

kernel messages and inux console

Settings other than baud rate are the same between the boot firmware and Linux console:

  • Data Bits: 8

  • Stop Bits: 1

  • Parity: None

  • Flow control: None

Connect to UART

You can now connect to the UART using the following command:

picocom -b 921600 /dev/ttyUSB0

or using

screen /dev/ttyUSB0 921600

Note

Depending on your system, you may have more than one USB serial device connected, which means the board might not be presented as /dev/ttyUSB0 in your system. In this case, please try other ttyUSB devices (i.e. /dev/ttyUSB1, /dev/ttyUSB2, etc.)

ADB

The following commands are supported:

  • adb push

  • adb pull

  • adb shell

Examples of adb commands

adb push

This command is used to transfer files from your computer to an Android device.

Example:

adb push /path/to/local/file.txt /sdcard/file.txt

This command pushes file.txt from your computer to the /sdcard directory on your Android device.

adb pull

This command is used to transfer files from an Android device to your computer.

Example:

adb pull /sdcard/file.txt /path/to/local/directory/

This command pulls file.txt from the /sdcard directory on your Android device to a specified directory on your computer.

adb shell

This command opens a remote shell on your Android device, allowing you to execute commands directly on the device.

Example:

adb shell

After executing this command, you will be in the shell environment of the Android device, where you can run commands like ls, cd, mkdir, etc.

Alternatively, you can run a specific command directly:

adb shell ls /sdcard/

This command lists the contents of the /sdcard directory on your Android device without opening an interactive shell.