diff mbox

[U-Boot,v10,2/4] Odroid-XU3: Add support for Odroid-XU3

Message ID 1417504034-25522-3-git-send-email-human.hwang@samsung.com
State Changes Requested
Delegated to: Minkyu Kang
Headers show

Commit Message

Hyungwon Hwang Dec. 2, 2014, 7:07 a.m. UTC
This patch adds support for Odroid-XU3.

Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
Cc: Minkyu Kang <mk7.kang@samsung.com>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Cc: Javier Martinez Canillas <javier@dowhile0.org>
Cc: Simon Glass <sjg@chromium.org>
---
Changes for v3:
- Remove unnecessary node from DT file
- Remove unnecessary features from config file
- Remove unnecessary macros from board-specific header file
- Fix some trivial typos in comments

Changes for v4:
- Add MMC FIFO buffer's configuration to DT file
- Make CONFIG_OF_CONTROL be set by the target information
- Add basic document to doc/README.odroid-xu3
- Add CONFIG_CMD_EXT4 to config file
- Add environment size and offset to config file
- Add extra default environment to make bootable without modification
- Remove unnecessary features from config file

Changes for v5:
- Convert /include/ to #include in DT file

Changes for v6:
- Separate out the documentation to new commit
- Remove unnecessary header file inclusions from the board-specific setup file
- Make the function board_clock_init be declared, only when
  CONFIG_BOARD_EARLY_INIT_F is defined

Changes for v7:
- Remove OF_CONTROL dependency from !SPL_BUILD

Changes for v8:
- Remove unnecessary properties in DT mmc node

Changes for v9:
- Remove useless variables in the default environment
- Replace the detailed information to the reference to the documentation

Changes for v10:
- Remove the config unsets which are added to make the result image small
  This is needless now, because the image is not small enough even though these
  unsets are added.
- Remove redundant DT node and properties
- Remove the odroid-xu3 board file and make odroid-xu3 a variant of smdk5420

 arch/arm/cpu/armv7/exynos/Kconfig     |  4 +++
 arch/arm/dts/Makefile                 |  3 +-
 arch/arm/dts/exynos5422-odroidxu3.dts | 45 +++++++++++++++++++++++++++++
 board/samsung/smdk5420/Kconfig        | 13 +++++++++
 configs/odroid-xu3_defconfig          |  4 +++
 include/configs/odroid_xu3.h          | 54 +++++++++++++++++++++++++++++++++++
 6 files changed, 122 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/exynos5422-odroidxu3.dts
 create mode 100644 configs/odroid-xu3_defconfig
 create mode 100644 include/configs/odroid_xu3.h

Comments

Simon Glass Dec. 2, 2014, 5:28 p.m. UTC | #1
On 2 December 2014 at 00:07, Hyungwon Hwang <human.hwang@samsung.com> wrote:
> This patch adds support for Odroid-XU3.
>
> Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
> Cc: Minkyu Kang <mk7.kang@samsung.com>
> Cc: Lukasz Majewski <l.majewski@samsung.com>
> Cc: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
> Cc: Javier Martinez Canillas <javier@dowhile0.org>
> Cc: Simon Glass <sjg@chromium.org>
> ---
> Changes for v3:
> - Remove unnecessary node from DT file
> - Remove unnecessary features from config file
> - Remove unnecessary macros from board-specific header file
> - Fix some trivial typos in comments
>
> Changes for v4:
> - Add MMC FIFO buffer's configuration to DT file
> - Make CONFIG_OF_CONTROL be set by the target information
> - Add basic document to doc/README.odroid-xu3
> - Add CONFIG_CMD_EXT4 to config file
> - Add environment size and offset to config file
> - Add extra default environment to make bootable without modification
> - Remove unnecessary features from config file
>
> Changes for v5:
> - Convert /include/ to #include in DT file
>
> Changes for v6:
> - Separate out the documentation to new commit
> - Remove unnecessary header file inclusions from the board-specific setup file
> - Make the function board_clock_init be declared, only when
>   CONFIG_BOARD_EARLY_INIT_F is defined
>
> Changes for v7:
> - Remove OF_CONTROL dependency from !SPL_BUILD
>
> Changes for v8:
> - Remove unnecessary properties in DT mmc node
>
> Changes for v9:
> - Remove useless variables in the default environment
> - Replace the detailed information to the reference to the documentation
>
> Changes for v10:
> - Remove the config unsets which are added to make the result image small
>   This is needless now, because the image is not small enough even though these
>   unsets are added.
> - Remove redundant DT node and properties
> - Remove the odroid-xu3 board file and make odroid-xu3 a variant of smdk5420

Acked-by: Simon Glass <sjg@chromium.org>

>
>  arch/arm/cpu/armv7/exynos/Kconfig     |  4 +++
>  arch/arm/dts/Makefile                 |  3 +-
>  arch/arm/dts/exynos5422-odroidxu3.dts | 45 +++++++++++++++++++++++++++++
>  board/samsung/smdk5420/Kconfig        | 13 +++++++++
>  configs/odroid-xu3_defconfig          |  4 +++
>  include/configs/odroid_xu3.h          | 54 +++++++++++++++++++++++++++++++++++
>  6 files changed, 122 insertions(+), 1 deletion(-)
>  create mode 100644 arch/arm/dts/exynos5422-odroidxu3.dts
>  create mode 100644 configs/odroid-xu3_defconfig
>  create mode 100644 include/configs/odroid_xu3.h
>
> diff --git a/arch/arm/cpu/armv7/exynos/Kconfig b/arch/arm/cpu/armv7/exynos/Kconfig
> index f3eadb4..7fcb5d2 100644
> --- a/arch/arm/cpu/armv7/exynos/Kconfig
> +++ b/arch/arm/cpu/armv7/exynos/Kconfig
> @@ -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
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> index e5846ea..a811b1b 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -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
> index 0000000..cff32a9
> --- /dev/null
> +++ b/arch/arm/dts/exynos5422-odroidxu3.dts
> @@ -0,0 +1,45 @@
> +/*
> + * 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>;
> +       };
> +
> +       serial@12C20000 {
> +               status="okay";
> +       };
> +
> +       mmc@12200000 {
> +               fifoth_val = <0x201f0020>;
> +       };
> +
> +       mmc@12220000 {
> +               fifoth_val = <0x201f0020>;
> +       };
> +};
> diff --git a/board/samsung/smdk5420/Kconfig b/board/samsung/smdk5420/Kconfig
> index e7aafe5..ff28b1d 100644
> --- a/board/samsung/smdk5420/Kconfig
> +++ b/board/samsung/smdk5420/Kconfig
> @@ -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
> diff --git a/configs/odroid-xu3_defconfig b/configs/odroid-xu3_defconfig
> new file mode 100644
> index 0000000..74aa0cf
> --- /dev/null
> +++ b/configs/odroid-xu3_defconfig
> @@ -0,0 +1,4 @@
> +CONFIG_ARM=y
> +CONFIG_ARCH_EXYNOS=y
> +CONFIG_TARGET_ODROID_XU3=y
> +CONFIG_DEFAULT_DEVICE_TREE="exynos5422-odroidxu3"
> diff --git a/include/configs/odroid_xu3.h b/include/configs/odroid_xu3.h
> new file mode 100644
> index 0000000..88bb98d
> --- /dev/null
> +++ b/include/configs/odroid_xu3.h
> @@ -0,0 +1,54 @@
> +/*
> + * 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
> +#define CONFIG_CMD_EXT2
> +#define CONFIG_CMD_EXT4
> +#define CONFIG_CMD_FAT
> +
> +/*
> + * FIXME: The number of bank is actually 8. But there is no way to reserver the

reserve

> + * 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"
> +
> +/* FIXME: MUST BE REMOVED AFTER TMU IS TURNED ON */
> +#undef CONFIG_EXYNOS_TMU
> +#undef CONFIG_TMU_CMD_DTT
> +
> +#endif /* __CONFIG_H */
> --
> 1.9.1
>

Regards,
Simon
Sjoerd Simons Dec. 5, 2014, 7:31 p.m. UTC | #2
On Tue, 2014-12-02 at 16:07 +0900, Hyungwon Hwang wrote:
> This patch adds support for Odroid-XU3.
> 

> diff --git a/configs/odroid-xu3_defconfig b/configs/odroid-xu3_defconfig
> new file mode 100644
> index 0000000..74aa0cf
> --- /dev/null
> +++ b/configs/odroid-xu3_defconfig
> @@ -0,0 +1,4 @@

> +
> +#define CONFIG_CMD_MMC
> +#define CONFIG_CMD_EXT2
> +#define CONFIG_CMD_EXT4
> +#define CONFIG_CMD_FAT

These four are already defined in include/config_distro_defaults.h which
is included by the exynos headers

Other then that

Reviewed-By: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Tested-By:  Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Hyungwon Hwang Dec. 9, 2014, 2:04 a.m. UTC | #3
Dear Sjoerd,

On Fri, 05 Dec 2014 20:31:25 +0100
Sjoerd Simons <sjoerd.simons@collabora.co.uk> wrote:

> On Tue, 2014-12-02 at 16:07 +0900, Hyungwon Hwang wrote:
> > This patch adds support for Odroid-XU3.
> > 
> 
> > diff --git a/configs/odroid-xu3_defconfig
> > b/configs/odroid-xu3_defconfig new file mode 100644
> > index 0000000..74aa0cf
> > --- /dev/null
> > +++ b/configs/odroid-xu3_defconfig
> > @@ -0,0 +1,4 @@
> 
> > +
> > +#define CONFIG_CMD_MMC
> > +#define CONFIG_CMD_EXT2
> > +#define CONFIG_CMD_EXT4
> > +#define CONFIG_CMD_FAT
> 
> These four are already defined in include/config_distro_defaults.h
> which is included by the exynos headers

I will remove CONFIG_CMD_EXT2, CONFIG_CMD_EXT4, and CONFIG_CMD_FAT
which defined needlessly from next version.

Thanks.

> 
> Other then that
> 
> Reviewed-By: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
> Tested-By:  Sjoerd Simons <sjoerd.simons@collabora.co.uk>

Best regards,
Hyungwon Hwang
diff mbox

Patch

diff --git a/arch/arm/cpu/armv7/exynos/Kconfig b/arch/arm/cpu/armv7/exynos/Kconfig
index f3eadb4..7fcb5d2 100644
--- a/arch/arm/cpu/armv7/exynos/Kconfig
+++ b/arch/arm/cpu/armv7/exynos/Kconfig
@@ -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
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index e5846ea..a811b1b 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -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
index 0000000..cff32a9
--- /dev/null
+++ b/arch/arm/dts/exynos5422-odroidxu3.dts
@@ -0,0 +1,45 @@ 
+/*
+ * 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>;
+	};
+
+	serial@12C20000 {
+		status="okay";
+	};
+
+	mmc@12200000 {
+		fifoth_val = <0x201f0020>;
+	};
+
+	mmc@12220000 {
+		fifoth_val = <0x201f0020>;
+	};
+};
diff --git a/board/samsung/smdk5420/Kconfig b/board/samsung/smdk5420/Kconfig
index e7aafe5..ff28b1d 100644
--- a/board/samsung/smdk5420/Kconfig
+++ b/board/samsung/smdk5420/Kconfig
@@ -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
diff --git a/configs/odroid-xu3_defconfig b/configs/odroid-xu3_defconfig
new file mode 100644
index 0000000..74aa0cf
--- /dev/null
+++ b/configs/odroid-xu3_defconfig
@@ -0,0 +1,4 @@ 
+CONFIG_ARM=y
+CONFIG_ARCH_EXYNOS=y
+CONFIG_TARGET_ODROID_XU3=y
+CONFIG_DEFAULT_DEVICE_TREE="exynos5422-odroidxu3"
diff --git a/include/configs/odroid_xu3.h b/include/configs/odroid_xu3.h
new file mode 100644
index 0000000..88bb98d
--- /dev/null
+++ b/include/configs/odroid_xu3.h
@@ -0,0 +1,54 @@ 
+/*
+ * 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
+#define CONFIG_CMD_EXT2
+#define CONFIG_CMD_EXT4
+#define CONFIG_CMD_FAT
+
+/*
+ * FIXME: The number of bank is actually 8. But there is no way to reserver 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"
+
+/* FIXME: MUST BE REMOVED AFTER TMU IS TURNED ON */
+#undef CONFIG_EXYNOS_TMU
+#undef CONFIG_TMU_CMD_DTT
+
+#endif	/* __CONFIG_H */