All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andre Przywara <andre.przywara@arm.com>
To: u-boot@lists.denx.de
Subject: [PATCH v2 02/21] sunxi: Introduce common symbol for H6 like SoCs
Date: Fri, 22 Jan 2021 01:13:05 +0000	[thread overview]
Message-ID: <20210122011244.260436cd@slackpad.fritz.box> (raw)
In-Reply-To: <20210111201153.1800440-3-jernej.skrabec@siol.net>

On Mon, 11 Jan 2021 21:11:34 +0100
Jernej Skrabec <jernej.skrabec@siol.net> wrote:

> It turns out that there are at least 2 other SoCs which have basically
> the same memory map, similar clocks and other features as H6. It's very
> likely that we'll see more such SoCs in the future. In order to ease
> porting to new SoCs and lower ifdef clutter, introduce common symbol for
> them.
> 
> Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>

Confirmed to be the correct transformations.

Reviewed-by: Andre Przywara <andre.przywara@arm.com>

Thanks!
Andre


> ---
>  arch/arm/include/asm/arch-sunxi/boot0.h |  2 +-
>  arch/arm/include/asm/arch-sunxi/clock.h |  2 +-
>  arch/arm/include/asm/arch-sunxi/cpu.h   |  2 +-
>  arch/arm/include/asm/arch-sunxi/timer.h |  2 +-
>  arch/arm/mach-sunxi/Kconfig             | 19 +++++++++++++------
>  arch/arm/mach-sunxi/Makefile            |  2 +-
>  arch/arm/mach-sunxi/board.c             |  4 ++--
>  arch/arm/mach-sunxi/rmr_switch.S        |  2 +-
>  common/spl/Kconfig                      |  4 ++--
>  include/configs/sun50i.h                |  2 +-
>  10 files changed, 24 insertions(+), 17 deletions(-)
> 
> diff --git a/arch/arm/include/asm/arch-sunxi/boot0.h b/arch/arm/include/asm/arch-sunxi/boot0.h
> index 46d0f0666c2b..e8e8e38f0556 100644
> --- a/arch/arm/include/asm/arch-sunxi/boot0.h
> +++ b/arch/arm/include/asm/arch-sunxi/boot0.h
> @@ -39,7 +39,7 @@
>  	.word	0xf57ff06f	// isb     sy
>  	.word	0xe320f003	// wfi
>  	.word	0xeafffffd	// b       @wfi
> -#ifndef CONFIG_MACH_SUN50I_H6
> +#ifndef CONFIG_SUN50I_GEN_H6
>  	.word	0x017000a0	// writeable RVBAR mapping address
>  #else
>  	.word	0x09010040	// writeable RVBAR mapping address
> diff --git a/arch/arm/include/asm/arch-sunxi/clock.h b/arch/arm/include/asm/arch-sunxi/clock.h
> index 5994130e6b54..cbbe5c7a1e68 100644
> --- a/arch/arm/include/asm/arch-sunxi/clock.h
> +++ b/arch/arm/include/asm/arch-sunxi/clock.h
> @@ -16,7 +16,7 @@
>  /* clock control module regs definition */
>  #if defined(CONFIG_MACH_SUN8I_A83T)
>  #include <asm/arch/clock_sun8i_a83t.h>
> -#elif defined(CONFIG_MACH_SUN50I_H6)
> +#elif defined(CONFIG_SUN50I_GEN_H6)
>  #include <asm/arch/clock_sun50i_h6.h>
>  #elif defined(CONFIG_MACH_SUN6I) || defined(CONFIG_MACH_SUN8I) || \
>        defined(CONFIG_MACH_SUN50I)
> diff --git a/arch/arm/include/asm/arch-sunxi/cpu.h b/arch/arm/include/asm/arch-sunxi/cpu.h
> index 8b57d24e2f0c..b08f2023748c 100644
> --- a/arch/arm/include/asm/arch-sunxi/cpu.h
> +++ b/arch/arm/include/asm/arch-sunxi/cpu.h
> @@ -8,7 +8,7 @@
>  
>  #if defined(CONFIG_MACH_SUN9I)
>  #include <asm/arch/cpu_sun9i.h>
> -#elif defined(CONFIG_MACH_SUN50I_H6)
> +#elif defined(CONFIG_SUN50I_GEN_H6)
>  #include <asm/arch/cpu_sun50i_h6.h>
>  #else
>  #include <asm/arch/cpu_sun4i.h>
> diff --git a/arch/arm/include/asm/arch-sunxi/timer.h b/arch/arm/include/asm/arch-sunxi/timer.h
> index 6f138d04b806..bb5626d893bb 100644
> --- a/arch/arm/include/asm/arch-sunxi/timer.h
> +++ b/arch/arm/include/asm/arch-sunxi/timer.h
> @@ -76,7 +76,7 @@ struct sunxi_timer_reg {
>  	struct sunxi_tgp tgp[4];
>  	u8 res5[8];
>  	u32 cpu_cfg;
> -#elif defined(CONFIG_SUNXI_GEN_SUN6I) || defined(CONFIG_MACH_SUN50I_H6)
> +#elif defined(CONFIG_SUNXI_GEN_SUN6I) || defined(CONFIG_SUN50I_GEN_H6)
>  	u8 res3[16];
>  	struct sunxi_wdog wdog[5];	/* We have 5 watchdogs */
>  #endif
> diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
> index 49ef217f08c0..bd82c0ef3ee4 100644
> --- a/arch/arm/mach-sunxi/Kconfig
> +++ b/arch/arm/mach-sunxi/Kconfig
> @@ -82,7 +82,7 @@ config SUN8I_RSB
>  config SUNXI_SRAM_ADDRESS
>  	hex
>  	default 0x10000 if MACH_SUN9I || MACH_SUN50I || MACH_SUN50I_H5
> -	default 0x20000 if MACH_SUN50I_H6
> +	default 0x20000 if SUN50I_GEN_H6
>  	default 0x0
>  	---help---
>  	Older Allwinner SoCs have their mask boot ROM mapped just below 4GB,
> @@ -108,6 +108,15 @@ config SUNXI_GEN_SUN6I
>  	separate ahb reset control registers, custom pmic bus, new style
>  	watchdog, etc.
>  
> +config SUN50I_GEN_H6
> +	bool
> +	select FIT
> +	select SPL_LOAD_FIT
> +	select SUPPORT_SPL
> +	---help---
> +	Select this for sunxi SoCs which have H6 like peripherals, clocks
> +	and memory map.
> +
>  config SUNXI_DRAM_DW
>  	bool
>  	---help---
> @@ -302,11 +311,9 @@ config MACH_SUN50I_H5
>  config MACH_SUN50I_H6
>  	bool "sun50i (Allwinner H6)"
>  	select ARM64
> -	select SUPPORT_SPL
> -	select FIT
>  	select PHY_SUN4I_USB
> -	select SPL_LOAD_FIT
>  	select DRAM_SUN50I_H6
> +	select SUN50I_GEN_H6
>  
>  endchoice
>  
> @@ -756,7 +763,7 @@ config VIDEO_SUNXI
>  	depends on !MACH_SUN8I_V3S
>  	depends on !MACH_SUN9I
>  	depends on !MACH_SUN50I
> -	depends on !MACH_SUN50I_H6
> +	depends on !SUN50I_GEN_H6
>  	select VIDEO
>  	imply VIDEO_DT_SIMPLEFB
>  	default y
> @@ -989,7 +996,7 @@ config SPL_STACK_R_ADDR
>  	default 0x4fe00000 if MACH_SUN8I
>  	default 0x2fe00000 if MACH_SUN9I
>  	default 0x4fe00000 if MACH_SUN50I
> -	default 0x4fe00000 if MACH_SUN50I_H6
> +	default 0x4fe00000 if SUN50I_GEN_H6
>  
>  config SPL_SPI_SUNXI
>  	bool "Support for SPI Flash on Allwinner SoCs in SPL"
> diff --git a/arch/arm/mach-sunxi/Makefile b/arch/arm/mach-sunxi/Makefile
> index d129f334798b..b8aca43d6630 100644
> --- a/arch/arm/mach-sunxi/Makefile
> +++ b/arch/arm/mach-sunxi/Makefile
> @@ -26,7 +26,7 @@ else
>  obj-$(CONFIG_MACH_SUN8I)	+= clock_sun6i.o
>  endif
>  obj-$(CONFIG_MACH_SUN9I)	+= clock_sun9i.o gtbus_sun9i.o
> -obj-$(CONFIG_MACH_SUN50I_H6)	+= clock_sun50i_h6.o
> +obj-$(CONFIG_SUN50I_GEN_H6)	+= clock_sun50i_h6.o
>  
>  ifdef CONFIG_SPL_BUILD
>  obj-$(CONFIG_DRAM_SUN4I)	+= dram_sun4i.o
> diff --git a/arch/arm/mach-sunxi/board.c b/arch/arm/mach-sunxi/board.c
> index f40fccd8f8b9..7a8b303f233c 100644
> --- a/arch/arm/mach-sunxi/board.c
> +++ b/arch/arm/mach-sunxi/board.c
> @@ -144,7 +144,7 @@ static int gpio_init(void)
>  #error Unsupported console port number. Please fix pin mux settings in board.c
>  #endif
>  
> -#ifdef CONFIG_MACH_SUN50I_H6
> +#ifdef CONFIG_SUN50I_GEN_H6
>  	/* Update PIO power bias configuration by copy hardware detected value */
>  	val = readl(SUNXI_PIO_BASE + SUN50I_H6_GPIO_POW_MOD_VAL);
>  	writel(val, SUNXI_PIO_BASE + SUN50I_H6_GPIO_POW_MOD_SEL);
> @@ -329,7 +329,7 @@ void reset_cpu(ulong addr)
>  		/* sun5i sometimes gets stuck without this */
>  		writel(WDT_MODE_RESET_EN | WDT_MODE_EN, &wdog->mode);
>  	}
> -#elif defined(CONFIG_SUNXI_GEN_SUN6I) || defined(CONFIG_MACH_SUN50I_H6)
> +#elif defined(CONFIG_SUNXI_GEN_SUN6I) || defined(CONFIG_SUN50I_GEN_H6)
>  #if defined(CONFIG_MACH_SUN50I_H6)
>  	/* WDOG is broken for some H6 rev. use the R_WDOG instead */
>  	static const struct sunxi_wdog *wdog =
> diff --git a/arch/arm/mach-sunxi/rmr_switch.S b/arch/arm/mach-sunxi/rmr_switch.S
> index fafd306f95b1..33e55d496865 100644
> --- a/arch/arm/mach-sunxi/rmr_switch.S
> +++ b/arch/arm/mach-sunxi/rmr_switch.S
> @@ -30,7 +30,7 @@
>  
>  .text
>  
> -#ifndef CONFIG_MACH_SUN50I_H6
> +#ifndef CONFIG_SUN50I_GEN_H6
>  	ldr	r1, =0x017000a0		@ MMIO mapped RVBAR[0] register
>  #else
>  	ldr	r1, =0x09010040		@ MMIO mapped RVBAR[0] register
> diff --git a/common/spl/Kconfig b/common/spl/Kconfig
> index d8086bd9e874..bed715774d81 100644
> --- a/common/spl/Kconfig
> +++ b/common/spl/Kconfig
> @@ -150,7 +150,7 @@ config SPL_TEXT_BASE
>  	hex "SPL Text Base"
>  	default ISW_ENTRY_ADDR if AM43XX || AM33XX || OMAP54XX || ARCH_KEYSTONE
>  	default 0x10060 if MACH_SUN50I || MACH_SUN50I_H5 || MACH_SUN9I
> -	default 0x20060 if MACH_SUN50I_H6
> +	default 0x20060 if SUN50I_GEN_H6
>  	default 0x00060 if ARCH_SUNXI
>  	default 0xfffc0000 if ARCH_ZYNQMP
>  	default 0x0
> @@ -459,7 +459,7 @@ config SPL_SHA512_SUPPORT
>  config SPL_FIT_IMAGE_TINY
>  	bool "Remove functionality from SPL FIT loading to reduce size"
>  	depends on SPL_FIT
> -	default y if MACH_SUN50I || MACH_SUN50I_H5 || MACH_SUN50I_H6
> +	default y if MACH_SUN50I || MACH_SUN50I_H5 || SUN50I_GEN_H6
>  	default y if ARCH_IMX8M
>  	help
>  	  Enable this to reduce the size of the FIT image loading code
> diff --git a/include/configs/sun50i.h b/include/configs/sun50i.h
> index e050a5299f3b..bc2e3a3d0088 100644
> --- a/include/configs/sun50i.h
> +++ b/include/configs/sun50i.h
> @@ -10,7 +10,7 @@
>   * A64 specific configuration
>   */
>  
> -#ifndef CONFIG_MACH_SUN50I_H6
> +#ifndef CONFIG_SUN50I_GEN_H6
>  #define GICD_BASE		0x1c81000
>  #define GICC_BASE		0x1c82000
>  #else

  parent reply	other threads:[~2021-01-22  1:13 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-11 20:11 [PATCH v2 00/21] sunxi: Introduce H616 support Jernej Skrabec
2021-01-11 20:11 ` [PATCH v2 01/21] sunxi: Add support for AXP305 PMIC Jernej Skrabec
2021-01-11 20:11 ` [PATCH v2 02/21] sunxi: Introduce common symbol for H6 like SoCs Jernej Skrabec
2021-01-12  2:04   ` [linux-sunxi] " Samuel Holland
2021-01-22  1:13   ` Andre Przywara [this message]
2021-01-11 20:11 ` [PATCH v2 03/21] mmc: sunxi: Replace H6 ifdefs with H6 gen macro Jernej Skrabec
2021-01-11 22:18   ` Jaehoon Chung
2021-01-11 20:11 ` [PATCH v2 04/21] i2c: mvtwsi: sunxi: update macro Jernej Skrabec
2021-01-11 20:11 ` [PATCH v2 05/21] sunxi: prcm: Add memory map for H6 like SoCs Jernej Skrabec
2021-01-12  2:05   ` [linux-sunxi] " Samuel Holland
2021-01-22  1:14   ` Andre Przywara
2021-01-22  1:43     ` [linux-sunxi] " Samuel Holland
2021-01-11 20:11 ` [PATCH v2 06/21] sunxi: Add support for I2C on " Jernej Skrabec
2021-01-22  1:16   ` Andre Przywara
2021-01-11 20:11 ` [PATCH v2 07/21] sunxi: support loading with SPL > 32KB Jernej Skrabec
2021-01-12  3:36   ` [linux-sunxi] " Samuel Holland
2021-01-11 20:11 ` [PATCH v2 08/21] sunxi: introduce support for H616 clocks Jernej Skrabec
2021-01-22  1:17   ` Andre Przywara
2021-01-22  6:21     ` Jernej Škrabec
2021-01-11 20:11 ` [PATCH v2 09/21] sunxi: add support for H616 uart0 Jernej Skrabec
2021-01-22  1:17   ` Andre Przywara
2021-01-11 20:11 ` [PATCH v2 10/21] sunxi: add support for R_I2C on H616 Jernej Skrabec
2021-01-22  1:18   ` Andre Przywara
2021-01-11 20:11 ` [PATCH v2 11/21] sunxi: Add H616 DRAM support Jernej Skrabec
2021-01-22 18:06   ` Andre Przywara
2021-01-11 20:11 ` [PATCH v2 12/21] mmc: sunxi: Refactor mod clock register offset Jernej Skrabec
2021-01-11 20:11 ` [PATCH v2 13/21] net: sun8i-emac: Always clear syscon EPHY register Jernej Skrabec
2021-01-11 20:11 ` [PATCH v2 14/21] sunxi: Add support for H616 SoC Jernej Skrabec
2021-01-23  1:57   ` Andre Przywara
2021-01-11 20:11 ` [PATCH v2 15/21] mmc: sunxi: Add H616 clock offset Jernej Skrabec
2021-01-11 22:18   ` Jaehoon Chung
2021-01-23  1:58   ` Andre Przywara
2021-01-11 20:11 ` [PATCH v2 16/21] sunxi: Add H616 FEL support Jernej Skrabec
2021-01-20  5:46   ` Samuel Holland
2021-01-23  2:00   ` Andre Przywara
2021-01-11 20:11 ` [PATCH v2 17/21] net: sun8i-emac: Determine pinmux based on SoC, not EMAC type Jernej Skrabec
2021-01-11 20:11 ` [PATCH v2 18/21] arm: sunxi: add initial H616 DTSI and headers Jernej Skrabec
2021-01-24  2:17   ` Andre Przywara
2021-01-11 20:11 ` [PATCH v2 19/21] sunxi: gpio: introduce compatible for H616 Jernej Skrabec
2021-01-11 20:11 ` [PATCH v2 20/21] clk: sunxi: Add support for H616 clocks Jernej Skrabec
2021-01-24  2:17   ` Andre Przywara
2021-01-11 20:11 ` [PATCH v2 21/21] sunxi: Add support for OrangePi Zero2 Jernej Skrabec
2021-01-24  2:18   ` Andre Przywara
2021-01-11 20:17 ` [PATCH v2 00/21] sunxi: Introduce H616 support Jernej Škrabec
2021-01-24  2:19 ` Andre Przywara

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210122011244.260436cd@slackpad.fritz.box \
    --to=andre.przywara@arm.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.