From ArndaleBoard.org

Jump to: navigation, search

Contents

Important Notice

THIS DOCUMENT

This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License.

To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 301, ACE High-en Tower 1st, Guro 3-dong, Guro-gu, Seoul, Korea.

For more information, see http://creativecommons.org/license/results-one?license_code=by-sa

This evaluation board/kit is intended for use for ENGINEERING DEVELOPMENT, DEMONSTRATION, OR EVALUATION PURPOSES ONLY and is not considered by arndale board to be a finished end-product fit for general consumer use.

WARRANTY

The Arndale Octa Board is warranted against defects in materials and workmanship for a period of 90 days from purchase. This warranty does not cover any problems occurring as a result of improper use, modifications, exposure to water, excessive voltages, abuse, or accidents.

All boards will be returned via standard mail if an issue is found. If no issue is found or express return is needed, the customer will pay all shipping costs.

Getting Started with Andale Octa Board

Arndale Octa Board Packages & Accessories

Arndale Octa Board package is organized as follows.

Arndale Octa Board Package

5420 board.png

Exynos 5420 adopts the Cortex-A15 core(quad), which is 40% DMIPS higher than the CortexA9 core and targets 1.8GHz speed. It also incorporates the Cortex-A7 core(quad) which enables energy efficient computing for less intensive tasks Exynos 5420 provides 14.9GB/s memory bandwidth for heavy traffic operations such as 1080p video en/decoding, 3D graphics display and high resolution image signal processing with WQXGA Display. The application processor supports dynamic virtual address mapping aiding software engineers to fully utilize the memory resources easily. Exynos 5420 provides the best 3D graphics performance with wide range of APIs such as OpenGHL ES1.1/2.0 and 3.0, OpenVG1.0.1. Exynos 5420's 3D core's universal scalable Shader engine supports the feature sets in Microsoft VS5.0 and PS5.0. Superior 3D performance fully supports WQXGA display. Exynos5420 supports not only low power eDP but also Panel-Self-Refresh(PSR) to make a low power system. The native dual display, in particular, support WQXGA resolution for the main LCD display and 1080p 60fps HDTV display through HDMI, simultaneously. Separate post processing pipeline enables Exynos 5420 to make real display scenario.

  • ARM Cortex-A15 MPCore (Quad core) processor, which is ¡°BIG¡±core.
    • 3.5DMIPS per core with 1.8GHz operating frequency
    • 32 KB(Instruction)/32KB(Data)L1 Cache and 2MB L2 Cache
    • 1TB physical addressing
  • ARM Cortex-A7 class MPCore (Quad core) processor, which is ¡°LITTLE¡±core.
    • 1.86 DMIPS per core with 1.2 GHz operating frequency
    • 32 KB(Instruction)/32 KB(Data)L1 Cache and 512 KB L2 Cache

5420 block.jpg

  • Multi-format Video Hardware codec(MFC): 1920X1080@60fps
  • OpenGL ES1.1/2.0/3.0, OpenCL1.1, OpenVG1.0.1, DirectX 11, Google Renderscript
  • Support HDMI 1.4a interfaces with on-chip PHY
  • One channel eDP output Single WQXGA
  • Support MIPI DSI Standard Specification V1.01r11
  • Support MIPI CSI standard specification V1.0 Tow ports
  • Support USB3.0 Host 1-channel that supports SS(5Gbps) with on-chip PHY
  • Support USB2.0 Device 1-channel that supports LS/FS/HS with on-chip PHY
  • Support USB2.0 Host 2-channel that supports LS/FS/HS with on-chip PHY
  • Support USB HSIC 1-channel that supports 480Mbps with on-chip PHY
  • Support 10/100Mbps Ethernet One Port
  • Support One channel eMMC 4.41 DDR in 8bit 4GB
  • Support One channel SDIO 3.0
  • Support One channel SD2.0
  • Support Four channel high-speed UART(up to 3Mbps data rate for Bluetooth 2.0 EDR and IrDA 1.0SIR)
  • Support Three channel high-speed SPI
  • Support Three channel 24-bit I2S audio interface
  • Support Four channel I2C interface support , up 400kbps
  • Support Four channel HS-I2C up to 3.1Mps
  • Support 24bit 96kHz Stereo CODEC
  • Support Configurable GPIOs
  • Support 1EA Configurable Button
  • Support 1EA Configurable LED
  • Hold currents up to 2.3A
  • INPUT POWER DC5V

Display Module

Arndale Board Package 2.jpg

  • MIPI-DSI 4 Lane and eDP interface support
  • 7 Inch TFT LCD, Resolution 1024 * 600
  • Capacitive Touchscreen


Accessories

Accessories.jpg

  • AC Adapter (5V 5A)
  • HDMI, Serial, USB Cable, SD Card, etc

Detail of Arndale Board

5420 block 600.jpg

How to connect debug serial cable

  • WARNING : WATCH CABLE DIRECTION !!!!!

5420 serial con.png

Host Environment for Android

First of all, there is a need host PC to build android. The host PC recommended installed linux or mac os.

  • We recommend that you use Ubuntu Linux. Ubuntu 10.10 will use to explain about the below.
  • Build environments tested various platform of ubuntu distributions. But as we mentioned, we recommended ubuntu 10.10 because it is the best solution until now.
  • To build ICS(IceCream Sandwitch) or higher version, You must install based on 64bit host system.


Ubuntu-logo.gif


Installing required packages (Ubuntu 10.04 -- 11.10)

You will need a 64-bit version of Ubuntu. Ubuntu 10.04 is recommended. Building using a newer version of Ubuntu is currently only experimentally supported and is not guaranteed to work on branches other than master.

$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
  zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
 x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
 libxml2-utils xsltproc	

On Ubuntu 10.10

$ sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.	

On Ubuntu 11.10

$ sudo apt-get install libx11-dev:i386

Installing required packages (Ubuntu 12.04)

Building on Ubuntu 12.04 is currently only experimentally supported and is not guaranteed to work on branches other than master.

sudo apt-get install git-core gnupg flex bison gperf build-essential \
  zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
  libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
  libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
  python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

Configuring USB Access

Under GNU/linux systems (and specifically under Ubuntu systems), regular users can't directly access USB devices by default. The system needs to be configured to allow such access.

The recommended approach is to create a file /etc/udev/rules.d/51-android.rules (as the root user) and to copy the following lines in it. <username> must be replaced by the actual username of the user who is authorized to access the phones over USB.

# adb protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"
# fastboot protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"
# adb protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"
# fastboot protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"
# adb protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="<username>"
# fastboot protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="<username>"
# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="<username>"
# fastboot protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="<username>"
# adb protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="<username>"
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="<username>"
# usbboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", MODE="0600", OWNER="<username>"
# usbboot protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0600", OWNER="<username>"
# adb protocol on grouper (Nexus 7)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0600", OWNER="<username>"
# fastboot protocol on grouper (Nexus 7)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0600", OWNER="<username>"

Those new rules take effect the next time a device is plugged in. It might therefore be necessary to unplug the device and plug it back into the computer.

  • After you modify, the udev rules will be activated with restarting Host PC or "sudo udevadm control --reload-rules" command.

Environment for Bootloader/Kernel Build

  • Download toolchain GCC Version 4.4.3 (arm-eabi-4.4.3) from Developers Forum of Insignal
  • Unzip the downloaded toolchain into /your/own/directory/ (ex> /usr/local/arm-eabi-4.4.3)
  • Set the toolchain path up to your PATH environment like 'export PATH=$PATH:/your/own/directory'(ex> export PATH=$PATH:/usr/local/arm-eabi-4.4.3/bin)

Installing the JDK

Installing Java6

Please download from Oracle web site and select JDK(Java SE 6 Update 3X).

Download 64bit type

  • Download "Linux x64 (64bit)" jdk6u3X-linux-x64.bin

Run "jdk6u3X-linux-x64.bin" in download folder

$ cd ~/download
$ chmod +x jdk-6u3X-linux-x64.bin
$ ./jdk-6u3X-linux-x64.bin

Move to ~'/apps/'

$ mkdir -p ~/apps
$ mv jdk1.6.0_3X ~/apps/

Make symbolic link

$ ln -s ~/apps/jdk1.6.0_3X ~/apps/jdk1.6

Add below commands in '.bashrc'

export JAVA_HOME=~/apps/jdk1.6
export ANDROID_JAVA_HOME=$JAVA_HOME
export PATH=$JAVA_HOME/bin/:$PATH

Checking JAVA Version

$ which java
/home/'(User)'/apps/jdk1.6/bin//java
$ java -version
java version "1.6.0_3X"
Java(TM) SE Runtime Environment (build 1.6.0_3X-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.9-b04, mixed)


Setting serial port

Linux Minicom
4412 manual pic 1.PNG

  • Serial Port : comX ( X : means your connected) /dev
  • Baud Rate : 115200
  • Parity : 8bit
  • Hardware Flow Control : No
  • Stop bit : 1bit

How to Download Source Tree

Installing Repo

Repo is a tool that makes it easier to work with Git in the context of Android. For more information about Repo, see Version Control.

To install, initialize, and configure Repo, follow these steps:

  • Make sure you have a bin/ directory in your home directory, and that it is included in your path:
$ mkdir ~/bin
$ PATH=~/bin:$PATH
  • Download the Repo script and ensure it is executable:
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
  • For version 1.17, the SHA-1 checksum for repo is ddd79b6d5a7807e911b524cb223bc3544b661c28

Initializing a Repo client

After installing Repo, set up your client to access the android source repository:

  • Create an empty directory to hold your working files. If you're using MacOS, this has to be on a case-sensitive filesystem. Give it any name you like:
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
  • Run repo init to bring down the latest version of Repo with all its most recent bug fixes. You must specify a URL for the manifest, which specifies where the various repositories included in the Android source will be placed within your working directory.
$ repo init -u git://git.insignal.co.kr/insignal/arndale_octa-jb_mr1.1/android/manifest -b jb-mr1.1
  • To check out a branch other than "jb-mr1.1", specify it with -b:

A successful initialization will end with a message stating that Repo is initialized in your working directory. Your client directory should now contain a .repo directory where files such as the manifest will be kept.

Getting the files

To pull down files to your working directory from the repositories as specified in the default manifest, run

$ repo sync

The Android source files will be located in your working directory under their project names. The initial sync operation will take an hour or more to complete. For more about repo sync and other Repo commands, see Version Control.

Download proprietary for Eyxnos5420

Download proprietary -->>archive, vendor_samsung_slsi_exynos5420_jb-mr1.1_20131030_xxxxxx.run to root of android source tree.

Make it executable and run it:

$ chmod +x vendor_samsung_slsi_exynos5420_jb-mr1.1_20131030_xxxxxx.run
$ ./vendor_samsung_slsi_exynos5420_jb-mr1.1_20131030_xxxxxx.run

Download proprietary archive for other peripherals, vendor_insignal_arndale_octa_exynos5420_jb-mr1.1_20131205_xxxxxx.run to root of android source tree.

$ chmod +x vendor_insignal_arndale_octa_exynos5420_jb-mr1.1_20131205_xxxxxx
$ ./vendor_insignal_arndale_octa_exynos5420_jb-mr1.1_20131205_xxxxxx.run

It show license of it's contents. After agree it by typing "I ACCEPT", proprietary files will be extracted under vendor/insignal/arndale_octa/exynos5420/

Building the System

The basic sequence of build commands is as follows:

Initialize

  • Initialize the environment with the envsetup.sh script. Note that replacing "source" with a single dot saves a few characters, and the short form is more commonly used in documentation.
$ source ./arndale_octa_envsetup.sh

or

$ . ./arndale_octa_envsetup.sh
  • Environment initialization is complete, the following message appears.
including device/generic/armv7-a-neon/vendorsetup.sh
including device/generic/armv7-a/vendorsetup.sh
including device/generic/mips/vendorsetup.sh
including device/generic/x86/vendorsetup.sh
including device/samsung/arndale_octa/vendorsetup.sh
including device/samsung/smdk5420/vendorsetup.sh
including sdk/bash_completion/adb.bash
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.2.2
TARGET_PRODUCT=full_arndale_octa
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
HOST_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.5.0-41-generic-x86_64-with-Ubuntu-12.10-quantal
HOST_BUILD_TYPE=release
BUILD_ID=JDQ39
OUT_DIR=out
============================================
FYI: use following addtional functions to easy-to-build
- fuse_uboot:         Make bootalbe SD (which only has u-boot)
- mksdboot:     	Make bootalbe SD (which only has u-boot)
- fastboot_all:       Flash kernel, ramdisk, system via fastboot
- fastboot_reset:     Erase userdata and cache via fastboot
- fastboot_fmt_sd:    Erase SDCard via fastboot
- kernel_make:        Make kernel
- mkgrep:             Grep *.mk like jgrep

How to change the BUILD_VARIANT and BUILD_TYPE

  • Change the TARGET_BUILD_VARIANT, do the following:
$ choosevariant

the following message appears.

Variant choices are:
     1. user
     2. userdebug
     3. eng
Which would you like? [eng]
  • Change the TARGET_BUILD_TYPE do the following:
$ choosetype

the following message appears.

Build type choices are:
     1. release
     2. debug
Which would you like? [1]

Using ccache

ccache is a compiler cache for C and C++ that can help make builds faster. In the root of the source tree, do the following:

$ export USE_CCACHE=1
$ export CCACHE_DIR=/<path_of_your_choice>/.ccache
$ prebuilts/misc/linux-x86/ccache/ccache -M 20G

You can watch ccache being used by doing the following:

$ watch -n1 -d prebuilts/misc/linux-x86/ccache/ccache -s

On OSX, you should replace linux-x86 with darwin-x86.

Build the Code

Build everything with make. GNU make can handle parallel tasks with a -jN argument, and it's common to use a number of tasks N that's between 1 and 2 times the number of hardware threads on the computer being used for the build. E.g. on a dual-E5520 machine (2 CPUs, 4 cores per CPU, 2 threads per core), the fastest builds are made with commands between make -j16 and make -j32.

Building the Bootloader

You should be use following cross-compiler to build the boot loader.

$ cd < WORKING_DIRECTORY>/u-boot/
$ make clobber
$ make ARCH=arm CROSS_COMPILE=< TOOLCHAIN_DIRECTORY >/arm-eabi-4.4.3/bin/arm-eabi- arndale_octa_config
$ make ARCH=arm CROSS_COMPILE=< TOOLCHAIN_DIRECTORY >/arm-eabi-4.4.3/bin/arm-eabi- 

After the build, < WORKING_DIRECTORY>/uboot.bin is being made available. And < WORKING_DIRECTORY>/spl/smdk5420-spl.bin is being made available.

Building the Kernel

Setting up Arndale Board¡¯s configuration. and after build.

$ kernel_make distclean
$ kernel_make arndale_octa_android_defconfig
$ kernel_make -j8

If you want to use the kernel menuconfig, type the following command.

$ kernel_make arndale_octa_android_defconfig
$ kernel_make menuconfig

Building the Android

  • Before building Android, you must build Kernel. Otherwise, you can cause unexpected building problems.
$ make kernel-binaries
$ make -j8

Please run 'make kernel-binaries' without -j option

Building fastboot and adb

If you don't already have those tools, fastboot and adb can be built with the regular build system. Follow the instructions on the page about building, and replace the main make command with

$ make fastboot adb

Build code for SD/MMC boot

device/samsung/arndale_octa/BoardConfig.mk
* change BOARD_USES_SDMMC_BOOT set to true. (default value is false)

How to Flash a Device

Download Environment

To download an image to the target system, USB and Serial port connections are needed. USB and serial ports are connected as shown in the following pictures:

5420 board connectors.png

Boot mode setup

Arndale board provides two types of boot mode. And eMMC is the default boot mode.

  • eMMC bootmode (It's default bootmode)
    • DIP switch(CFG1/SW1) CFG1[6:1] : 001000

5420 emmc boot.png

  • SD/MMC bootmode (Use SD/MMC bootmode when eMMC bootmode has unstable.)
    • DIP switch(CFG1/SW1) CFG1[6:1] : 000100

5420 sd boot.png

Download software on target system

When booting the board, press any key(of HostPC Keyboard, focused on serial terminal program window) in 3 seconds for enter the u-boot command mode.


U-Boot 2012.07-gc45a5de (Nov 04 2013 - 19:58:11) for ARNDALE OCTA
CPU: Exynos5420 Rev2.0 [Samsung SOC on SMP Platform Base on ARM CortexA15] APLL = 800MHz, KPLL = 600MHz MPLL = 532MHz, BPLL = 800MHz
Board: ARNDALE OCTA DRAM: 2 GiB WARNING: Caches not enabled
TrustZone Enabled BSP BL1 version: P?/?
Checking Boot Mode ... EMMC MMC: S5P_MSHC0: 0, S5P_MSHC2: 1 MMC Device 0: 3.6 GiB MMC Device 1: [ERROR] response timeout error : 00000104 cmd 1 Card did not respond to voltage select! In: serial Out: serial Err: serial Net: No ethernet found.
Hit any key to stop autoboot: 0 Arndale #
  • Type the 'fastboot' command on bootloader. the following message appears. and Enter into the download mode.
Arndale # fastboot

[Partition table on MoviNAND] ptn 0 name='fwbl1' start=0x3 len=N/A (use hard-coded info. (cmd: movi)) ptn 1 name='bl2' start=N/A len=N/A (use hard-coded info. (cmd: movi)) ptn 2 name='bootloader' start=N/A len=N/A (use hard-coded info. (cmd: movi)) ptn 3 name='tzsw' start=N/A len=N/A (use hard-coded info. (cmd: movi)) ptn 4 name='kernel' start=N/A len=N/A (use hard-coded info. (cmd: movi)) ptn 5 name='ramdisk' start=N/A len=0x0(~27262976KB) (use hard-coded info. (cmd: movi)) ptn 6 name='system' start=0x3 len=0x0(~546044928KB) ptn 7 name='userdata' start=0x3 len=0x0(~-1648749568KB) ptn 8 name='cache' start=0x3 len=0x0(~546044928KB) ptn 9 name='fat' start=0x3 len=0x0(~30547968KB) USB cable Connected![CH-0]

Flash the Bootloader

  • Bootloader consists of BL1, BL2 and U-Boot.
    • BL1 is a binary firmware supported by manufacturer.
      It's located at < WORKING_DIRECTORY>/vendor/insignal/arndale_octa/exynos5420/arndale-octa.bl1.bin
    • BL2 is a binary firmware supported by manufacturer.
      It's located at < WORKING_DIRECTORY>/vendor/insignal/arndale_octa/exynos5420/arndale-octa.bl2.bin
    • u-boot.bin is a U-Boot
    • TZSW is a binary firmware supported by manufacturer.
      It's located at < WORKING_DIRECTORY>/vendor/insignal/arndale_octa/exynos5420/arndale-octa.tzsw.bin

Enter the following command from the host system.

$ sudo fastboot flash fwbl1 < WORKING_DIRECTORY>/vendor/insignal/arndale_octa/exynos5420/arndale-octa.bl1.bin
$ sudo fastboot flash bl2 < WORKING_DIRECTORY>/vendor/insignal/arndale_octa/exynos5420/arndale-octa.bl2.bin
$ sudo fastboot flash bootloader < WORKING_DIRECTORY>/u-boot/u-boot.bin
$ sudo fastboot flash tzsw < WORKING_DIRECTORY>/vendor/insignal/arndale_octa/exynos5420/arndale-octa.tzsw.bin

Flash the Kernel

Enter the following command from the host system.

$ sudo fastboot flash kernel <WORKING_DIRECTORY>/kernel/arch/arm/boot/zImage

Flash the Android System

Enter the following command from the host system.

  • Flash the Android Ramdisk image.
$ sudo fastboot flash ramdisk <WORKING_DIRECTORY>/out/target/product/arndale_octa/ramdisk.img.ub
  • Flash the Android System image.
$ sudo fastboot flash system <WORKING_DIRECTORY>/out/target/product/arndale_octa/system.img
  • Erase Android Userdata.
$ sudo fastboot erase userdata
  • Erase Android Cache
$ sudo fastboot erase cache

Launch Android!

Enter the following command to boot now.

$ sudo fastboot reboot

Appendix

eMMC boot loader repair guide

There is need to repair eMMC bootloader when have some trouble. In that case, you can use below sequence.

Prepared micro SD/MMC for ARNDALE Octa bootable.

Prepare below image files.

  • BL1 is a binary for firmware supported by manufacturer.
    • It's located at <WORKING_DIRECTORY>/vendor/insignal/arndale/exynos5420/arndale-octa.bl1.bin
  • BL2 is a binary for Second Bootloader.
    • It's located at <WORKING_DIRECTORY>/vendor/insignal/arndale/exynos5420/arndale-octa.bl2.bin
  • tzsw.img is a binary for TrustZone Software
    • It's located at <WORKING_DIRECTORY>/vendor/insignal/arndale/exynos5420/arndale-octa.tzsw.bin
  • u-boot.bin is a U-Boot
    • It's generated u-boot build in <UBOOT_PATH>.


$ sudo fdisk -l
   Device Boot      Start         End      Blocks   Id  System
    /dev/sdc1               1        1809     4026368    b  W95 FAT32

Flash image to SD/MMC via fusing script.

$ source ./arndale_octa_envsetup.sh
$ mksdboot /dev/sdc

Bootmode setup android

  • NOTICE1
    • On first time turn on ARNDALE board, it's empty state.
      It will be work slow, because running secondary boot.
      (First, failed eMMC boot Second, try to SD/MMC boot).
      You'll be need boot from SD/MMC for download and flash software on eMMC.
      After software download and flash on eMMC, You can boot from eMMC for ARNDALE.


  • Check eMMC boot mode
    • Check eMMC boot mode on DIP switch(CFG1/SW1) for download and flash software on eMMC.

5420 emmc boot.png

Partion split and format

Insert the SD card and turn it on. When booting the board, press any key in 3 seconds for enter the u-boot command mode. (it takes about 10 sec.)


U-Boot 2012.07-g2eba606-dirty (Oct 30 2013 - 14:50:56) for ARNDALE OCTA
CPU: Exynos5420 Rev2.0 [Samsung SOC on SMP Platform Base on ARM CortexA15] APLL = 800MHz, KPLL = 600MHz MPLL = 532MHz, BPLL = 800MHz Board: ARNDALE OCTA DRAM: 2 GiB WARNING: Caches not enabled TrustZone Enabled BSP BL1 version: P?/?
Checking Boot Mode ... EMMC MMC: S5P_MSHC0: 0, S5P_MSHC2: 1 MMC Device 0: 3.6 GiB MMC Device 1: [ERROR] response timeout error : 00000104 cmd 1 Card did not respond to voltage select! In: serial Out: serial Err: serial Net: No ethernet found.
Hit any key to stop autoboot: 0 Arndale #
  • Type the below commands on bootloader for eMMC partition split
# fdisk -c 0 520 520 520
  • Type the below commands on bootloader for partition format
# fatformat mmc 0:1
# ext3format mmc 0:2
# ext3format mmc 0:3
# ext3format mmc 0:4

Download & flash software to eMMC

Will be need below image file for download and flash, Prepare below image files.

  • BL1 is a binary for firmware supported by manufacturer.
    • It's located at <WORKING_DIRECTORY>/vendor/insignal/arndale/exynos5420/arndale-octa.bl1.bin
  • BL2 is a binary for Second Bootloader.
    • It's located at <WORKING_DIRECTORY>/vendor/insignal/arndale/exynos5420/arndale-octa.bl2.bin
  • tzsw.img is a binary for TrustZone Software
    • It's located at <WORKING_DIRECTORY>/vendor/insignal/arndale/exynos5420/arndale-octa.tzsw.bin
  • u-boot.bin is a U-Boot
    • It's generated u-boot build in <UBOOT_PATH>.


`fastboot` command execute for download images and writing.

# fastboot

`fastboot` command execute on your host machine.

  • bootloader & bootable images
$ fastboot flash fwbl1 arndale-octa.bl1.bin
$ fastboot flash bl2 arndale-octa.bl2.bin
$ fastboot flash bootloader u-boot.bin
$ fastboot flash tzsw arndale-octa.tzsw.bin
  • linux kernel
$ fastboot flash kernel zImage
  • Android
$ fastboot flash ramdisk ramdisk.img.ub
$ fastboot flash system system.img

How to use SD/MMC boot

You want to use SD/MMC Boot mode(ex. eMMC boot unstable) you can use below sequence.

Prepared micro SD/MMC for ARNDALE Octa bootable.

Prepare below image files.

  • BL1 is a binary for firmware supported by manufacturer.
    • It's located at <WORKING_DIRECTORY>/vendor/insignal/arndale/exynos5420/arndale-octa.bl1.bin
  • BL2 is a binary for Second Bootloader.
    • It's located at <WORKING_DIRECTORY>/vendor/insignal/arndale/exynos5420/arndale-octa.bl2.bin
  • tzsw.img is a binary for TrustZone Software
    • It's located at <WORKING_DIRECTORY>/vendor/insignal/arndale/exynos5420/arndale-octa.tzsw.bin
  • u-boot.bin is a U-Boot
    • It's generated u-boot build in <UBOOT_PATH>.

Connect micro SD/MMC in your host machine and check device name.

$ sudo fdisk -l
   Device Boot      Start         End      Blocks   Id  System
    /dev/sdc1               1        1809     4026368    b  W95 FAT32

Flash image to SD/MMC via fusing script.

$ source ./arndale_envsetup.sh
$ mksdboot /dev/sdc

Change Boot mode

Check SD/MMC boot mode on DIP switch(CFG1/SW1) for download and flash software on SD/MMC.

5420 sd boot.png

Partion split and format

Insert the SD card and turn it on. When booting the board, press any key in 3 seconds for enter the u-boot command mode. (it takes about 10 sec.)


U-Boot 2012.07-g2eba606-dirty (Oct 30 2013 - 14:50:56) for ARNDALE OCTA
CPU: Exynos5420 Rev2.0 [Samsung SOC on SMP Platform Base on ARM CortexA15] APLL = 800MHz, KPLL = 600MHz MPLL = 532MHz, BPLL = 800MHz Board: ARNDALE OCTA DRAM: 2 GiB WARNING: Caches not enabled
TrustZone Enabled BSP BL1 version: P?/?
Checking Boot Mode ... SDMMC MMC: S5P_MSHC0: 0, S5P_MSHC2: 1 MMC Device 0: 3.6 GiB MMC Device 1: [ERROR] response timeout error : 00000104 cmd 1 Card did not respond to voltage select! In: serial Out: serial Err: serial Net: No ethernet found.
Hit any key to stop autoboot: 0 Arndale #
  • Type the below commands on bootloader for SD/MMC partition split
# emmc open 0
# fdisk -c 0 520 520 520
# emmc close 0
  • Type the below commands on bootloader for partition format
# fatformat mmc 0:1
# ext3format mmc 0:2
# ext3format mmc 0:3
# ext3format mmc 0:4

Download & flash software to eMMC

  • Will be need below image file for download and flash.
    • bl1 : arndale-octa.bl1.bin
    • bl2 : arndale-octa.bl2.bin
    • tzsw : arndale-octa.tzsw.bin
    • bootloader : u-boot.bin
    • linux kernel : zImage
    • ramdisk : ramdisk.img
    • system  : system.img
  • `fastboot` command execute for downlaod images and writing.
#] fastboot

`fastboot` command execute on your host machine.

  • bootloader & bootable images
$ fastboot flash fwbl1 arndale-octa.bl1.bin
$ fastboot flash bl2 arndale-octa.bl2.bin
$ fastboot flash bootloader u-boot.bin
$ fastboot flash tzsw arndale-octa.tzsw.bin
  • linux kernel
$ fastboot flash kernel zImage
  • Android
$ fastboot flash ramdisk ramdisk.img
$ fastboot flash system system.img

How to flash bootloader in SD/MMC to eMMC

There is need to erase eMMC toreset because have some trouble or you want to back SD Booting mode. In that case, you can use below sequence.

  • Change Dip switch(CFG1/SW1) 1, 3 to SD Boot mode.

5250 dip 2.PNG

  • Insert Bootable SDCard, then enter u-boot command mode.
  • Type below command on U-Boot command mode.
mmc erase boot 1 0 4000
mmc erase user 1 0 40000000
  • mmc erase boot 1 0 4000 : eMMC boot area initialize.
  • mmc erase user 1 0 400000000 : eMMC kernel ramdisk area initialize

Flash bootloader in SD/MMC card to EMMC

If you need to download in EMMC from SD card boot image. See the following items:

  • When used to boot SD card and boot mode was that 1st. EMMC, 2nd. SDCARD.
  • Download the boot loader on the EMMC from SD card.
  • The following instructions are from the boot loader command line.
# emmc open 0
# movi read fwbl1 1 50000000; movi write zero fwbl1 0 50000000
# movi read bl2 1 50000000; movi write zero bl2 0 50000000
# movi read u-boot 1 50000000; movi write zero u-boot 0 50000000
# movi read tzsw 1 50000000; movi write zero tzsw 0 50000000
# emmc close 0
  • When used to boot SD card and boot mode was that 1st. SDCARD, 2nd, EMMC
  • Download the boot loader on the EMMC from SD card.
  • The following instructions are from the boot loader command line.
# emmc open 1
# movi read fwbl1 0 50000000; movi write zero fwbl1 1 50000000
# movi read bl2 0 50000000; movi write zero bl2 1 50000000
# movi read u-boot 0 50000000; movi write zero u-boot 1 50000000
# movi read tzsw 0 50000000; movi write zero tzsw 1 50000000
# emmc close 1

SD Card Partition Map

Sd card partition map 5420.png

How to build ethernet driver

Kernel

  • Modify kernel config(set default), do the following:
$ kernel_make distclean
$ kernel_make arndale_android_octa_defconfig
$ kernel_make menuconfig
  • Modify kernel config(keep your change), do the following:
$ kernel_make menuconfig
  • Go to Boot options

Kernel-config-1.png


  • Go to (console=ttySAC3, 115200n8 ....)

Kernel-config-2.png


  • Add MAC address ([XX:XX:XX] from 00:00:00 to FF:FF:FF)

Kernel-config-3.png


  • Save the configuration

K-006.png


  • Build kernel.
$ kernel_make -j8

Android

  • Android UI : Settings App -> Ethernet Configuration -> eth0
  • Set four sub items( IP address, Mask Address, DNS Address, Gateway Address )

ADB setup on Windows

Environment

  • Host OS : Windows 7 64bits
  • Target Board : Arndale Board

Check VID/PID on your PC

  • Boot arndale board with connecting OTG cable to your PC.
  • Check new hardware in <Computer -> Properties -> Device Manager>
    (you can find unknown device named as "Full" where Other devices tree. Or maybe you can find different name. we will assume this unknown device¡'s name is "Full")
  • Computer -> Properties -> Device Manager -> Full -> Properties > Details
  • Change dropdown property "Hardware Ids", you can get Values like belows
USB\Vid_18d1&Pid_D002&Rev_0226
USB\Vid_18d1&Pid_D002
...
 Means, VID: 18D1, PID : D002
  • These IDs can be changed by board or PC.

Modify inf file

  • Add (or Modify) your VID/PID on downloaded usb driver file from <download url>
  • Unzip downloaded usb driver.
¡¦
[Google.NTamd64]
; HTC Dream
%SingleAdbInterface%             = USB_Install, USB\VID_0BB4&PID_0C01
%CompositeAdbInterface%     = USB_Install, USB\VID_0BB4&PID_0C02&MI_01
%SingleBootLoaderInterface% = USB_Install, USB\VID_0BB4&PID_0FFF
; HTC Magic
%CompositeAdbInterface%     = USB_Install, USB\VID_0BB4&PID_0C03&MI_01
¡¦
  • Add ID that gets from section i after this line, like below.
; Android USB Gadget
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_D00201
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_D002

Install USB driver

  • Select Update Driver Software from Device Manager
  • Select Browse my computer for drvier software
  • Insert (Browse) the location where driver software save on your computer.

Camera Guide

The guide of camera curcit modification (Sorry for under construction)

  • In case of Serial number A-version, check "The guide of camera curcit modification" in http://forum.insignal.co.kr
  • A-version check point) The last alphabet is "A" such as "AOP**********A" in the board.
  • In case of B-version Board, this modification is not required.

Pre builted Image for camera


Information

For more information, please visit below site. We will update for your information.

Homepage

Wiki

Upstream Community

Android Board Informations of Linaro