skip menu and go to main content

body start

ODROID-T -S -7

Wiki

Project News

Project Info

  • This project has not yet categorized Software Map
  • Member count : 5
  • Registered:  : 2010.05.10
  • Activity Percentile:  : 100%

activity viewforum,download view

For ODROID-T/S/7/A/E7/PC

1 Preface

This page will explain how to compile u-boot for Odroid.

2 Build environment

Tested with Ubuntu 8.10/9.04/9.10/10.04/10.10/11.04 (Other Linux packages might be able to build u-boot)
64bit version is also working well.

3 Download and Install tool-chain for u-boot

3.2 Copy the cross tool package to /opt/toolchains

If the '/opt/toolchains' directory does not exist in host pc, then create the directory.
# sudo mkdir /opt/toolchains
# sudo cp arm-2010q1-188-arm-none-eabi-i686-pc-linux-gnu.tar.bz2 /opt/toolchains

3.3 Uncompress the cross tool with tar command

# cd /opt/toolchains
# sudo tar xjf arm-2010q1-188-arm-none-eabi-i686-pc-linux-gnu.tar.bz2

3.4 Add Path in your environment file

Modify your ~/.bashrc file to add a new path with editor (gedit or vi)

PATH=$PATH:/opt/toolchains/arm-2010q1/bin

To apply this change, login again or restart the .bashrc
# source ~/.bashrc

3.5 Check the tool-chain path to see if it is set up correctly or not.

# arm-none-eabi-gcc -v
Using built-in specs.
Target: arm-none-eabi
Configured with: /scratch/julian/2010q1-release-eabi-lite/src/gcc-4.4-2010q1/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu 
--target=arm-none-eabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --enable-extra-sgxxlite-multilibs 
--with-gnu-as --with-gnu-ld --with-specs='%{O2:%{!fno-remove-local-statics: -fremove-local-statics}} 
%{O*:%{O|O0|O1|O2|Os:;:%{!fno-remove-local-statics: -fremove-local-statics\}\}\}' --enable-languages=c,c++ --disable-shared 
--disable-lto --with-newlib --with-pkgversion='Sourcery G++ Lite 2010q1-188' --with-bugurl=https://support.codesourcery.com/GNUToolchain/
 --disable-nls --prefix=/opt/codesourcery --with-headers=yes --with-sysroot=/opt/codesourcery/arm-none-eabi 
--with-build-sysroot=/scratch/julian/2010q1-release-eabi-lite/install/arm-none-eabi 
--with-gmp=/scratch/julian/2010q1-release-eabi-lite/obj/host-libs-2010q1-188-arm-none-eabi-i686-pc-linux-gnu/usr
 --with-mpfr=/scratch/julian/2010q1-release-eabi-lite/obj/host-libs-2010q1-188-arm-none-eabi-i686-pc-linux-gnu/usr 
--with-ppl=/scratch/julian/2010q1-release-eabi-lite/obj/host-libs-2010q1-188-arm-none-eabi-i686-pc-linux-gnu/usr 
--with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' 
--with-cloog=/scratch/julian/2010q1-release-eabi-lite/obj/host-libs-2010q1-188-arm-none-eabi-i686-pc-linux-gnu/usr 
--disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/julian/2010q1-release-eabi-lite/install/arm-none-eabi/bin 
--with-build-time-tools=/scratch/julian/2010q1-release-eabi-lite/install/arm-none-eabi/bin
Thread model: single
gcc version 4.4.1 (Sourcery G++ Lite 2010q1-188)

4 Download source code & Uncompress

Linux u-boot source code is stored in SD card. But, this one might be old version with the exception of Odroid-A.

Please use this link to get the source code.

4.1 Odroid-T & S & 7



Uncompress the source code

# tar xvfz odroid-c110-uboot_20100727.tar.gz

The latest source code of u-boot for ODROID-7 is here


4.2 Odroid-A



Uncompress the source code

# tar xvfz uboot_20110526.tar.gz

4.3 Odroid-E7


The source is located in the T-Flash FAT partition.

Uncompress the source code

# tar xvfz uboot_2011_1202.tgz

5 Compile

Before do Compile, you have to edit Makefile to correct CROSS_COMPILE path. depends on your CROSS_COMPILE path. Case of this article is CROSS_COMPILE = /opt/toolchains/arm-2010q1/bin/arm-none-eabi-

5.1 Odroid-T & S & 7

# cd uboot
# make mrproper    ---> This is only used to clean up files from the source code
# make hkdkc110_mmc_config
# make

5.2 Odroid-A

# cd uboot
# make mrproper    ---> This is only used to clean up files from the source code
# make hkdkc210_android_config
# make

5.3 Odroid-E7

# cd uboot
# make mrproper    ---> This is only used to clean up files from the source code
# make smdk6450_config
# make

If there is no error, u-boot.bin should have been generated with a file size of about 250~300Kbyte.

6 Debug board setup

debug_board_odroidt.jpg


* TTA20-Male connector
  • Connect to I/O port of Odroid.
* RS232C Serial Port
  • Connect to Host PC RS232C Serial Port via cable. The cable should be 1:1 direct cable. Don't use the cross type.
  • If your host PC has no RS232C port, you need a USB-Serial converter.
* Power on button
  • Turn on power of Odroid. You can't turn off.
* RS232C Level shifter
  • This IC(SIPEX3232) converts CPU I/O volt(3.3V) to +/-10Volt RS232C standard.
* DC Connector (Don't use this connector !)

* TTA20-Female connector
  • If you want to use Odroid all day long, you will need a external power supply or external charger.
  • There are 2 different types of standard connectors we use for mobile phones, the TTA20 and TTA24.
  • Odroid utilizes the TTA20 which is the latest standard, and almost all mobile phones in 2009 have it.
  • If you have a standard TTA24, you can use a simple converter for TTA24 to TTA20
  • You can check the charging status with the LED of the charger. There is no charging indicator on Odroid.
* Mini-B USB connector
  • You can use this connector to connect Odroid to a host PC while charging with TTA20 connector.

6.1 Debug board connection

s_OdroidT_front.jpg

* When you use the debug board, you MUST connect DC power source as above picture.

7 Transfer boot-loader to target board(Odroid)

If u-boot is already installed and working well in T-flash, you can download the new compiled u-boot via USB. If u-boot is not working or damaged, you will need to write the u-boot bin with a special tool on a Windows PC. This process can be used for fusing u-boot as well as the kernel.

7.1 Odroid-A / PC

  • Now, To update bootloader, you have to use Linux PC & Windows PC.
Because, we will use command split under the Linux and AttachHeader.exe under the Windows. The split is commonly included by Linux and the AttachHeader.exe can download at this link. [http]AttachHeader.exe

1) Make BL1 image from the your u-boot.bin under the Linux.
$ split -b 16368 u-boot.bin bl1

2) Flowing above split command, You can see the bl1aa file. and copy it to Windows.

3) Make u-boot-bl1.bin image under the Windows. and copy it to Linux.
c:\> AttachHeader.exe bl1aa u-boot-bl1.bin

4) Eject micro-sd card from Odroid-A, connect to Linux PC again using anything USB card reader.

5) Umount micro-sd card.

$ sudo umount /dev/sdc*

Note : /dev/sdc is your micro-sd card device node.

6) Update BL1.

$ sudo dd iflag=dsync oflag=dsync if=./u-boot-bl1.bin of=/dev/sdc seek=1
32+0 records in
32+0 records out
16384 bytes (16 kB) copied, 0.270473 s, 60.6 kB/s

7) Update BL2.

$ sudo dd iflag=dsync oflag=dsync if=./u-boot.bin of=/dev/sdc seek=33
523+1 records in
523+1 records out
268132 bytes (268 kB) copied, 1.27022 s, 211 kB/s

8) End of Update bootloader. Eject micro-sd card from Linux.

7.2 Odroid-E7

  • Now, To update bootloader, you have to use Linux PC.

    1) Connect to Linux PC using anything USB card reader.

    2) Umount micro-sd card.

$ sudo umount /dev/sdc*

Note : /dev/sdc is your micro-sd card device node.

3) Update uboot.

$ cd uboot/sd_fusing
$ ./s5p6450_sd_fusing.sh /dev/sdc
env area init
32+0 records in
32+0 records out
16384 bytes (16 kB) copied, 0.0580496 s, 282 kB/s
S5P6450 BL1 fusing
28+0 records in
28+0 records out
14336 bytes (14 kB) copied, 0.0553708 s, 259 kB/s
S5P6450 u-boot fusing
544+0 records in
544+0 records out
278528 bytes (279 kB) copied, 1.28127 s, 217 kB/s
U-boot image is fused successfully.
Eject SD card and insert it again.

Note : /dev/sdc is your micro-sd card device node.

4) End of Update bootloader. Eject micro-sd card from Linux.

7.3 Odroid-T & S & 7

7.3.1 For Windows(XP) PC Users
  • Use Windows utility DNW.exe and USB driver. You can get the files from this link and uncompress it.
  • 1) Connect Debug board and PC serial port with Serial Cable(1:1)

    2) Run serial communication software in PC (HyperTerminal/SecureCRT/etc)

    3) Configure serial port options (COM port, Baudrate : 115200, DATA : 8, STOP : 1, No-Parity, No Flow Control)

    4) Turn on Odroid and you can see the below booting message. Be sure to press any key quickly to stop the OS booting process.
    OK
    
    U-Boot 1.3.4 (Jul 30 2010 - 00:02:08) for HKDKC110 D Type
    
    
    CPU:  S5PC110@1000MHz(OK)
            APLL = 1000MHz, HclkMsys = 200MHz, PclkMsys = 100MHz
    	MPLL = 667MHz, EPLL = 80MHz
    		       HclkDsys = 166MHz, PclkDsys = 83MHz
    		       HclkPsys = 133MHz, PclkPsys = 66MHz
    		       SCLKA2M  = 200MHz
    Serial = CLKUART 
    Board:   HKDKC110
    I2C:   pres(1), div(3) 
    ready
    DRAM:    256 MB
    Flash:   1 MB
    SD/MMC:  1886MB
    Muxed OneNAND 512MB 1.8V 16-bit (0x50)
    OneNAND version = 0x013e
     


    5) With "dnw" command, you can download any binary file to Odroid RAM from PC via USB.
    HKDKC110 # dnw 0x30008000
    Insert a OTG cable into the connector! 
     


    6) If you plug in the USB Cable, you are ready to send binary files to Odroid.
    HKDKC110 # dnw 0x30008000
    Insert a OTG cable into the connector!
    OTG cable Connected! 
    Now, Waiting for DNW to transmit data
     


    7) It's time to execute DNW utility. But, you should install the USB driver first. Driver installation is only required for the first time of USB connection. Driver file location should NOT be automatic selection.
    dnw-1.jpg


    8) Select the driver file and complete installation.

    dnw-2.jpg


    9) Execute the DNW utility software and set the download address as below. Ignore serial port settings, if you are familiar with other serial console software. Please also check for USB:OK to make sure the connection is good.

    dnw-4.jpg


Note: Above capture screen is old one. The address should be 0x30008000


10) You can start the download with the menu for USB Port -> Download to select file to send.

11) After downloading, the Serial terminal will show the below message.

Download Done!! Download Address: 0x30008000, Download Filesize: 0xxxxxxx
Checksum is being calculated..
Checksum O.K.
HKDKC110 #
 


12) It's time to write the binary image to T-flash with the "movi write"command.
HKDKC100 # movi write u-boot 0x30008000
Writing u-boot to sector xxxx (16 sectors).. completed
Writing u-boot to sector xxxx (1024 sectors).. completed
HKDKC110 #
 


7.3.2 For Linux (Ubuntu) PC Users
  • Use Linux utility smdk-usbdl. You can get the files from this link and uncompress it.
  • Copy the executable file smdk-usbdl to /opt/toolchains/arm-2010q1/bin
  • To execute smdk-usbdl, you need to install libusb. Original port was done by Ben Dooks.
    # sudo apt-get install libusb-dev
    # sudo cp smdk-usbdl /usr/local/bin
     


    1) Connect the Debug board and PC serial port with Serial Cable(1:1)

    2) Run serial communication software in PC (minicom or others)

    3) Set serial options (COM port, Baudrate : 115200, DATA : 8, STOP : 1, No-Parity, No Flow Control)

    4) Turn on Odroid and you can see below booting message. You need to quickly press any key to stop the OS booting process.
    OK
    
    U-Boot 1.3.4 (Jul 30 2010 - 00:02:08) for HKDKC110 D Type
    
    
    CPU:  S5PC110@1000MHz(OK)
            APLL = 1000MHz, HclkMsys = 200MHz, PclkMsys = 100MHz
    	MPLL = 667MHz, EPLL = 80MHz
    		       HclkDsys = 166MHz, PclkDsys = 83MHz
    		       HclkPsys = 133MHz, PclkPsys = 66MHz
    		       SCLKA2M  = 200MHz
    Serial = CLKUART 
    Board:   HKDKC110
    I2C:   pres(1), div(3) 
    ready
    DRAM:    256 MB
    Flash:   1 MB
    SD/MMC:  1886MB
    Muxed OneNAND 512MB 1.8V 16-bit (0x50)
    OneNAND version = 0x013e
     


    5) With "dnw" command, you can download any binary file to Odroid RAM from PC via USB.
    HKDKC100 # run dnwu
    Insert a OTG cable into the connector! 
     


    6) If you plug in the USB Cable, you are ready to send binary file to Odroid.
    OTG cable Connected! 
    Now, Waiting for DNW to transmit data
     


    7) You can check whether USB connection is correct or not with lsusb command.
    # lsusb
    Bus 008 Device 002: ID 1871:0306 Aveo Technology Corp. 
    Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 004 Device 006: ID 04e8:1234 Samsung Electronics Co., Ltd   ---> odroid is here. Samsung??
    Bus 004 Device 005: ID 05af:0802 Jing-Mold Enterprise Co., Ltd 
    Bus 004 Device 004: ID 0cf2:6230 ENE Technology, Inc. 
    Bus 004 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
    #
     


    8) To start download, use the smdk-usbdl command.
    # smdk-usbdl -f u-boot.bin 
     


    9) After downloading, PC will show the below message.
    # smdk-usbdl -f u-boot.bin 
    SMDK42XX,S3C64XX USB Download Tool
    Version 0.20 (c) 2004,2005,2006 Ben Dooks <ben-linux@fluff.org>
    
    S3C64XX Detected!
    => found device: bus 004, dev 006
    => loaded xxxx bytes from xxxxxx
    => Downloading xxxxxx bytes to 0x30008000
    => Data checksum xxxx
    => usb_bulk_write() returned xxxxx
    #
     


    10) After downloading, Serial terminal will show below message.
    Download Done!! Download Address: 0x30008000, Download Filesize:0x3c000
    Checksum is being calculated.
    Checksum O.K.
    writing BL1.. 9, 16 
    MMC write: dev # 0, block # 9, count 16 ... 16 blocks written: OK
    completed
    writing bootloader.. 57, 1024 
    MMC write: dev # 0, block # 57, count 1024 ... 1024 blocks written: OK
    completed
    HKDKC110 # 
     


7.4 Where is T-flash(Micro-SD)

Odroid-T has 2 memory cards.
  • T-flash card contains boot-loader, kernel, Android system and applications.
  • SD card contains user files such as pictures, music, video clips and so on.

T-flash is located on the rear side.

s_OdroidT_rear.jpg

If you want to know about T-flash in detail, visit this link. [http]http://en.wikipedia.org/wiki/MicroSD

8 Others