]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
Merge branch 'master' of git://git.denx.de/u-boot-samsung
authorTom Rini <trini@ti.com>
Tue, 30 Dec 2014 14:11:42 +0000 (09:11 -0500)
committerTom Rini <trini@ti.com>
Tue, 30 Dec 2014 14:11:42 +0000 (09:11 -0500)
19 files changed:
arch/arm/cpu/armv7/exynos/Kconfig
arch/arm/cpu/armv7/exynos/clock.c
arch/arm/dts/Makefile
arch/arm/dts/exynos5422-odroidxu3.dts [new file with mode: 0644]
arch/arm/dts/exynos5800-peach-pi.dts
arch/arm/include/asm/arch-exynos/system.h
board/samsung/smdk5420/Kconfig
board/samsung/smdk5420/smdk5420.c
configs/odroid-xu3_defconfig [new file with mode: 0644]
doc/README.odroid
include/configs/arndale.h
include/configs/exynos5-common.h
include/configs/exynos5250-common.h
include/configs/exynos5420-common.h
include/configs/odroid_xu3.h [new file with mode: 0644]
include/configs/peach-pi.h
include/configs/peach-pit.h
include/configs/smdk5420.h
include/parade.h [new file with mode: 0644]

index f3eadb4db30b762670521ac8a8ad2e733a80346a..7fcb5d2094ec7e51144325085774fca4a00a9256 100644 (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
index 8fab135bebf4ef6900677847b60a8e1a1520254c..b31c13b14bfbd1c4d663e4f518bdd486e4736c72 100644 (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
index e6a495cb0dc549bfb1adb64302bbe52c60fab2e9..fac16cc384d37d578ee58085121d619c431a85a1 100644 (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 \
diff --git a/arch/arm/dts/exynos5422-odroidxu3.dts b/arch/arm/dts/exynos5422-odroidxu3.dts
new file mode 100644 (file)
index 0000000..79a7acd
--- /dev/null
@@ -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>;
+       };
+};
index 8aedf8e7077fff920005517ae6553bdd6c21a2c8..2f9d2dbd54658cc2ceeab91739cb797aa38c96cc 100644 (file)
                      reg = <0x20>;
                      compatible = "maxim,max98090-codec";
               };
-
-               edp-lvds-bridge@48 {
-                       compatible = "parade,ps8625";
-                       reg = <0x48>;
-               };
        };
 
         sound@3830000 {
index 320763fd8cf1edcc2a00fd5081a20bee09956204..4968d3dd2e6cd732f4f49482a78464bea8c0d50f 100644 (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 */
index e7aafe5bebd3600c1bd4313d783e9b5313eb670d..ff28b1df7eaf0be61d91bfb031af65ea326eb454 100644 (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
index a691222b8b143dd61e784ae8e3122dc95b8e3953..1aca9fabd9458d7be1f5d38616d27eade629ba78 100644 (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>
 
 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;
 }
 
diff --git a/configs/odroid-xu3_defconfig b/configs/odroid-xu3_defconfig
new file mode 100644 (file)
index 0000000..74aa0cf
--- /dev/null
@@ -0,0 +1,4 @@
+CONFIG_ARM=y
+CONFIG_ARCH_EXYNOS=y
+CONFIG_TARGET_ODROID_XU3=y
+CONFIG_DEFAULT_DEVICE_TREE="exynos5422-odroidxu3"
index 25b962b9f1373bf6947116c6b9a3566cf496702b..8a004ca6ba6b9c55e5407b3c9abbdc2b5e62cdaf 100644 (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
index 81e8a7c3a362ebedf3d573df6156123bd47ee53a..6bd27a24467a486bf7129fa20bf69a0548060f11 100644 (file)
 #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
 
index 8f9b780003065960c02b99e4606de6f456a5583c..ad63f3c5496d39e0be23c35d2a1d29c92edf8c11 100644 (file)
 
 #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
index a0107e8b4d4b551a4688c06bf66f73aaee58b73f..671431397fc02598316a9da65e170cd9196c5df8 100644 (file)
 
 #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
index ef6e1551ab0086a139e4dc2e03cc95c94d95bdc9..fe72bd0d3bc7d05b02fdb33e130e0b58c1d03362 100644 (file)
 /* 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
 
 #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 */
diff --git a/include/configs/odroid_xu3.h b/include/configs/odroid_xu3.h
new file mode 100644 (file)
index 0000000..9fa8660
--- /dev/null
@@ -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 */
index 8a82402ec159f164b9c579ad351dbac0983d9d8b..a1c980d320259a380465a934d190e71538a4e0c1 100644 (file)
 #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"
index ad5db57f5f94678591d2c6f2398cd3ca83ed2bd9..6516a727642f3afaad3c8c04249e75d1eabbcdf2 100644 (file)
 #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"
index 5c9a3c0b21b676e5d09d13796abdac1fbbd71b6d..61f582f37516b57cc1d38de64635a7b65ea69aa4 100644 (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 */
diff --git a/include/parade.h b/include/parade.h
new file mode 100644 (file)
index 0000000..887f56d
--- /dev/null
@@ -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__ */