1
0
Fork 0

Merge branch 'master' of git://git.denx.de/u-boot-samsung

utp
Tom Rini 2014-12-30 09:11:42 -05:00
commit 87b27c7aa7
19 changed files with 216 additions and 70 deletions

View File

@ -24,6 +24,10 @@ config TARGET_TRATS2
config TARGET_ODROID
bool "Exynos4412 Odroid board"
config TARGET_ODROID_XU3
bool "Exynos5422 Odroid board"
select OF_CONTROL
config TARGET_ARNDALE
bool "Exynos5250 Arndale board"
select CPU_V7_HAS_NONSEC

View File

@ -848,6 +848,8 @@ static unsigned long exynos5420_get_mmc_clk(int dev_index)
if (sel == 0x3)
sclk = get_pll_clk(MPLL);
else if (sel == 0x4)
sclk = get_pll_clk(SPLL);
else if (sel == 0x6)
sclk = get_pll_clk(EPLL);
else

View File

@ -13,7 +13,8 @@ dtb-$(CONFIG_EXYNOS5) += exynos5250-arndale.dtb \
exynos5250-smdk5250.dtb \
exynos5420-smdk5420.dtb \
exynos5420-peach-pit.dtb \
exynos5800-peach-pi.dtb
exynos5800-peach-pi.dtb \
exynos5422-odroidxu3.dtb
dtb-$(CONFIG_TEGRA) += tegra20-harmony.dtb \
tegra20-medcom-wide.dtb \
tegra20-paz00.dtb \

View File

@ -0,0 +1,49 @@
/*
* Odroid XU3 device tree source
*
* Copyright (c) 2014 Samsung Electronics Co., Ltd.
* http://www.samsung.com
*
* SPDX-License-Identifier: GPL-2.0+
*/
/dts-v1/;
#include "exynos54xx.dtsi"
/ {
model = "Odroid XU3 based on EXYNOS5422";
compatible = "samsung,odroidxu3", "samsung,exynos5";
aliases {
serial0 = "/serial@12C00000";
console = "/serial@12C20000";
};
memory {
device_type = "memory";
reg = <0x40000000 0x10000000
0x50000000 0x10000000
0x60000000 0x10000000
0x70000000 0x10000000
0x80000000 0x10000000
0x90000000 0x10000000
0xa0000000 0x10000000
0xb0000000 0xea00000>;
};
ehci@12110000 {
samsung,vbus-gpio = <&gpio 0x66 0>; /* X26 */
};
serial@12C20000 {
status="okay";
};
mmc@12200000 {
fifoth_val = <0x201f0020>;
};
mmc@12220000 {
fifoth_val = <0x201f0020>;
};
};

View File

@ -63,11 +63,6 @@
reg = <0x20>;
compatible = "maxim,max98090-codec";
};
edp-lvds-bridge@48 {
compatible = "parade,ps8625";
reg = <0x48>;
};
};
sound@3830000 {

View File

@ -41,7 +41,4 @@ void set_usbhost_mode(unsigned int mode);
void set_system_display_ctrl(void);
int exynos_lcd_early_init(const void *blob);
/* Initialize the Parade dP<->LVDS bridge if present */
int parade_init(const void *blob);
#endif /* _EXYNOS4_SYSTEM_H */

View File

@ -1,3 +1,16 @@
if TARGET_ODROID_XU3
config SYS_BOARD
default "smdk5420"
config SYS_VENDOR
default "samsung"
config SYS_CONFIG_NAME
default "odroid_xu3"
endif
if TARGET_PEACH_PI
config SYS_BOARD

View File

@ -9,6 +9,7 @@
#include <asm/io.h>
#include <i2c.h>
#include <lcd.h>
#include <parade.h>
#include <spi.h>
#include <errno.h>
#include <asm/gpio.h>
@ -21,24 +22,8 @@
DECLARE_GLOBAL_DATA_PTR;
#ifdef CONFIG_USB_EHCI_EXYNOS
static int board_usb_vbus_init(void)
{
/* Enable VBUS power switch */
gpio_direction_output(EXYNOS5420_GPIO_X26, 1);
/* VBUS turn ON time */
mdelay(3);
return 0;
}
#endif
int exynos_init(void)
{
#ifdef CONFIG_USB_EHCI_EXYNOS
board_usb_vbus_init();
#endif
return 0;
}

View File

@ -0,0 +1,4 @@
CONFIG_ARM=y
CONFIG_ARCH_EXYNOS=y
CONFIG_TARGET_ODROID_XU3=y
CONFIG_DEFAULT_DEVICE_TREE="exynos5422-odroidxu3"

View File

@ -1,28 +1,39 @@
U-boot for Odroid X2/U3
U-boot for Odroid X2/U3/XU3
========================
1. Summary
==========
This is a quick instruction for setup Odroid boards based on Exynos4412.
Board config: odroid_config
This is a quick instruction for setup Odroid boards.
Board config: odroid_config for X2/U3
Board config: odroid-xu3_config for XU3
2. Supported devices
====================
This U-BOOT config can be used on two boards:
This U-BOOT config can be used on three boards:
- Odroid U3
- Odroid X2
with CPU Exynos 4412 rev 2.0 and 2GB of RAM
- Odroid XU3
with CPU Exynos5422 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:
This version of U-BOOT doesn't implement SPL. So, BL1, BL2, and TrustZone
binaries are needed to boot up.
<< X2/U3 >>
It 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
<< XU3 >>
It can be downloaded from:
https://github.com/hardkernel/u-boot/tree/odroidxu3-v2012.07/sd_fuse/hardkernel
4. Boot media layout
====================
The table below shows SD/eMMC cards layout for U-boot.
@ -35,18 +46,20 @@ The block offset is starting from 0 and the block size is 512B.
| Bl2 | 31 | 30 | 1 (boot) |
| U-boot | 63 | 62 | 1 (boot) |
| Tzsw | 2111 | 2110 | 1 (boot) |
| Uboot Env | 2500 | 2500 | 0 (user) |
| Uboot Env | 2560 | 2560 | 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
From the downloaded files, You can find:
- bl1.bin
- tzsw.bin
- bl2.bin
- sd_fusing.sh
- u-boot.bin
(The file names can be slightly different, but you can distinguish what they are
without problem)
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*
@ -56,7 +69,7 @@ and run the script "sd_fusing.sh" - this script is valid only for SD card.
The proper binary file of current U-boot is u-boot-dtb.bin.
quick steps for Linux:
- extract boot.tar.gz
- Download all files from the link at point 3 and extract it if needed.
- 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)
@ -66,7 +79,7 @@ Check if Hardkernel U-boot is booting, and next do the same with your U-boot.
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
which supports eMMC partition 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
@ -81,8 +94,8 @@ 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:
You can update the U-boot to the custom one if you have a working bootloader
delivered with the board on the 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)
@ -91,7 +104,7 @@ delivered with the board on a eMMC/SD card. Then follow the steps:
9. Partition layout
====================
Default U-boot environment is setup for fixed partiion layout.
Default U-boot environment is setup for fixed partition layout.
Partition table: MSDOS. Disk layout and files as listed in the table below.
----- ------ ------ ------ -------- ---------------------------------
@ -106,6 +119,7 @@ Partition table: MSDOS. Disk layout and files as listed in the table below.
Supported fdt files are:
- exynos4412-odroidx2.dtb
- exynos4412-odroidu3.dtb
- exynos5422-odroidxu3.dtb
Supported kernel files are:
- Image.itb
@ -144,6 +158,7 @@ And the boot sequence is:
11. USB host support
====================
NOTE: This section is only for Odroid X2/U3.
The ethernet can be accessed after starting the USB subsystem in U-Boot.
The adapter does not come with a preconfigured MAC address, and hence it needs

View File

@ -24,10 +24,6 @@
#define CONFIG_USB_EHCI
#define CONFIG_USB_EHCI_EXYNOS
#define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 3
#define CONFIG_USB_HOST_ETHER
#define CONFIG_USB_ETHER_ASIX
/* MMC SPL */
#define CONFIG_EXYNOS_SPL

View File

@ -174,6 +174,16 @@
#define CONFIG_CMD_GPIO
/* USB */
#define CONFIG_CMD_USB
#define CONFIG_USB_STORAGE
#define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 3
#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2
#define CONFIG_USB_HOST_ETHER
#define CONFIG_USB_ETHER_ASIX
#define CONFIG_USB_ETHER_SMSC95XX
/* USB boot mode */
#define CONFIG_USB_BOOTING
#define EXYNOS_COPY_USB_FNPTR_ADDR 0x02020070

View File

@ -22,11 +22,6 @@
#define CONFIG_SPL_MAX_FOOTPRINT (14 * 1024)
/* USB */
#define CONFIG_CMD_USB
#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2
#define CONFIG_USB_STORAGE
#define CONFIG_SPL_TEXT_BASE 0x02023400
#define CONFIG_IRAM_STACK 0x02050000

View File

@ -13,13 +13,6 @@
/* A variant of Exynos5420 (Exynos5 Family) */
#define CONFIG_EXYNOS5800
#define CONFIG_ENV_IS_IN_SPI_FLASH
#define CONFIG_SPI_FLASH
#define CONFIG_ENV_SPI_BASE 0x12D30000
#define FLASH_SIZE (0x4 << 20)
#define CONFIG_ENV_OFFSET (FLASH_SIZE - CONFIG_BL2_SIZE)
#define CONFIG_SPI_BOOTING
#include <configs/exynos5-common.h>
#define CONFIG_ARCH_EARLY_INIT_R
@ -29,8 +22,6 @@
#define CONFIG_VAR_SIZE_SPL
#define CONFIG_SYS_SDRAM_BASE 0x20000000
#define CONFIG_SYS_TEXT_BASE 0x23E00000
#ifdef CONFIG_VAR_SIZE_SPL
#define CONFIG_SPL_TEXT_BASE 0x02024410
#else
@ -47,15 +38,4 @@
#define CONFIG_BOARD_REV_GPIO_COUNT 2
#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2
/*
* Put the initial stack pointer 1KB below this to allow room for the
* SPL marker. This value is arbitrary, but gd_t is placed starting here.
*/
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_IRAM_TOP - 0x800)
/* Miscellaneous configurable options */
#define CONFIG_DEFAULT_CONSOLE "console=ttySAC1,115200n8\0"
#endif /* __CONFIG_EXYNOS5420_H */

View File

@ -0,0 +1,55 @@
/*
* Copyright (C) 2013 Samsung Electronics
* Hyungwon Hwang <human.hwang@samsung.com>
*
* SPDX-License-Identifier: GPL-2.0+
*/
#ifndef __CONFIG_ODROID_XU3_H
#define __CONFIG_ODROID_XU3_H
#include "exynos5420-common.h"
#define CONFIG_SYS_PROMPT "ODROID-XU3 # "
#define CONFIG_IDENT_STRING " for ODROID-XU3"
#define CONFIG_BOARD_COMMON
#define CONFIG_SYS_SDRAM_BASE 0x40000000
#define CONFIG_SYS_TEXT_BASE 0x43E00000
/* select serial console configuration */
#define CONFIG_SERIAL2 /* use SERIAL 2 */
#define TZPC_BASE_OFFSET 0x10000
#define CONFIG_CMD_MMC
/*
* FIXME: The number of bank is actually 8. But there is no way to reserve the
* last 16 Mib in the last bank now. So I just excluded the last bank
* temporally.
*/
#define CONFIG_NR_DRAM_BANKS 7
#define SDRAM_BANK_SIZE (256UL << 20UL) /* 256 MB */
#define CONFIG_ENV_IS_IN_MMC
#undef CONFIG_ENV_SIZE
#undef CONFIG_ENV_OFFSET
#define CONFIG_ENV_SIZE 4096
#define CONFIG_ENV_OFFSET (SZ_1K * 1280) /* 1.25 MiB offset */
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_LOAD_ADDR - 0x1000000)
#define CONFIG_DEFAULT_CONSOLE "console=ttySAC2,115200n8\0"
/* USB */
#define CONFIG_USB_EHCI
#define CONFIG_USB_EHCI_EXYNOS
/* FIXME: MUST BE REMOVED AFTER TMU IS TURNED ON */
#undef CONFIG_EXYNOS_TMU
#undef CONFIG_TMU_CMD_DTT
#endif /* __CONFIG_H */

View File

@ -14,14 +14,20 @@
#define CONFIG_ENV_SPI_BASE 0x12D30000
#define FLASH_SIZE (0x4 << 20)
#define CONFIG_ENV_OFFSET (FLASH_SIZE - CONFIG_BL2_SIZE)
#define CONFIG_SPI_BOOTING
#include <configs/exynos5420-common.h>
#include <configs/exynos5-dt-common.h>
#define CONFIG_BOARD_COMMON
#define CONFIG_SYS_SDRAM_BASE 0x20000000
#define CONFIG_SYS_TEXT_BASE 0x23E00000
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_IRAM_TOP - 0x800)
/* select serial console configuration */
#define CONFIG_SERIAL3 /* use SERIAL 3 */
#define CONFIG_DEFAULT_CONSOLE "console=ttySAC1,115200n8\0"
#define CONFIG_SYS_PROMPT "Peach-Pi # "
#define CONFIG_IDENT_STRING " for Peach-Pi"

View File

@ -14,14 +14,20 @@
#define CONFIG_ENV_SPI_BASE 0x12D30000
#define FLASH_SIZE (0x4 << 20)
#define CONFIG_ENV_OFFSET (FLASH_SIZE - CONFIG_BL2_SIZE)
#define CONFIG_SPI_BOOTING
#include <configs/exynos5420-common.h>
#include <configs/exynos5-dt-common.h>
#define CONFIG_BOARD_COMMON
#define CONFIG_SYS_SDRAM_BASE 0x20000000
#define CONFIG_SYS_TEXT_BASE 0x23E00000
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_IRAM_TOP - 0x800)
/* select serial console configuration */
#define CONFIG_SERIAL3 /* use SERIAL 3 */
#define CONFIG_DEFAULT_CONSOLE "console=ttySAC1,115200n8\0"
#define CONFIG_SYS_PROMPT "Peach-Pit # "
#define CONFIG_IDENT_STRING " for Peach-Pit"

View File

@ -9,20 +9,35 @@
#ifndef __CONFIG_SMDK5420_H
#define __CONFIG_SMDK5420_H
#define CONFIG_ENV_IS_IN_SPI_FLASH
#define CONFIG_SPI_FLASH
#define CONFIG_ENV_SPI_BASE 0x12D30000
#define FLASH_SIZE (0x4 << 20)
#define CONFIG_ENV_OFFSET (FLASH_SIZE - CONFIG_BL2_SIZE)
#define CONFIG_SPI_BOOTING
#include <configs/exynos5420-common.h>
#define CONFIG_BOARD_COMMON
#define CONFIG_SMDK5420 /* which is in a SMDK5420 */
#define CONFIG_SYS_SDRAM_BASE 0x20000000
#define CONFIG_SYS_TEXT_BASE 0x23E00000
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_IRAM_TOP - 0x800)
/* select serial console configuration */
#define CONFIG_SERIAL3 /* use SERIAL 3 */
#define CONFIG_DEFAULT_CONSOLE "console=ttySAC1,115200n8\0"
#define CONFIG_SYS_PROMPT "SMDK5420 # "
#define CONFIG_IDENT_STRING " for SMDK5420"
#define CONFIG_DEFAULT_CONSOLE "console=ttySAC1,115200n8\0"
/* USB */
#define CONFIG_USB_XHCI
#define CONFIG_USB_XHCI_EXYNOS
/* DRAM Memory Banks */
#define CONFIG_NR_DRAM_BANKS 7
#define SDRAM_BANK_SIZE (512UL << 20UL) /* 512 MB */

18
include/parade.h 100644
View File

@ -0,0 +1,18 @@
/*
* (C) Copyright 2012 Samsung Electronics
* Donghwa Lee <dh09.lee@samsung.com>
*
* SPDX-License-Identifier: GPL-2.0+
*/
#ifndef __PARADE_H__
#define __PARADE_H__
/* Initialize the Parade dP<->LVDS bridge if present */
#ifdef CONFIG_VIDEO_PARADE
int parade_init(const void *blob);
#else
static inline int parade_init(const void *blob) { return -1; }
#endif
#endif /* __PARADE_H__ */