Merge branch 'master' of git://git.denx.de/u-boot-samsung
This commit is contained in:
commit
87b27c7aa7
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -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>;
|
||||
};
|
||||
};
|
|
@ -63,11 +63,6 @@
|
|||
reg = <0x20>;
|
||||
compatible = "maxim,max98090-codec";
|
||||
};
|
||||
|
||||
edp-lvds-bridge@48 {
|
||||
compatible = "parade,ps8625";
|
||||
reg = <0x48>;
|
||||
};
|
||||
};
|
||||
|
||||
sound@3830000 {
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
CONFIG_ARM=y
|
||||
CONFIG_ARCH_EXYNOS=y
|
||||
CONFIG_TARGET_ODROID_XU3=y
|
||||
CONFIG_DEFAULT_DEVICE_TREE="exynos5422-odroidxu3"
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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__ */
|
Loading…
Reference in New Issue