odroid: kconfig: add odroid_defconfig
This config is valid for two devices: - Odroid X2, - Odroid U3. Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com> Cc: Minkyu Kang <mk7.kang@samsung.com> Cc: Tom Rini <trini@ti.com> Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
This commit is contained in:
parent
a47fa7906c
commit
73eca21128
@ -18,6 +18,9 @@ config TARGET_ORIGEN
|
||||
config TARGET_TRATS2
|
||||
bool "Exynos4412 Trat2 board"
|
||||
|
||||
config TARGET_ODROID
|
||||
bool "Exynos4412 Odroid board"
|
||||
|
||||
config TARGET_ARNDALE
|
||||
bool "Exynos5250 Arndale board"
|
||||
|
||||
@ -48,6 +51,7 @@ source "board/samsung/trats/Kconfig"
|
||||
source "board/samsung/universal_c210/Kconfig"
|
||||
source "board/samsung/origen/Kconfig"
|
||||
source "board/samsung/trats2/Kconfig"
|
||||
source "board/samsung/odroid/Kconfig"
|
||||
source "board/samsung/arndale/Kconfig"
|
||||
source "board/samsung/smdk5250/Kconfig"
|
||||
source "board/samsung/smdk5420/Kconfig"
|
||||
|
15
board/samsung/odroid/Kconfig
Normal file
15
board/samsung/odroid/Kconfig
Normal file
@ -0,0 +1,15 @@
|
||||
if TARGET_ODROID
|
||||
|
||||
config SYS_BOARD
|
||||
string
|
||||
default "odroid"
|
||||
|
||||
config SYS_VENDOR
|
||||
string
|
||||
default "samsung"
|
||||
|
||||
config SYS_CONFIG_NAME
|
||||
string
|
||||
default "odroid"
|
||||
|
||||
endif
|
6
board/samsung/odroid/MAINTAINERS
Normal file
6
board/samsung/odroid/MAINTAINERS
Normal file
@ -0,0 +1,6 @@
|
||||
ODROID BOARD
|
||||
M: Przemyslaw Marczak <p.marczak@samsung.com>
|
||||
S: Maintained
|
||||
F: board/samsung/odroid/
|
||||
F: include/configs/odroid.h
|
||||
F: configs/odroid_defconfig
|
3
configs/odroid_defconfig
Normal file
3
configs/odroid_defconfig
Normal file
@ -0,0 +1,3 @@
|
||||
CONFIG_ARM=y
|
||||
CONFIG_ARCH_EXYNOS=y
|
||||
CONFIG_TARGET_ODROID=y
|
143
doc/README.odroid
Normal file
143
doc/README.odroid
Normal file
@ -0,0 +1,143 @@
|
||||
U-boot for Odroid X2/U3
|
||||
========================
|
||||
|
||||
1. Summary
|
||||
==========
|
||||
This is a quick instruction for setup Odroid boards based on Exynos4412.
|
||||
Board config: odroid_config
|
||||
|
||||
2. Supported devices
|
||||
====================
|
||||
This U-BOOT config can be used on two boards:
|
||||
- Odroid U3
|
||||
- Odroid X2
|
||||
with CPU Exynos 4412 rev 2.0 and 2GB of RAM
|
||||
|
||||
3. Boot sequence
|
||||
================
|
||||
iROM->BL1->(BL2 + TrustZone)->U-BOOT
|
||||
|
||||
This version of U-BOOT doesn't implement SPL but it is required(BL2)
|
||||
and can be found in "boot.tar.gz" from here:
|
||||
http://dev.odroid.com/projects/4412boot/wiki/FrontPage?action=download&value=boot.tar.gz
|
||||
or here:
|
||||
http://odroid.in/guides/ubuntu-lfs/boot.tar.gz
|
||||
|
||||
4. Boot media layout
|
||||
====================
|
||||
The table below shows SD/eMMC cards layout for U-boot.
|
||||
The block offset is starting from 0 and the block size is 512B.
|
||||
-------------------------------------
|
||||
| Binary | Block offset| part type |
|
||||
| name | SD | eMMC |(eMMC only)|
|
||||
-------------------------------------
|
||||
| Bl1 | 1 | 0 | 1 (boot) |
|
||||
| Bl2 | 31 | 30 | 1 (boot) |
|
||||
| U-boot | 63 | 62 | 1 (boot) |
|
||||
| Tzsw | 2111 | 2110 | 1 (boot) |
|
||||
| Uboot Env | 2500 | 2500 | 0 (user) |
|
||||
-------------------------------------
|
||||
|
||||
5. Prepare the SD boot card - with SD card reader
|
||||
=================================================
|
||||
To prepare bootable media you need boot binaries provided by hardkernel.
|
||||
File "boot.tar.gz" (link in point 3.) contains:
|
||||
- E4412_S.bl1.HardKernel.bin
|
||||
- E4412_S.tzsw.signed.bin
|
||||
- bl2.signed.bin
|
||||
- sd_fusing.sh
|
||||
- u-boot.bin
|
||||
|
||||
This is all you need to boot this board. But if you want to use your custom
|
||||
u-boot then you need to change u-boot.bin with your own u-boot binary*
|
||||
and run the script "sd_fusing.sh" - this script is valid only for SD card.
|
||||
|
||||
*note:
|
||||
The proper binary file of current U-boot is u-boot-dtb.bin.
|
||||
|
||||
quick steps for Linux:
|
||||
- extract boot.tar.gz
|
||||
- put any SD card into the SD reader
|
||||
- check the device with "dmesg"
|
||||
- run ./sd_fusing.sh /dev/sdX - where X is SD card device (but not a partition)
|
||||
Check if Hardkernel U-boot is booting, and next do the same with your U-boot.
|
||||
|
||||
6. Prepare the eMMC boot card
|
||||
with a eMMC card reader (boot from eMMC card slot)
|
||||
=====================================================
|
||||
To boot the device from the eMMC slot you should use a special card reader
|
||||
which supports eMMC partiion switch. All of the boot binaries are stored
|
||||
on the eMMC boot partition which is normally hidden.
|
||||
|
||||
The "sd_fusing.sh" script can be used after updating offsets of binaries
|
||||
according to the table from point 4. Be sure that you are working on the right
|
||||
eMMC partition - its size is usually very small, about 1-4 MiB.
|
||||
|
||||
7. Prepare the eMMC boot card
|
||||
with a SD card reader (boot from SD card slot)
|
||||
=================================================
|
||||
If you have an eMMC->microSD adapter you can prepare the card as in point 5.
|
||||
But then the device can boot only from the SD card slot.
|
||||
|
||||
8. Prepare the boot media using Hardkernel U-boot
|
||||
=================================================
|
||||
You can update the U-boot to the custom one if you have an working bootloader
|
||||
delivered with the board on a eMMC/SD card. Then follow the steps:
|
||||
- install the android fastboot tool
|
||||
- connect a micro usb cable to the board
|
||||
- on the U-boot prompt, run command: fastboot (as a root)
|
||||
- on the host, run command: "fastboot flash bootloader u-boot-dtb.bin"
|
||||
- the custom U-boot should start after the board resets.
|
||||
|
||||
9. Partition layout
|
||||
====================
|
||||
Default U-boot environment is setup for fixed partiion layout.
|
||||
|
||||
Partition table: MSDOS. Disk layout and files as listed in the table below.
|
||||
----- ------ ------ ------ -------- ---------------------------------
|
||||
| Num | Name | FS | Size | Offset | Reguired files |
|
||||
| | | Type | MiB | MiB | |
|
||||
----- ------ ------ ------ -------- ---------------------------------
|
||||
| 1 | BOOT | fat | 100 | 2 | kernel, fdt** |
|
||||
| 2 | ROOT | ext4 | - | | any Linux system |
|
||||
----- ------ ------ ------ -------- ---------------------------------
|
||||
|
||||
**note:
|
||||
Supported fdt files are:
|
||||
- exynos4412-odroidx2.dtb
|
||||
- exynos4412-odroidu3.dtb
|
||||
|
||||
Supported kernel files are:
|
||||
- Image.itb
|
||||
- zImage
|
||||
- uImage
|
||||
|
||||
The default environmental variable "dfu_alt_info" is set* for above layout.
|
||||
Each partition size is just an example, dfu_alt_info tries init two partitions.
|
||||
The size of each is not important.
|
||||
|
||||
*note:
|
||||
$dfu_alt_info is set on a boot time and it is concatenated using two variables:
|
||||
- $dfu_alt_boot(set dynamically)
|
||||
- $dfu_alt_system(from current env).
|
||||
|
||||
To add any changes to dfu_alt_info - please modify $dfu_alt_system only.
|
||||
Changes are visible after board reset.
|
||||
|
||||
10. The environment and booting the kernel
|
||||
==========================================
|
||||
There are three macros defined in config for various boot options:
|
||||
Two for both, kernel with device tree support and also without it:
|
||||
- boot_uimg - load uImage
|
||||
- boot_zimg - load zImage
|
||||
If proper fdt file exists then it will be automatically loaded,
|
||||
so for old kernel types, please remove fdt file from boot partition.
|
||||
|
||||
The third boot option for multi image support (more info: doc/uImage.FIT/)
|
||||
- boot_fit - for binary file: "Image.itb"
|
||||
|
||||
Default boot command: "autoboot"
|
||||
And the boot sequence is:
|
||||
- boot_fit - if "Image.itb" exists
|
||||
- boot_zimg - if "zImage" exists
|
||||
- boot_uimg - if "uImage" exists
|
216
include/configs/odroid.h
Normal file
216
include/configs/odroid.h
Normal file
@ -0,0 +1,216 @@
|
||||
/*
|
||||
* Copyright (C) 2014 Samsung Electronics
|
||||
* Sanghee Kim <sh0130.kim@samsung.com>
|
||||
* Piotr Wilczek <p.wilczek@samsung.com>
|
||||
* Przemyslaw Marczak <p.marczak@samsung.com>
|
||||
*
|
||||
* Configuation settings for the Odroid-U3 (EXYNOS4412) board.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_ODROID_U3_H
|
||||
#define __CONFIG_ODROID_U3_H
|
||||
|
||||
#include <configs/exynos4-dt.h>
|
||||
|
||||
#define CONFIG_SYS_PROMPT "Odroid # " /* Monitor Command Prompt */
|
||||
|
||||
#undef CONFIG_DEFAULT_DEVICE_TREE
|
||||
#define CONFIG_DEFAULT_DEVICE_TREE exynos4412-odroid
|
||||
|
||||
#define CONFIG_SYS_L2CACHE_OFF
|
||||
#ifndef CONFIG_SYS_L2CACHE_OFF
|
||||
#define CONFIG_SYS_L2_PL310
|
||||
#define CONFIG_SYS_PL310_BASE 0x10502000
|
||||
#endif
|
||||
|
||||
#define CONFIG_MACH_TYPE 4289
|
||||
|
||||
#define CONFIG_NR_DRAM_BANKS 8
|
||||
#define CONFIG_SYS_SDRAM_BASE 0x40000000
|
||||
#define SDRAM_BANK_SIZE (256 << 20) /* 256 MB */
|
||||
#define PHYS_SDRAM_1 CONFIG_SYS_SDRAM_BASE
|
||||
|
||||
/* memtest works on */
|
||||
#define CONFIG_SYS_MEMTEST_START CONFIG_SYS_SDRAM_BASE
|
||||
#define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_SDRAM_BASE + 0x5E00000)
|
||||
#define CONFIG_SYS_LOAD_ADDR (CONFIG_SYS_SDRAM_BASE + 0x3E00000)
|
||||
#define CONFIG_SYS_TEXT_BASE 0x43e00000
|
||||
|
||||
#include <linux/sizes.h>
|
||||
/* Size of malloc() pool */
|
||||
#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + (80 * SZ_1M))
|
||||
|
||||
/* select serial console configuration */
|
||||
#define CONFIG_SERIAL1
|
||||
#define CONFIG_BAUDRATE 115200
|
||||
|
||||
/* Console configuration */
|
||||
#define CONFIG_SYS_CONSOLE_INFO_QUIET
|
||||
#define CONFIG_SYS_CONSOLE_IS_IN_ENV
|
||||
|
||||
#define CONFIG_CMD_BOOTZ
|
||||
#define CONFIG_FIT
|
||||
#define CONFIG_FIT_VERBOSE
|
||||
#define CONFIG_BOOTARGS "Please use defined boot"
|
||||
#define CONFIG_BOOTCOMMAND "run autoboot"
|
||||
#define CONFIG_DEFAULT_CONSOLE "console=ttySAC1,115200n8\0"
|
||||
|
||||
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_LOAD_ADDR \
|
||||
- GENERATED_GBL_DATA_SIZE)
|
||||
|
||||
#define CONFIG_SYS_MEM_TOP_HIDE (SZ_1M) /* ram console */
|
||||
|
||||
#define CONFIG_SYS_MONITOR_BASE 0x00000000
|
||||
|
||||
#define CONFIG_ENV_IS_IN_MMC
|
||||
#define CONFIG_SYS_MMC_ENV_DEV CONFIG_MMC_DEFAULT_DEV
|
||||
#define CONFIG_ENV_SIZE 4096
|
||||
#define CONFIG_ENV_OFFSET (SZ_1K * 1280) /* 1.25 MiB offset */
|
||||
#define CONFIG_ENV_OVERWRITE
|
||||
|
||||
/* Partitions name */
|
||||
#define PARTS_BOOT "boot"
|
||||
#define PARTS_ROOT "platform"
|
||||
|
||||
#define CONFIG_DFU_ALT \
|
||||
"uImage fat 0 1;" \
|
||||
"zImage fat 0 1;" \
|
||||
"Image.itb fat 0 1;" \
|
||||
"uInitrd fat 0 1;" \
|
||||
"exynos4412-odroidu3.dtb fat 0 1;" \
|
||||
"exynos4412-odroidx2.dtb fat 0 1;" \
|
||||
""PARTS_BOOT" part 0 1;" \
|
||||
""PARTS_ROOT" part 0 2\0" \
|
||||
|
||||
#define CONFIG_SET_DFU_ALT_INFO
|
||||
#define CONFIG_SET_DFU_ALT_BUF_LEN (SZ_1K)
|
||||
|
||||
#define CONFIG_DFU_ALT_BOOT_EMMC \
|
||||
"u-boot raw 0x3e 0x800 mmcpart 1;" \
|
||||
"bl1 raw 0x0 0x1e mmcpart 1;" \
|
||||
"bl2 raw 0x1e 0x1d mmcpart 1;" \
|
||||
"tzsw raw 0x83e 0x138 mmcpart 1\0"
|
||||
|
||||
#define CONFIG_DFU_ALT_BOOT_SD \
|
||||
"u-boot raw 0x3f 0x800;" \
|
||||
"bl1 raw 0x1 0x1e;" \
|
||||
"bl2 raw 0x1f 0x1d;" \
|
||||
"tzsw raw 0x83f 0x138\0"
|
||||
|
||||
/*
|
||||
* Bootable media layout:
|
||||
* dev: SD eMMC(part boot)
|
||||
* BL1 1 0
|
||||
* BL2 31 30
|
||||
* UBOOT 63 62
|
||||
* TZSW 2111 2110
|
||||
* ENV 2560 2560(part user)
|
||||
*
|
||||
* MBR Primary partiions:
|
||||
* Num Name Size Offset
|
||||
* 1. BOOT: 100MiB 2MiB
|
||||
* 2. ROOT: -
|
||||
*/
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"loadkernel=fatload mmc ${mmcbootdev}:${mmcbootpart} ${kerneladdr} " \
|
||||
"${kernelname}\0" \
|
||||
"loadinitrd=fatload mmc ${mmcbootdev}:${mmcbootpart} ${initrdaddr} " \
|
||||
"${initrdname}\0" \
|
||||
"loaddtb=fatload mmc ${mmcbootdev}:${mmcbootpart} ${fdtaddr} " \
|
||||
"${fdtfile}\0" \
|
||||
"check_ramdisk=" \
|
||||
"if run loadinitrd; then " \
|
||||
"setenv initrd_addr ${initrdaddr};" \
|
||||
"else " \
|
||||
"setenv initrd_addr -;" \
|
||||
"fi;\0" \
|
||||
"check_dtb=" \
|
||||
"if run loaddtb; then " \
|
||||
"setenv fdt_addr ${fdtaddr};" \
|
||||
"else " \
|
||||
"setenv fdt_addr;" \
|
||||
"fi;\0" \
|
||||
"kernel_args=" \
|
||||
"setenv bootargs root=/dev/mmcblk${mmcrootdev}p${mmcrootpart}" \
|
||||
" rootwait ${console} ${opts}\0" \
|
||||
"boot_fit=" \
|
||||
"setenv kerneladdr 0x42000000;" \
|
||||
"setenv kernelname Image.itb;" \
|
||||
"run loadkernel;" \
|
||||
"run kernel_args;" \
|
||||
"bootm ${kerneladdr}#${boardname}\0" \
|
||||
"boot_uimg=" \
|
||||
"setenv kerneladdr 0x40007FC0;" \
|
||||
"setenv kernelname uImage;" \
|
||||
"run check_dtb;" \
|
||||
"run check_ramdisk;" \
|
||||
"run loadkernel;" \
|
||||
"run kernel_args;" \
|
||||
"bootm ${kerneladdr} ${initrd_addr} ${fdt_addr};\0" \
|
||||
"boot_zimg=" \
|
||||
"setenv kerneladdr 0x40007FC0;" \
|
||||
"setenv kernelname zImage;" \
|
||||
"run check_dtb;" \
|
||||
"run check_ramdisk;" \
|
||||
"run loadkernel;" \
|
||||
"run kernel_args;" \
|
||||
"bootz ${kerneladdr} ${initrd_addr} ${fdt_addr};\0" \
|
||||
"autoboot=" \
|
||||
"if test -e mmc 0 Image.itb; then; " \
|
||||
"run boot_fit;" \
|
||||
"elif test -e mmc 0 zImage; then; " \
|
||||
"run boot_zimg;" \
|
||||
"elif test -e mmc 0 uImage; then; " \
|
||||
"run boot_uimg;" \
|
||||
"fi;\0" \
|
||||
"console=" CONFIG_DEFAULT_CONSOLE \
|
||||
"mmcbootdev=0\0" \
|
||||
"mmcbootpart=1\0" \
|
||||
"mmcrootdev=0\0" \
|
||||
"mmcrootpart=2\0" \
|
||||
"bootdelay=0\0" \
|
||||
"dfu_alt_system="CONFIG_DFU_ALT \
|
||||
"dfu_alt_info=Please reset the board\0" \
|
||||
"consoleon=set console console=ttySAC1,115200n8; save; reset\0" \
|
||||
"consoleoff=set console console=ram; save; reset\0" \
|
||||
"initrdname=uInitrd\0" \
|
||||
"initrdaddr=42000000\0" \
|
||||
"fdtaddr=40800000\0"
|
||||
|
||||
/* I2C */
|
||||
#define CONFIG_CMD_I2C
|
||||
#define CONFIG_SYS_I2C
|
||||
#define CONFIG_SYS_I2C_S3C24X0
|
||||
#define CONFIG_SYS_I2C_S3C24X0_SPEED 100000
|
||||
#define CONFIG_SYS_I2C_S3C24X0_SLAVE 0
|
||||
#define CONFIG_MAX_I2C_NUM 8
|
||||
#define CONFIG_SYS_I2C_INIT_BOARD
|
||||
|
||||
/* POWER */
|
||||
#define CONFIG_POWER
|
||||
#define CONFIG_POWER_I2C
|
||||
#define CONFIG_POWER_MAX77686
|
||||
|
||||
/* GPT */
|
||||
#define CONFIG_RANDOM_UUID
|
||||
|
||||
/* Security subsystem - enable hw_rand() */
|
||||
#define CONFIG_EXYNOS_ACE_SHA
|
||||
#define CONFIG_LIB_HW_RAND
|
||||
|
||||
#define CONFIG_CMD_GPIO
|
||||
|
||||
/*
|
||||
* Supported Odroid boards: X3, U3
|
||||
* TODO: Add Odroid X support
|
||||
*/
|
||||
#define CONFIG_MISC_COMMON
|
||||
#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
|
||||
#define CONFIG_BOARD_TYPES
|
||||
#define CONFIG_MISC_INIT_R
|
||||
|
||||
#undef CONFIG_REVISION_TAG
|
||||
|
||||
#endif /* __CONFIG_H */
|
Loading…
Reference in New Issue
Block a user