Re: [U-Boot] [PATCH v2 04/18] arm: MediaTek: add basic support for MT7629 boards

2018-10-25 Thread Ryder Lee
On Wed, 2018-10-24 at 21:29 -0600, Simon Glass wrote:
> Hi Ryder,
> 
> On 12 October 2018 at 01:00, Ryder Lee  wrote:
> > This adds a general board file based on MT7629 SoCs from MediaTek.
> >
> > Apart from the generic parts (cpu) we add some low level init codes
> > and initialize the early clocks.
> >
> > Signed-off-by: Ryder Lee 
> > Signed-off-by: Weijie Gao 
> > ---
> >  arch/arm/Kconfig  |  14 +++
> >  arch/arm/Makefile |   1 +
> >  arch/arm/include/asm/arch-mediatek/misc.h |  17 
> >  arch/arm/mach-mediatek/Kconfig|  24 +
> >  arch/arm/mach-mediatek/Makefile   |   6 ++
> >  arch/arm/mach-mediatek/cpu.c  |  34 +++
> >  arch/arm/mach-mediatek/init.h |  11 +++
> >  arch/arm/mach-mediatek/mt7629/Makefile|   4 +
> >  arch/arm/mach-mediatek/mt7629/init.c  | 131 
> > ++
> >  arch/arm/mach-mediatek/mt7629/lowlevel_init.S |  50 ++
> >  arch/arm/mach-mediatek/spl.c  |  43 +
> >  board/mediatek/mt7629/Kconfig |  17 
> >  board/mediatek/mt7629/MAINTAINERS |   7 ++
> >  board/mediatek/mt7629/Makefile|   3 +
> >  board/mediatek/mt7629/mt7629_rfb.c|  16 
> >  configs/mt7629_rfb_defconfig  |  73 ++
> >  include/configs/mt7629.h  |  62 
> >  17 files changed, 513 insertions(+)
> >  create mode 100644 arch/arm/include/asm/arch-mediatek/misc.h
> >  create mode 100644 arch/arm/mach-mediatek/Kconfig
> >  create mode 100644 arch/arm/mach-mediatek/Makefile
> >  create mode 100644 arch/arm/mach-mediatek/cpu.c
> >  create mode 100644 arch/arm/mach-mediatek/init.h
> >  create mode 100644 arch/arm/mach-mediatek/mt7629/Makefile
> >  create mode 100644 arch/arm/mach-mediatek/mt7629/init.c
> >  create mode 100644 arch/arm/mach-mediatek/mt7629/lowlevel_init.S
> >  create mode 100644 arch/arm/mach-mediatek/spl.c
> >  create mode 100644 board/mediatek/mt7629/Kconfig
> >  create mode 100644 board/mediatek/mt7629/MAINTAINERS
> >  create mode 100644 board/mediatek/mt7629/Makefile
> >  create mode 100644 board/mediatek/mt7629/mt7629_rfb.c
> >  create mode 100644 configs/mt7629_rfb_defconfig
> >  create mode 100644 include/configs/mt7629.h
> 
> Looks good. A few nits below
> 
> >
> > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> > index ccf2a84..eac03f0 100644
> > --- a/arch/arm/Kconfig
> > +++ b/arch/arm/Kconfig
> > @@ -668,6 +668,18 @@ config ARCH_MESON
> >   targeted at media players and tablet computers. We currently
> >   support the S905 (GXBaby) 64-bit SoC.
> >
> > +config ARCH_MEDIATEK
> > +   bool "MediaTek SoCs"
> > +   select DM
> > +   select OF_CONTROL
> > +   select SPL_DM if SPL
> > +   select SPL_LIBCOMMON_SUPPORT if SPL
> > +   select SPL_LIBGENERIC_SUPPORT if SPL
> > +   select SPL_OF_CONTROL if SPL
> > +   select SUPPORT_SPL
> > +   help
> > + Support for the MediaTek SoCs family.
> 
> Please add more info. What type of SoCs are these? What are the
> capabilities? Link to web site? datasheets? wiki? Or maybe point to a
> doc/README.mediatek?
> 
> > +
> >  config ARCH_MX8M
> > bool "NXP i.MX8M platform"
> > select ARM64
> > @@ -1423,6 +1435,8 @@ source "arch/arm/mach-rmobile/Kconfig"
> >
> >  source "arch/arm/mach-meson/Kconfig"
> >
> > +source "arch/arm/mach-mediatek/Kconfig"
> > +
> >  source "arch/arm/mach-qemu/Kconfig"
> >
> >  source "arch/arm/mach-rockchip/Kconfig"
> > diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> > index 8f50560..ddb9618 100644
> > --- a/arch/arm/Makefile
> > +++ b/arch/arm/Makefile
> > @@ -62,6 +62,7 @@ machine-$(CONFIG_ARCH_K3) += k3
> >  machine-$(CONFIG_ARCH_KEYSTONE)+= keystone
> >  # TODO: rename CONFIG_KIRKWOOD -> CONFIG_ARCH_KIRKWOOD
> >  machine-$(CONFIG_KIRKWOOD) += kirkwood
> > +machine-$(CONFIG_ARCH_MEDIATEK)+= mediatek
> >  machine-$(CONFIG_ARCH_MESON)   += meson
> >  machine-$(CONFIG_ARCH_MVEBU)   += mvebu
> >  # TODO: rename CONFIG_TEGRA -> CONFIG_ARCH_TEGRA
> > diff --git a/arch/arm/include/asm/arch-mediatek/misc.h 
> > b/arch/arm/include/asm/arch-mediatek/misc.h
> > new file mode 100644
> > index 000..2530e78
> > --- /dev/null
> > +++ b/arch/arm/include/asm/arch-mediatek/misc.h
> > @@ -0,0 +1,17 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> > +/*
> > + * Copyright (C) 2018 MediaTek Inc.
> > + */
> > +
> > +#ifndef __MEDIATEK_MISC_H_
> > +#define __MEDIATEK_MISC_H_
> > +
> > +#define VER_BASE   0x0800
> > +#define VER_SIZE   0x10
> > +
> > +#define APHW_CODE  0x00
> > +#define APHW_SUBCODE   0x04
> > +#define APHW_VER   0x08
> > +#define APSW_VER   0x0c
> > +
> > +#endif /* __MEDIATEK_MISC_H_ */
> > diff --git 

Re: [U-Boot] [PATCH v2 04/18] arm: MediaTek: add basic support for MT7629 boards

2018-10-24 Thread Simon Glass
Hi Ryder,

On 12 October 2018 at 01:00, Ryder Lee  wrote:
> This adds a general board file based on MT7629 SoCs from MediaTek.
>
> Apart from the generic parts (cpu) we add some low level init codes
> and initialize the early clocks.
>
> Signed-off-by: Ryder Lee 
> Signed-off-by: Weijie Gao 
> ---
>  arch/arm/Kconfig  |  14 +++
>  arch/arm/Makefile |   1 +
>  arch/arm/include/asm/arch-mediatek/misc.h |  17 
>  arch/arm/mach-mediatek/Kconfig|  24 +
>  arch/arm/mach-mediatek/Makefile   |   6 ++
>  arch/arm/mach-mediatek/cpu.c  |  34 +++
>  arch/arm/mach-mediatek/init.h |  11 +++
>  arch/arm/mach-mediatek/mt7629/Makefile|   4 +
>  arch/arm/mach-mediatek/mt7629/init.c  | 131 
> ++
>  arch/arm/mach-mediatek/mt7629/lowlevel_init.S |  50 ++
>  arch/arm/mach-mediatek/spl.c  |  43 +
>  board/mediatek/mt7629/Kconfig |  17 
>  board/mediatek/mt7629/MAINTAINERS |   7 ++
>  board/mediatek/mt7629/Makefile|   3 +
>  board/mediatek/mt7629/mt7629_rfb.c|  16 
>  configs/mt7629_rfb_defconfig  |  73 ++
>  include/configs/mt7629.h  |  62 
>  17 files changed, 513 insertions(+)
>  create mode 100644 arch/arm/include/asm/arch-mediatek/misc.h
>  create mode 100644 arch/arm/mach-mediatek/Kconfig
>  create mode 100644 arch/arm/mach-mediatek/Makefile
>  create mode 100644 arch/arm/mach-mediatek/cpu.c
>  create mode 100644 arch/arm/mach-mediatek/init.h
>  create mode 100644 arch/arm/mach-mediatek/mt7629/Makefile
>  create mode 100644 arch/arm/mach-mediatek/mt7629/init.c
>  create mode 100644 arch/arm/mach-mediatek/mt7629/lowlevel_init.S
>  create mode 100644 arch/arm/mach-mediatek/spl.c
>  create mode 100644 board/mediatek/mt7629/Kconfig
>  create mode 100644 board/mediatek/mt7629/MAINTAINERS
>  create mode 100644 board/mediatek/mt7629/Makefile
>  create mode 100644 board/mediatek/mt7629/mt7629_rfb.c
>  create mode 100644 configs/mt7629_rfb_defconfig
>  create mode 100644 include/configs/mt7629.h

Looks good. A few nits below

>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index ccf2a84..eac03f0 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -668,6 +668,18 @@ config ARCH_MESON
>   targeted at media players and tablet computers. We currently
>   support the S905 (GXBaby) 64-bit SoC.
>
> +config ARCH_MEDIATEK
> +   bool "MediaTek SoCs"
> +   select DM
> +   select OF_CONTROL
> +   select SPL_DM if SPL
> +   select SPL_LIBCOMMON_SUPPORT if SPL
> +   select SPL_LIBGENERIC_SUPPORT if SPL
> +   select SPL_OF_CONTROL if SPL
> +   select SUPPORT_SPL
> +   help
> + Support for the MediaTek SoCs family.

Please add more info. What type of SoCs are these? What are the
capabilities? Link to web site? datasheets? wiki? Or maybe point to a
doc/README.mediatek?

> +
>  config ARCH_MX8M
> bool "NXP i.MX8M platform"
> select ARM64
> @@ -1423,6 +1435,8 @@ source "arch/arm/mach-rmobile/Kconfig"
>
>  source "arch/arm/mach-meson/Kconfig"
>
> +source "arch/arm/mach-mediatek/Kconfig"
> +
>  source "arch/arm/mach-qemu/Kconfig"
>
>  source "arch/arm/mach-rockchip/Kconfig"
> diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> index 8f50560..ddb9618 100644
> --- a/arch/arm/Makefile
> +++ b/arch/arm/Makefile
> @@ -62,6 +62,7 @@ machine-$(CONFIG_ARCH_K3) += k3
>  machine-$(CONFIG_ARCH_KEYSTONE)+= keystone
>  # TODO: rename CONFIG_KIRKWOOD -> CONFIG_ARCH_KIRKWOOD
>  machine-$(CONFIG_KIRKWOOD) += kirkwood
> +machine-$(CONFIG_ARCH_MEDIATEK)+= mediatek
>  machine-$(CONFIG_ARCH_MESON)   += meson
>  machine-$(CONFIG_ARCH_MVEBU)   += mvebu
>  # TODO: rename CONFIG_TEGRA -> CONFIG_ARCH_TEGRA
> diff --git a/arch/arm/include/asm/arch-mediatek/misc.h 
> b/arch/arm/include/asm/arch-mediatek/misc.h
> new file mode 100644
> index 000..2530e78
> --- /dev/null
> +++ b/arch/arm/include/asm/arch-mediatek/misc.h
> @@ -0,0 +1,17 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * Copyright (C) 2018 MediaTek Inc.
> + */
> +
> +#ifndef __MEDIATEK_MISC_H_
> +#define __MEDIATEK_MISC_H_
> +
> +#define VER_BASE   0x0800
> +#define VER_SIZE   0x10
> +
> +#define APHW_CODE  0x00
> +#define APHW_SUBCODE   0x04
> +#define APHW_VER   0x08
> +#define APSW_VER   0x0c
> +
> +#endif /* __MEDIATEK_MISC_H_ */
> diff --git a/arch/arm/mach-mediatek/Kconfig b/arch/arm/mach-mediatek/Kconfig
> new file mode 100644
> index 000..a932e70
> --- /dev/null
> +++ b/arch/arm/mach-mediatek/Kconfig
> @@ -0,0 +1,24 @@
> +if ARCH_MEDIATEK
> +
> +config SYS_SOC
> +   default "mediatek"
> +
> +config SYS_VENDOR
> +   default 

[U-Boot] [PATCH v2 04/18] arm: MediaTek: add basic support for MT7629 boards

2018-10-12 Thread Ryder Lee
This adds a general board file based on MT7629 SoCs from MediaTek.

Apart from the generic parts (cpu) we add some low level init codes
and initialize the early clocks.

Signed-off-by: Ryder Lee 
Signed-off-by: Weijie Gao 
---
 arch/arm/Kconfig  |  14 +++
 arch/arm/Makefile |   1 +
 arch/arm/include/asm/arch-mediatek/misc.h |  17 
 arch/arm/mach-mediatek/Kconfig|  24 +
 arch/arm/mach-mediatek/Makefile   |   6 ++
 arch/arm/mach-mediatek/cpu.c  |  34 +++
 arch/arm/mach-mediatek/init.h |  11 +++
 arch/arm/mach-mediatek/mt7629/Makefile|   4 +
 arch/arm/mach-mediatek/mt7629/init.c  | 131 ++
 arch/arm/mach-mediatek/mt7629/lowlevel_init.S |  50 ++
 arch/arm/mach-mediatek/spl.c  |  43 +
 board/mediatek/mt7629/Kconfig |  17 
 board/mediatek/mt7629/MAINTAINERS |   7 ++
 board/mediatek/mt7629/Makefile|   3 +
 board/mediatek/mt7629/mt7629_rfb.c|  16 
 configs/mt7629_rfb_defconfig  |  73 ++
 include/configs/mt7629.h  |  62 
 17 files changed, 513 insertions(+)
 create mode 100644 arch/arm/include/asm/arch-mediatek/misc.h
 create mode 100644 arch/arm/mach-mediatek/Kconfig
 create mode 100644 arch/arm/mach-mediatek/Makefile
 create mode 100644 arch/arm/mach-mediatek/cpu.c
 create mode 100644 arch/arm/mach-mediatek/init.h
 create mode 100644 arch/arm/mach-mediatek/mt7629/Makefile
 create mode 100644 arch/arm/mach-mediatek/mt7629/init.c
 create mode 100644 arch/arm/mach-mediatek/mt7629/lowlevel_init.S
 create mode 100644 arch/arm/mach-mediatek/spl.c
 create mode 100644 board/mediatek/mt7629/Kconfig
 create mode 100644 board/mediatek/mt7629/MAINTAINERS
 create mode 100644 board/mediatek/mt7629/Makefile
 create mode 100644 board/mediatek/mt7629/mt7629_rfb.c
 create mode 100644 configs/mt7629_rfb_defconfig
 create mode 100644 include/configs/mt7629.h

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index ccf2a84..eac03f0 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -668,6 +668,18 @@ config ARCH_MESON
  targeted at media players and tablet computers. We currently
  support the S905 (GXBaby) 64-bit SoC.
 
+config ARCH_MEDIATEK
+   bool "MediaTek SoCs"
+   select DM
+   select OF_CONTROL
+   select SPL_DM if SPL
+   select SPL_LIBCOMMON_SUPPORT if SPL
+   select SPL_LIBGENERIC_SUPPORT if SPL
+   select SPL_OF_CONTROL if SPL
+   select SUPPORT_SPL
+   help
+ Support for the MediaTek SoCs family.
+
 config ARCH_MX8M
bool "NXP i.MX8M platform"
select ARM64
@@ -1423,6 +1435,8 @@ source "arch/arm/mach-rmobile/Kconfig"
 
 source "arch/arm/mach-meson/Kconfig"
 
+source "arch/arm/mach-mediatek/Kconfig"
+
 source "arch/arm/mach-qemu/Kconfig"
 
 source "arch/arm/mach-rockchip/Kconfig"
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 8f50560..ddb9618 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -62,6 +62,7 @@ machine-$(CONFIG_ARCH_K3) += k3
 machine-$(CONFIG_ARCH_KEYSTONE)+= keystone
 # TODO: rename CONFIG_KIRKWOOD -> CONFIG_ARCH_KIRKWOOD
 machine-$(CONFIG_KIRKWOOD) += kirkwood
+machine-$(CONFIG_ARCH_MEDIATEK)+= mediatek
 machine-$(CONFIG_ARCH_MESON)   += meson
 machine-$(CONFIG_ARCH_MVEBU)   += mvebu
 # TODO: rename CONFIG_TEGRA -> CONFIG_ARCH_TEGRA
diff --git a/arch/arm/include/asm/arch-mediatek/misc.h 
b/arch/arm/include/asm/arch-mediatek/misc.h
new file mode 100644
index 000..2530e78
--- /dev/null
+++ b/arch/arm/include/asm/arch-mediatek/misc.h
@@ -0,0 +1,17 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2018 MediaTek Inc.
+ */
+
+#ifndef __MEDIATEK_MISC_H_
+#define __MEDIATEK_MISC_H_
+
+#define VER_BASE   0x0800
+#define VER_SIZE   0x10
+
+#define APHW_CODE  0x00
+#define APHW_SUBCODE   0x04
+#define APHW_VER   0x08
+#define APSW_VER   0x0c
+
+#endif /* __MEDIATEK_MISC_H_ */
diff --git a/arch/arm/mach-mediatek/Kconfig b/arch/arm/mach-mediatek/Kconfig
new file mode 100644
index 000..a932e70
--- /dev/null
+++ b/arch/arm/mach-mediatek/Kconfig
@@ -0,0 +1,24 @@
+if ARCH_MEDIATEK
+
+config SYS_SOC
+   default "mediatek"
+
+config SYS_VENDOR
+   default "mediatek"
+
+choice
+   prompt "MediaTek board select"
+
+config TARGET_MT7629
+   bool "MediaTek MT7629 SoC"
+   select CPU_V7A
+   select SPL
+   select ARCH_MISC_INIT
+   help
+   Support MediaTek MT7629 SoC.
+
+endchoice
+
+source "board/mediatek/mt7629/Kconfig"
+
+endif
diff --git a/arch/arm/mach-mediatek/Makefile b/arch/arm/mach-mediatek/Makefile
new file mode 100644
index 000..852d330
--- /dev/null
+++ b/arch/arm/mach-mediatek/Makefile
@@