From OrigenBoard.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 origen board to be a finished end-product fit for general consumer use.

WARRANTY

The Origen 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

Samsung Exynos 4210 Origen Dual Board

Specifications of Samsung Exynos 4210 Origen Dual Board

Samsung Exynos 4210 Origen Dual Board package is organized as follows.

Origen-4210-Board Detail.png

  • Application Processor Daughter Board
    • Exynos 4210 Cortex-A9 Dual Core sub-system with NEON SIMD at up to 1GHz per core
    • 1G Bytes DDR3 Memory
  • Display & Imaging
    • Mini HDMI
    • LCD Interface (Optional LCD module available)
    • Camera Connector
  • Audio
    • REALTEK ALC5631Q Stereo Audio codec
    • HDMI Audio support
    • Stereo Audio Input and Output Jacks
  • USB
    • Full size USB 2.0
    • USB OTG
  • Storage
    • 2x SD Card
  • Networking
    • On-board WiFI and Blutooth module
    • Ethernet through USB adapter
  • Debug
    • JTAG
    • Serial RS-232
  • Power
    • DC 5V

Detail of Samsung Exynos 4210 Origen Dual Board

Origen-4210-Board Detail 1.jpg

Samsung Exynos 4412 Origen Quad Board

Samsung Exynos 4412 Origen Quad Board package is organized as follows.

Specifications of Samsung Exynos 4412 Origen Quad Board

Origen-4412-Board Detail.png

  • Exynos 4412 Cortex-A9 Quad Core sub-system with NEON SIMD at up to 1.4GHz per core
  • 1G Bytes LPDDR2 Memory
  • 4G Bytes eMMC internal storage
  • Hold currents up to 2.3A
  • Support 10/100 UTP 1port
  • Support Serial 1port
  • Support JTAG 1port
  • Support USB HOST2.0 2ports
  • Support USB Device2.0 1port
  • Support eMMC4.41 DDR in 8 bit (Option)
  • Support SD/SDIO Version2.0
  • HDMI interface support for NTSC and PAL mode with image enhancer
  • MIPI DSI Standard Specification V1.01r11
  • MIPI CSI standard specification V1.0
  • I2C x7 interface support
  • Three UART supports three Mbps ports
  • One on-chip USB HSIC
  • Configurable GPIOs
  • 1 ea Power on Button
  • 6 ea Function Button
  • 4 ea LED
  • Size : 140 X 195mm

Camera & eCompass Module Specifications

Origen-4412-Board Detail 2.jpg

  • Camera
    • Samsung S5K4ECG 5M Pixel Camera Board
    • Max.Resolution : 2592x1944 (5M Pixel)
    • Function : Auto Exposure, Auto White Balance, Auto Focus
    • Optical Format : 1/4 inch
    • Unit pixel Size : 1.4 um
    • Color Filter : RGB Bayer pattern
    • Shutter type : Electronic rolling shutter
    • Max. Capture Frame rate : 15 fps @full resolution
    • Max. Video frame rate : 120 fps @QVGA
    • I/F : MIPI CSI2(dual lane)
    • Output formats : YUV422, RGB565, RGB888, RAW8, RAW10, JPEG, interleaved JPEG8 (SOSI, EOSI, SOEI, EOEI), Interleaved JPEG,/Video(by data type)
    • Host Control I/F : I2C bus
  • e_Compass
    • AK8963C : 3-axis electronic compass
    • Resolution: 0.15 µT/LSB or 0.6 µT/LSB (selectable).
    • Average electric current during measurement: 280 µA at measuring frequency of 8 Hz.
    • Interface: Two-wire I2C or four-wire SPI (selectable).

Accelerometor & Gyro Module Specifications

Origen-4412-Board Detail 3.jpg

  • Accelerometor/Gyro : Invensence MPU-6050
  • Gyro
    • Digital-output X-, Y-, and Z-Axis angular rate sensors (gyroscopes) with a user-programmable full-scale range of ±250, ±500, ±1000, and ±2000°/sec
      • External sync signal connected to the FSYNC pin supports image, video and GPS synchronization
      • Integrated 16-bit ADCs enable simultaneous sampling of gyros
      • Enhanced bias and sensitivity temperature stability reduces the need for user calibration
      • Improved low-frequency noise performance
      • Digitally-programmable low-pass filter
      • Gyroscope operating current: 3.6mA
      • Standby current: 5μA
      • Factory calibrated sensitivity scale factor
  • Accelerometer
    • Digital-output triple-axis accelerometer with a programmable full scale range of ±2g, ±4g, ±8g and ±16g
      • Integrated 16-bit ADCs enable simultaneous sampling of accelerometers while requiring no external multiplexer
      • Accelerometer normal operating current: 500μA
      • Low power accelerometer mode current: 10μA at 1.25Hz, 20μA at 5Hz, 60μA at 20Hz, 110μA at 40Hz
      • Orientation detection and signaling
      • Tap detection
      • User-programmable interrupts
      • High-G interrupt

WiFi+BT+GPS Module Specifications

Origen-4412-Board Detail 4.jpg

  • MediaTek MT6620 4 in 1 combo
    • This is a 4-in-1 SiP Module which includes WLAN, Bluetooth, GPS and FM transmitter/receiver. With four advanced radio technologies integrated into a SiP Module,
      it provides the best and most convenient connectivity functions.
  • WIFI
    • 2.4Ghz, 5Ghz dual band support
    • Support IEEE 802.11 a/b/g/n
    • WPS 2.0, WAPI (H/W)
    • Wi-Fi Direct (WFA P-2-P standard)
    • SDIO 2.0 interface
  • Bluetooth
    • BT v2.1+EDR
    • BT v3.0+HS(802.11AMP) compliance
    • FM over Bluetooth
    • High speed UART interface (4Mbps), PCM
  • GPS
    • GPS / A-GPS capability
    • 165 dBm tracking sensitivity
    • 160 dBm hot start sensitivity
    • 148 dBm cold / warm start sensitivity
    • UART interface
  • FM
    • 76-108MHz with 50KHz step
    • RDS / RBDS support
    • UART, audio, digital audio interface (I2S)

Audio Module Specifications

Origen-4412-Board Detail 5.jpg

  • AKM AK4678 24bit Stereo CODEDC with
    • Built-in Microphone-Amplifier
    • Receiver-Amplifier
    • Mono Class-D Speaker-Amplifier
    • Cap-less Class -G HeadPhone-Amplifier
    • Line-Amplifier
    • Dual PCM I/F for Baseband & Bluetooth I/F

Block diagram

Origen-4-Quad-block-1.PNG

Detail of Origen Board

Origen-4412-Board Detail 1.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 ‘arm-2009q3.tar.gz’ from http://forum.insignal.co.kr/viewtopic.php?f=6&t=69#p110
  • Unzip the downloaded toolchain into /your/own/directory/ (ex> /usr/local/arm-2009q3)
  • Set the toolchain path up to your PATH environment like ‘export PATH=$PATH:/your/own/directory’ (ex> export PATH=$PATH:/usr/local/arm-2009q3/bin)

Installing the JDK

The Sun JDK is no longer in Ubuntu's main package repository. In order to download it, you need to add the appropriate repository and indicate to the system which JDK should be used.

Java6: for Gingerbread and newer

$ sudo add-apt-repository "ppa:sun-java-community-team/sun-java6"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk

Other you can get this from Oracle web site


you get download java-6-jdk version, like jdk-6u35-linux-x64.bin

(host PC) Downloads$ chmod +x jdk-6u35-linux-x64.bin
(host PC) Downloads$ ./jdk-6u35-linux-x64.bin
…
(host PC) Downloads $ sudo mv jdk1.6.0_35 /usr/lib/jvm/
  • Add ‘export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_35/’ into your ~/.bashrc or ~/.bash_profile.

Java5: for Froyo and older

$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy main multiverse"
$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy-updates main multiverse"
$ sudo apt-get update
$ sudo apt-get install sun-java5-jdk

Note: The lunch command in the build step will ensure that the Sun JDK is used instead of any previously installed JDK.

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 Build & Flash for Samsung Exynos 4210 Origen Dual Board

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/origen_dual/android/manifest.git" -b ics

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

Download proprietary archive, vendor_samsung_slsi_exynos42100_2012xxxxxx_xxxxxx.run to root of android source tree.

Make it executable and run it:

$ chmod +x proprietary_origen_dual-ics-dev_xxxxxx.run
$ ./proprietary_origen_dual-ics-dev_xxxxxx.run

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

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 ./origen_envsetup.sh

or

$ . ./origen_envsetup.sh
  • Environment initialization is complete, the following message appears.
including device/insignal/origen_quad/vendorsetup.sh
including sdk/bash_completion/adb.bash
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.0.4
TARGET_PRODUCT=full_origen
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_BUILD_TYPE=release
BUILD_ID=IMM76
============================================
FYI: use following addtional functions to easy-to-build
- install_deps        Install dependency packages
- 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

Several errors can be occurred because of kernel is not compiled yet. It's OK if you compile the kernel before android compile.

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
$ prebuilt/linux-x86/ccache/ccache -M 20G

You can watch ccache being used by doing the following:

$ watch -n1 -d prebuilt/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

$ cd < WORKING_DIRECTORY>/u-boot/
$ make clobber
$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- origen_android_config
$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- 

After the build, < WORKING_DIRECTORY>/uboot.bin is being made available.

Building the Kernel

Setting up Origen Dual Board’s configuration. and after build.

$ cd < WORKING_DIRECTORY>/kernel/
$ make distclean
$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- origen_android_defconfig
$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- 

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

$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- origen_android_defconfig
$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig

Building the Android

$ make -j4

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

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:

Origen Board Connections dual 1.png

Turn on the target system

Turn the power key, press the keys shown in the following pictures on 1 second.The board will work.

Origen Board Dual Power on.png

Download software on target system

When booting the board, press any key in 3 seconds for enter the u-boot command mode.

U-Boot 2010.12-00000-g6eeba7c (Sep 05 2012 - 13:03:35) for Insignal ORIGEN

CPU: S5PC220 [Samsung SOC on SMP Platform Base on ARM CortexA9] APLL = 1000MHz, MPLL = 800MHz DRAM: 1023 MiB
Checking Boot Mode ... EMMC4.41 REVISION: 1.1 MMC Device 0: 3816 MB MMC Device 1: 0 MB MMC Device 2 not found Hit any key to stop autoboot: 0 ORIGEN # fastboot
  • Type the 'fastboot' command on bootloader. the following message appears. and Enter into the download mode
[Partition table on MoviNAND]
ptn 0 name='fwbl1' start=0x2 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='kernel' start=N/A len=N/A (use hard-coded info. (cmd: movi))
ptn 4 name='ramdisk' start=N/A len=0x0(~27262976KB) (use hard-coded info. (cmd: movi))
ptn 5 name='system' start=0x2 len=0x0(~316763136KB) 
ptn 6 name='userdata' start=0x2 len=0x0(~316763136KB) 
ptn 7 name='cache' start=0x2 len=0x0(~316763136KB)
ptn 8 name='fat' start=0x2 len=0x0(~-1385439232KB) 
Insert a OTG cable into the connector!

Flash the Bootloader

Enter the following command from the host system.

$ sudo fastboot flash bootloader < WORKING_DIRECTORY>/u-boot/u-boot.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/origen/ramdisk.img.ub
  • Flash the Android System image.
$ sudo fastboot flash system <WORKING_DIRECTORY>/out/target/product/origen/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

How to Build & Flash for Samsung Exynos 4412 Origen Quad Board

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.
============================================================================
: The Current Working Version
============================================================================
$ repo init -u "git://git.insignal.co.kr/samsung/exynos/android/manifest" -b ics
============================================================================
: Deprecated Version : 20120904
: This branch currently does not update! and Is for reference only!
============================================================================
$ repo init -u "git://git.insignal.co.kr/insignal/origen_quad/android/manifest.git" -b ics

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

Download proprietary archive, vendor_insignal_origen_quad_201xxxxx_xxxxxxx.run and vendor_samsung_slsi_exynos4412_201xxxxxxx_xxxxxx.run to root of android source tree.

Make it executable and run it:

$ chmod +x vendor_insignal_origen_quad_201xxxxx_xxxxxxx.run
$ ./vendor_insignal_origen_quad_201xxxxx_xxxxxxx.run

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

$ chmod +x vendor_samsung_slsi_exynos4412_201xxxxxxx_xxxxxx.run
$ ./vendor_samsung_slsi_exynos4412_201xxxxxxx_xxxxxx.run

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

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 ./origen_quad_envsetup.sh

or

$ . ./origen_quad_envsetup.sh
  • Environment initialization is complete, the following message appears.
including device/insignal/origen_quad/vendorsetup.sh
including sdk/bash_completion/adb.bash
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.0.4
TARGET_PRODUCT=full_origen_quad
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_BUILD_TYPE=release
BUILD_ID=IMM76I
============================================
FYI: use following addtional functions to easy-to-build
- install_deps        Install dependency packages
- 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
- mksdboot:           make bootadble sdcard (Usage: mksdboot /dev/sdx)

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
$ prebuilt/linux-x86/ccache/ccache -M 20G

You can watch ccache being used by doing the following:

$ watch -n1 -d prebuilt/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

$ cd < WORKING_DIRECTORY>/u-boot/
$ make clobber
$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- origen_quad_config
$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- 

After the build, < WORKING_DIRECTORY>/uboot.bin is being made available.

Building the Kernel

Setting up Origen Board’s configuration. and after build.

$ cd < WORKING_DIRECTORY>/
$ source ./origen_quad_envsetup.sh
$ cd ./kernel/
$ make distclean
$ kernel_make origen_quad_android_defconfig
$ kernel_make

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

$ kernel_make origen_quad_android_defconfig
$ kernel_make menuconfig

Building the Android

$ source ./origen_quad_envsetup.sh
$ make kernel-binaries
$ make -j4

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

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:

Origen Board Connections 2.png

Boot mode setup

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

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

5250 dip 1.PNG

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

5250 dip 2.PNG

Turn on the target system

Turn the power key, press the keys shown in the following pictures on 1 second.The board will work.

Origen Board Power 1.png

Download software on target system

When booting the board, press any key in 3 seconds for enter the u-boot command mode.

U-Boot 2010.12-00000-g6eeba7c (Sep 05 2012 - 13:03:35) for Insignal ORIGEN

CPU: S5PC220 [Samsung SOC on SMP Platform Base on ARM CortexA9] APLL = 1000MHz, MPLL = 800MHz DRAM: 1023 MiB
Checking Boot Mode ... EMMC4.41 REVISION: 1.1 MMC Device 0: 3816 MB MMC Device 1: 0 MB MMC Device 2 not found Hit any key to stop autoboot: 0 ORIGEN # fastboot
  • Type the 'fastboot' command on bootloader. the following message appears. and Enter into the download mode
[Partition table on MoviNAND]
ptn 0 name='fwbl1' start=0x2 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=0x2 len=0x0(~520060928KB) 
ptn 7 name='userdata' start=0x2 len=0x0(~520028160KB) 
ptn 8 name='cache' start=0x2 len=0x0(~520028160KB) 
ptn 9 name='fat' start=0x2 len=0x0(~-1885700096KB) 
Insert a OTG cable into the connector!

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/origen_quad/exynos4x12/exynos4x12.bl1.bin
    • BL2 is a binary firmware supported by manufacturer.
      It's located at < WORKING_DIRECTORY>/vendor/insignal/origen_quad/exynos4x12/exynos4x12.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/origen_quad/exynos4x12/exynos4x12.tzsw.bin

Enter the following command from the host system.

$ sudo fastboot flash fwbl1 < WORKING_DIRECTORY>/vendor/insignal/origen_quad/exynos4x12/exynos4x12.bl1.bin
$ sudo fastboot flash bl2 < WORKING_DIRECTORY>/vendor/insignal/origen_quad/exynos4x12/exynos4x12.bl2.bin
$ sudo fastboot flash bootloader < WORKING_DIRECTORY>/u-boot/u-boot.bin
$ sudo fastboot flash tzsw < WORKING_DIRECTORY>/vendor/insignal/origen_quad/exynos4x12/exynos4x12.tzsw.bin
  • For ES4 and older version:

Bootloader of SR1 and newer version doesn't has compatible. Please refer below URL for burn the prebuilt image of bootloader to eMMC.

http://forum.insignal.co.kr/viewtopic.php?f=6&t=66#p624

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/origen-quad/ramdisk.img.ub
  • Flash the Android System image.
$ sudo fastboot flash system <WORKING_DIRECTORY>/out/target/product/origen-quad/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

Samsung Exynos 4210 Origen Dual Board

How to make of bootable SD/MMC for Samsung Exynos 4210 Origen Dual

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

  • 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
  • Image writing via Linux dd command.
sudo dd if=./uboot_origendual_dump.img of=/dev/sdc bs=512 count=1024

Samsung Exynos 4412 Origen Quad Board

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 Origen Board bootable.

  • Prepare below image files.
    • exynos4x12.bl1.bin for BL1
    • exynos4x12.bl2.bin for BL2
    • u-boot.bin for u-boot bootloader, generated u-boot build in <UBOOT_PATH>.
    • exynos4x12.tzsw.bin for TZSW
  • 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 ./origen_envsetup.sh
$ mksdboot /dev/sdc

Bootmode setup android

  • NOTICE1
    • On first time turn on Origen 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 Origen Board.


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

5250 dip 1.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 2010.12-00000-g6eeba7c (Sep 05 2012 - 13:03:35) for Insignal ORIGEN

CPU: S5PC220 [Samsung SOC on SMP Platform Base on ARM CortexA9] APLL = 1000MHz, MPLL = 800MHz DRAM: 1023 MiB
Checking Boot Mode ... EMMC4.41 REVISION: 1.1 MMC Device 0: 3816 MB MMC Device 1: 0 MB MMC Device 2 not found Hit any key to stop autoboot: 0 ORIGEN #
  • 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.
    • bl1 : exynos4x12.bl1.bin
    • bl2 : exynos4x12.bl2.bin
    • bootloader : u-boot.bin
    • tzsw : exynos4x12.tzsw.bin
    • linux kernel : zImage
    • ramdisk : ramdisk.img.ub
    • 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 exynos4x12.bl1.bin
$ fastboot flash bl2 exynos4x12.bl2.bin
$ fastboot flash bootloader u-boot.bin
$ fastboot flash tzsw exynos4x12.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 Origen Board bootable.

  • Prepare below image files.
    • exynos4x12.bl1.bin for BL1
    • exynos4x12.bl2.bin for BL2
    • u-boot.bin for u-boot bootloader, generated u-boot build in <UBOOT_PATH>.
    • exynos4x12.tzsw.bin for TZSW
  • 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 ./origen_envsetup.sh
$ mksdboot /dev/sdc

Change Boot mode

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

5250 dip 2.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 2010.12-00000-g6eeba7c (Sep 05 2012 - 13:03:35) for Insignal ORIGEN

CPU: S5PC220 [Samsung SOC on SMP Platform Base on ARM CortexA9] APLL = 1000MHz, MPLL = 800MHz DRAM: 1023 MiB
Checking Boot Mode ... SD/MMC REVISION: 1.1 MMC Device 0: 3816 MB MMC Device 1: 0 MB MMC Device 2 not found Hit any key to stop autoboot: 0 ORIGEN #
  • 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.
    • bl1 : exynos4x12.bl1.bin
    • bl2 : exynos4x12.bl2.bin
    • bootloader : u-boot.bin
    • tzsw : exynos4x12.tzsw.bin
    • linux kernel : zImage
    • ramdisk : ramdisk.img.ub
    • 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 exynos4x12.bl1.bin
$ fastboot flash bl2 exynos4x12.bl2.bin
$ fastboot flash bootloader u-boot.bin
$ fastboot flash tzsw exynos4x12.tzsw.bin
  • linux kernel
$ fastboot flash kernel zImage
  • Android
$ fastboot flash ramdisk ramdisk.img.ub
$ 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) 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
  • 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

5250 partmap.PNG

ADB setup on Windows

Environment

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

Check VID/PID on your PC

  • Boot Origen 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.

Information

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

Origen Board WiKi of Linaro

Homepage

Wiki

Upstream Community