Message ID | 1568283065-11023-4-git-send-email-ley.foon.tan@intel.com |
---|---|
State | Superseded |
Delegated to: | Simon Goldschmidt |
Headers | show |
Series | Add Intel Agilex SoC support | expand |
On Thu, Sep 12, 2019 at 12:11 PM Ley Foon Tan <ley.foon.tan@intel.com> wrote: > > Move Stratix10 and Agilex reset manager common code to reset_manager_soc64.h. > > Remove unused RSTMGR_XXX defines. > > Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com> Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com> > > --- > v4: > - Change prefix from RSTMGR_S10* to RSTMGR_SOC64*. > > v3: > - Add new reset_manager_soc64.h > - Convert to use defines instead of struct. > --- > .../include/mach/reset_manager_s10.h | 87 +------------------ > .../include/mach/reset_manager_soc64.h | 38 ++++++++ > arch/arm/mach-socfpga/reset_manager_s10.c | 20 ++--- > 3 files changed, 50 insertions(+), 95 deletions(-) > create mode 100644 arch/arm/mach-socfpga/include/mach/reset_manager_soc64.h > > diff --git a/arch/arm/mach-socfpga/include/mach/reset_manager_s10.h b/arch/arm/mach-socfpga/include/mach/reset_manager_s10.h > index b602129656..fdc9c8c9a4 100644 > --- a/arch/arm/mach-socfpga/include/mach/reset_manager_s10.h > +++ b/arch/arm/mach-socfpga/include/mach/reset_manager_s10.h > @@ -1,95 +1,12 @@ > /* SPDX-License-Identifier: GPL-2.0 > * > - * Copyright (C) 2016-2018 Intel Corporation <www.intel.com> > + * Copyright (C) 2016-2019 Intel Corporation <www.intel.com> > * > */ > > #ifndef _RESET_MANAGER_S10_ > #define _RESET_MANAGER_S10_ > > -void reset_cpu(ulong addr); > -int cpu_has_been_warmreset(void); > - > -void socfpga_bridges_reset(int enable); > - > -void socfpga_per_reset(u32 reset, int set); > -void socfpga_per_reset_all(void); > - > -#define RSTMGR_S10_STATUS 0 > -#define RSTMGR_S10_MPUMODRST 0x20 > -#define RSTMGR_S10_PER0MODRST 0x24 > -#define RSTMGR_S10_PER1MODRST 0x28 > -#define RSTMGR_S10_BRGMODRST 0x2c > - > -#define RSTMGR_MPUMODRST_CORE0 0 > -#define RSTMGR_PER0MODRST_OCP_MASK 0x0020bf00 > -#define RSTMGR_BRGMODRST_DDRSCH_MASK 0X00000040 > -#define RSTMGR_BRGMODRST_FPGA2SOC_MASK 0x00000004 > - > -/* Watchdogs and MPU warm reset mask */ > -#define RSTMGR_L4WD_MPU_WARMRESET_MASK 0x000F0F00 > - > -/* > - * Define a reset identifier, from which a permodrst bank ID > - * and reset ID can be extracted using the subsequent macros > - * RSTMGR_RESET() and RSTMGR_BANK(). > - */ > -#define RSTMGR_BANK_OFFSET 8 > -#define RSTMGR_BANK_MASK 0x7 > -#define RSTMGR_RESET_OFFSET 0 > -#define RSTMGR_RESET_MASK 0x1f > -#define RSTMGR_DEFINE(_bank, _offset) \ > - ((_bank) << RSTMGR_BANK_OFFSET) | ((_offset) << RSTMGR_RESET_OFFSET) > - > -/* Extract reset ID from the reset identifier. */ > -#define RSTMGR_RESET(_reset) \ > - (((_reset) >> RSTMGR_RESET_OFFSET) & RSTMGR_RESET_MASK) > - > -/* Extract bank ID from the reset identifier. */ > -#define RSTMGR_BANK(_reset) \ > - (((_reset) >> RSTMGR_BANK_OFFSET) & RSTMGR_BANK_MASK) > - > -/* > - * SocFPGA Stratix10 reset IDs, bank mapping is as follows: > - * 0 ... mpumodrst > - * 1 ... per0modrst > - * 2 ... per1modrst > - * 3 ... brgmodrst > - */ > -#define RSTMGR_EMAC0 RSTMGR_DEFINE(1, 0) > -#define RSTMGR_EMAC1 RSTMGR_DEFINE(1, 1) > -#define RSTMGR_EMAC2 RSTMGR_DEFINE(1, 2) > -#define RSTMGR_USB0 RSTMGR_DEFINE(1, 3) > -#define RSTMGR_USB1 RSTMGR_DEFINE(1, 4) > -#define RSTMGR_NAND RSTMGR_DEFINE(1, 5) > -#define RSTMGR_SDMMC RSTMGR_DEFINE(1, 7) > -#define RSTMGR_EMAC0_OCP RSTMGR_DEFINE(1, 8) > -#define RSTMGR_EMAC1_OCP RSTMGR_DEFINE(1, 9) > -#define RSTMGR_EMAC2_OCP RSTMGR_DEFINE(1, 10) > -#define RSTMGR_USB0_OCP RSTMGR_DEFINE(1, 11) > -#define RSTMGR_USB1_OCP RSTMGR_DEFINE(1, 12) > -#define RSTMGR_NAND_OCP RSTMGR_DEFINE(1, 13) > -#define RSTMGR_SDMMC_OCP RSTMGR_DEFINE(1, 15) > -#define RSTMGR_DMA RSTMGR_DEFINE(1, 16) > -#define RSTMGR_SPIM0 RSTMGR_DEFINE(1, 17) > -#define RSTMGR_SPIM1 RSTMGR_DEFINE(1, 18) > -#define RSTMGR_L4WD0 RSTMGR_DEFINE(2, 0) > -#define RSTMGR_L4WD1 RSTMGR_DEFINE(2, 1) > -#define RSTMGR_L4WD2 RSTMGR_DEFINE(2, 2) > -#define RSTMGR_L4WD3 RSTMGR_DEFINE(2, 3) > -#define RSTMGR_OSC1TIMER0 RSTMGR_DEFINE(2, 4) > -#define RSTMGR_I2C0 RSTMGR_DEFINE(2, 8) > -#define RSTMGR_I2C1 RSTMGR_DEFINE(2, 9) > -#define RSTMGR_I2C2 RSTMGR_DEFINE(2, 10) > -#define RSTMGR_I2C3 RSTMGR_DEFINE(2, 11) > -#define RSTMGR_I2C4 RSTMGR_DEFINE(2, 12) > -#define RSTMGR_UART0 RSTMGR_DEFINE(2, 16) > -#define RSTMGR_UART1 RSTMGR_DEFINE(2, 17) > -#define RSTMGR_GPIO0 RSTMGR_DEFINE(2, 24) > -#define RSTMGR_GPIO1 RSTMGR_DEFINE(2, 25) > -#define RSTMGR_SDR RSTMGR_DEFINE(3, 6) > - > -/* Create a human-readable reference to SoCFPGA reset. */ > -#define SOCFPGA_RESET(_name) RSTMGR_##_name > +#include <asm/arch/reset_manager_soc64.h> > > #endif /* _RESET_MANAGER_S10_ */ > diff --git a/arch/arm/mach-socfpga/include/mach/reset_manager_soc64.h b/arch/arm/mach-socfpga/include/mach/reset_manager_soc64.h > new file mode 100644 > index 0000000000..3b739a0202 > --- /dev/null > +++ b/arch/arm/mach-socfpga/include/mach/reset_manager_soc64.h > @@ -0,0 +1,38 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +/* > + * Copyright (C) 2016-2019 Intel Corporation <www.intel.com> > + */ > + > +#ifndef _RESET_MANAGER_SOC64_H_ > +#define _RESET_MANAGER_SOC64_H_ > + > +void reset_deassert_peripherals_handoff(void); > +int cpu_has_been_warmreset(void); > +void socfpga_bridges_reset(int enable); > + > +#define RSTMGR_SOC64_STATUS 0 > +#define RSTMGR_SOC64_MPUMODRST 0x20 > +#define RSTMGR_SOC64_PER0MODRST 0x24 > +#define RSTMGR_SOC64_PER1MODRST 0x28 > +#define RSTMGR_SOC64_BRGMODRST 0x2c > + > +#define RSTMGR_MPUMODRST_CORE0 0 > +#define RSTMGR_PER0MODRST_OCP_MASK 0x0020bf00 > +#define RSTMGR_BRGMODRST_DDRSCH_MASK 0X00000040 > +#define RSTMGR_BRGMODRST_FPGA2SOC_MASK 0x00000004 > + > +/* Watchdogs and MPU warm reset mask */ > +#define RSTMGR_L4WD_MPU_WARMRESET_MASK 0x000F0F00 > + > +/* > + * SocFPGA Stratix10 reset IDs, bank mapping is as follows: > + * 0 ... mpumodrst > + * 1 ... per0modrst > + * 2 ... per1modrst > + * 3 ... brgmodrst > + */ > +#define RSTMGR_L4WD0 RSTMGR_DEFINE(2, 0) > +#define RSTMGR_OSC1TIMER0 RSTMGR_DEFINE(2, 4) > +#define RSTMGR_UART0 RSTMGR_DEFINE(2, 16) > + > +#endif /* _RESET_MANAGER_SOC64_H_ */ > diff --git a/arch/arm/mach-socfpga/reset_manager_s10.c b/arch/arm/mach-socfpga/reset_manager_s10.c > index 50a2d80930..bdc0f3ee6e 100644 > --- a/arch/arm/mach-socfpga/reset_manager_s10.c > +++ b/arch/arm/mach-socfpga/reset_manager_s10.c > @@ -18,13 +18,13 @@ void socfpga_per_reset(u32 reset, int set) > unsigned long reg; > > if (RSTMGR_BANK(reset) == 0) > - reg = RSTMGR_S10_MPUMODRST; > + reg = RSTMGR_SOC64_MPUMODRST; > else if (RSTMGR_BANK(reset) == 1) > - reg = RSTMGR_S10_PER0MODRST; > + reg = RSTMGR_SOC64_PER0MODRST; > else if (RSTMGR_BANK(reset) == 2) > - reg = RSTMGR_S10_PER1MODRST; > + reg = RSTMGR_SOC64_PER1MODRST; > else if (RSTMGR_BANK(reset) == 3) > - reg = RSTMGR_S10_BRGMODRST; > + reg = RSTMGR_SOC64_BRGMODRST; > else /* Invalid reset register, do nothing */ > return; > > @@ -47,9 +47,9 @@ void socfpga_per_reset_all(void) > > /* disable all except OCP and l4wd0. OCP disable later */ > writel(~(l4wd0 | RSTMGR_PER0MODRST_OCP_MASK), > - socfpga_rstmgr_base + RSTMGR_S10_PER0MODRST); > - writel(~l4wd0, socfpga_rstmgr_base + RSTMGR_S10_PER0MODRST); > - writel(0xffffffff, socfpga_rstmgr_base + RSTMGR_S10_PER1MODRST); > + socfpga_rstmgr_base + RSTMGR_SOC64_PER0MODRST); > + writel(~l4wd0, socfpga_rstmgr_base + RSTMGR_SOC64_PER0MODRST); > + writel(0xffffffff, socfpga_rstmgr_base + RSTMGR_SOC64_PER1MODRST); > } > > void socfpga_bridges_reset(int enable) > @@ -60,7 +60,7 @@ void socfpga_bridges_reset(int enable) > ~0); > > /* Release all bridges from reset state */ > - clrbits_le32(socfpga_rstmgr_base + RSTMGR_S10_BRGMODRST, ~0); > + clrbits_le32(socfpga_rstmgr_base + RSTMGR_SOC64_BRGMODRST, ~0); > > /* Poll until all idleack to 0 */ > while (readl(socfpga_sysmgr_base + SYSMGR_S10_NOC_IDLEACK)) > @@ -83,7 +83,7 @@ void socfpga_bridges_reset(int enable) > ; > > /* Reset all bridges (except NOR DDR scheduler & F2S) */ > - setbits_le32(socfpga_rstmgr_base + RSTMGR_S10_BRGMODRST, > + setbits_le32(socfpga_rstmgr_base + RSTMGR_SOC64_BRGMODRST, > ~(RSTMGR_BRGMODRST_DDRSCH_MASK | > RSTMGR_BRGMODRST_FPGA2SOC_MASK)); > > @@ -97,6 +97,6 @@ void socfpga_bridges_reset(int enable) > */ > int cpu_has_been_warmreset(void) > { > - return readl(socfpga_rstmgr_base + RSTMGR_S10_STATUS) & > + return readl(socfpga_rstmgr_base + RSTMGR_SOC64_STATUS) & > RSTMGR_L4WD_MPU_WARMRESET_MASK; > } > -- > 2.19.0 >
diff --git a/arch/arm/mach-socfpga/include/mach/reset_manager_s10.h b/arch/arm/mach-socfpga/include/mach/reset_manager_s10.h index b602129656..fdc9c8c9a4 100644 --- a/arch/arm/mach-socfpga/include/mach/reset_manager_s10.h +++ b/arch/arm/mach-socfpga/include/mach/reset_manager_s10.h @@ -1,95 +1,12 @@ /* SPDX-License-Identifier: GPL-2.0 * - * Copyright (C) 2016-2018 Intel Corporation <www.intel.com> + * Copyright (C) 2016-2019 Intel Corporation <www.intel.com> * */ #ifndef _RESET_MANAGER_S10_ #define _RESET_MANAGER_S10_ -void reset_cpu(ulong addr); -int cpu_has_been_warmreset(void); - -void socfpga_bridges_reset(int enable); - -void socfpga_per_reset(u32 reset, int set); -void socfpga_per_reset_all(void); - -#define RSTMGR_S10_STATUS 0 -#define RSTMGR_S10_MPUMODRST 0x20 -#define RSTMGR_S10_PER0MODRST 0x24 -#define RSTMGR_S10_PER1MODRST 0x28 -#define RSTMGR_S10_BRGMODRST 0x2c - -#define RSTMGR_MPUMODRST_CORE0 0 -#define RSTMGR_PER0MODRST_OCP_MASK 0x0020bf00 -#define RSTMGR_BRGMODRST_DDRSCH_MASK 0X00000040 -#define RSTMGR_BRGMODRST_FPGA2SOC_MASK 0x00000004 - -/* Watchdogs and MPU warm reset mask */ -#define RSTMGR_L4WD_MPU_WARMRESET_MASK 0x000F0F00 - -/* - * Define a reset identifier, from which a permodrst bank ID - * and reset ID can be extracted using the subsequent macros - * RSTMGR_RESET() and RSTMGR_BANK(). - */ -#define RSTMGR_BANK_OFFSET 8 -#define RSTMGR_BANK_MASK 0x7 -#define RSTMGR_RESET_OFFSET 0 -#define RSTMGR_RESET_MASK 0x1f -#define RSTMGR_DEFINE(_bank, _offset) \ - ((_bank) << RSTMGR_BANK_OFFSET) | ((_offset) << RSTMGR_RESET_OFFSET) - -/* Extract reset ID from the reset identifier. */ -#define RSTMGR_RESET(_reset) \ - (((_reset) >> RSTMGR_RESET_OFFSET) & RSTMGR_RESET_MASK) - -/* Extract bank ID from the reset identifier. */ -#define RSTMGR_BANK(_reset) \ - (((_reset) >> RSTMGR_BANK_OFFSET) & RSTMGR_BANK_MASK) - -/* - * SocFPGA Stratix10 reset IDs, bank mapping is as follows: - * 0 ... mpumodrst - * 1 ... per0modrst - * 2 ... per1modrst - * 3 ... brgmodrst - */ -#define RSTMGR_EMAC0 RSTMGR_DEFINE(1, 0) -#define RSTMGR_EMAC1 RSTMGR_DEFINE(1, 1) -#define RSTMGR_EMAC2 RSTMGR_DEFINE(1, 2) -#define RSTMGR_USB0 RSTMGR_DEFINE(1, 3) -#define RSTMGR_USB1 RSTMGR_DEFINE(1, 4) -#define RSTMGR_NAND RSTMGR_DEFINE(1, 5) -#define RSTMGR_SDMMC RSTMGR_DEFINE(1, 7) -#define RSTMGR_EMAC0_OCP RSTMGR_DEFINE(1, 8) -#define RSTMGR_EMAC1_OCP RSTMGR_DEFINE(1, 9) -#define RSTMGR_EMAC2_OCP RSTMGR_DEFINE(1, 10) -#define RSTMGR_USB0_OCP RSTMGR_DEFINE(1, 11) -#define RSTMGR_USB1_OCP RSTMGR_DEFINE(1, 12) -#define RSTMGR_NAND_OCP RSTMGR_DEFINE(1, 13) -#define RSTMGR_SDMMC_OCP RSTMGR_DEFINE(1, 15) -#define RSTMGR_DMA RSTMGR_DEFINE(1, 16) -#define RSTMGR_SPIM0 RSTMGR_DEFINE(1, 17) -#define RSTMGR_SPIM1 RSTMGR_DEFINE(1, 18) -#define RSTMGR_L4WD0 RSTMGR_DEFINE(2, 0) -#define RSTMGR_L4WD1 RSTMGR_DEFINE(2, 1) -#define RSTMGR_L4WD2 RSTMGR_DEFINE(2, 2) -#define RSTMGR_L4WD3 RSTMGR_DEFINE(2, 3) -#define RSTMGR_OSC1TIMER0 RSTMGR_DEFINE(2, 4) -#define RSTMGR_I2C0 RSTMGR_DEFINE(2, 8) -#define RSTMGR_I2C1 RSTMGR_DEFINE(2, 9) -#define RSTMGR_I2C2 RSTMGR_DEFINE(2, 10) -#define RSTMGR_I2C3 RSTMGR_DEFINE(2, 11) -#define RSTMGR_I2C4 RSTMGR_DEFINE(2, 12) -#define RSTMGR_UART0 RSTMGR_DEFINE(2, 16) -#define RSTMGR_UART1 RSTMGR_DEFINE(2, 17) -#define RSTMGR_GPIO0 RSTMGR_DEFINE(2, 24) -#define RSTMGR_GPIO1 RSTMGR_DEFINE(2, 25) -#define RSTMGR_SDR RSTMGR_DEFINE(3, 6) - -/* Create a human-readable reference to SoCFPGA reset. */ -#define SOCFPGA_RESET(_name) RSTMGR_##_name +#include <asm/arch/reset_manager_soc64.h> #endif /* _RESET_MANAGER_S10_ */ diff --git a/arch/arm/mach-socfpga/include/mach/reset_manager_soc64.h b/arch/arm/mach-socfpga/include/mach/reset_manager_soc64.h new file mode 100644 index 0000000000..3b739a0202 --- /dev/null +++ b/arch/arm/mach-socfpga/include/mach/reset_manager_soc64.h @@ -0,0 +1,38 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (C) 2016-2019 Intel Corporation <www.intel.com> + */ + +#ifndef _RESET_MANAGER_SOC64_H_ +#define _RESET_MANAGER_SOC64_H_ + +void reset_deassert_peripherals_handoff(void); +int cpu_has_been_warmreset(void); +void socfpga_bridges_reset(int enable); + +#define RSTMGR_SOC64_STATUS 0 +#define RSTMGR_SOC64_MPUMODRST 0x20 +#define RSTMGR_SOC64_PER0MODRST 0x24 +#define RSTMGR_SOC64_PER1MODRST 0x28 +#define RSTMGR_SOC64_BRGMODRST 0x2c + +#define RSTMGR_MPUMODRST_CORE0 0 +#define RSTMGR_PER0MODRST_OCP_MASK 0x0020bf00 +#define RSTMGR_BRGMODRST_DDRSCH_MASK 0X00000040 +#define RSTMGR_BRGMODRST_FPGA2SOC_MASK 0x00000004 + +/* Watchdogs and MPU warm reset mask */ +#define RSTMGR_L4WD_MPU_WARMRESET_MASK 0x000F0F00 + +/* + * SocFPGA Stratix10 reset IDs, bank mapping is as follows: + * 0 ... mpumodrst + * 1 ... per0modrst + * 2 ... per1modrst + * 3 ... brgmodrst + */ +#define RSTMGR_L4WD0 RSTMGR_DEFINE(2, 0) +#define RSTMGR_OSC1TIMER0 RSTMGR_DEFINE(2, 4) +#define RSTMGR_UART0 RSTMGR_DEFINE(2, 16) + +#endif /* _RESET_MANAGER_SOC64_H_ */ diff --git a/arch/arm/mach-socfpga/reset_manager_s10.c b/arch/arm/mach-socfpga/reset_manager_s10.c index 50a2d80930..bdc0f3ee6e 100644 --- a/arch/arm/mach-socfpga/reset_manager_s10.c +++ b/arch/arm/mach-socfpga/reset_manager_s10.c @@ -18,13 +18,13 @@ void socfpga_per_reset(u32 reset, int set) unsigned long reg; if (RSTMGR_BANK(reset) == 0) - reg = RSTMGR_S10_MPUMODRST; + reg = RSTMGR_SOC64_MPUMODRST; else if (RSTMGR_BANK(reset) == 1) - reg = RSTMGR_S10_PER0MODRST; + reg = RSTMGR_SOC64_PER0MODRST; else if (RSTMGR_BANK(reset) == 2) - reg = RSTMGR_S10_PER1MODRST; + reg = RSTMGR_SOC64_PER1MODRST; else if (RSTMGR_BANK(reset) == 3) - reg = RSTMGR_S10_BRGMODRST; + reg = RSTMGR_SOC64_BRGMODRST; else /* Invalid reset register, do nothing */ return; @@ -47,9 +47,9 @@ void socfpga_per_reset_all(void) /* disable all except OCP and l4wd0. OCP disable later */ writel(~(l4wd0 | RSTMGR_PER0MODRST_OCP_MASK), - socfpga_rstmgr_base + RSTMGR_S10_PER0MODRST); - writel(~l4wd0, socfpga_rstmgr_base + RSTMGR_S10_PER0MODRST); - writel(0xffffffff, socfpga_rstmgr_base + RSTMGR_S10_PER1MODRST); + socfpga_rstmgr_base + RSTMGR_SOC64_PER0MODRST); + writel(~l4wd0, socfpga_rstmgr_base + RSTMGR_SOC64_PER0MODRST); + writel(0xffffffff, socfpga_rstmgr_base + RSTMGR_SOC64_PER1MODRST); } void socfpga_bridges_reset(int enable) @@ -60,7 +60,7 @@ void socfpga_bridges_reset(int enable) ~0); /* Release all bridges from reset state */ - clrbits_le32(socfpga_rstmgr_base + RSTMGR_S10_BRGMODRST, ~0); + clrbits_le32(socfpga_rstmgr_base + RSTMGR_SOC64_BRGMODRST, ~0); /* Poll until all idleack to 0 */ while (readl(socfpga_sysmgr_base + SYSMGR_S10_NOC_IDLEACK)) @@ -83,7 +83,7 @@ void socfpga_bridges_reset(int enable) ; /* Reset all bridges (except NOR DDR scheduler & F2S) */ - setbits_le32(socfpga_rstmgr_base + RSTMGR_S10_BRGMODRST, + setbits_le32(socfpga_rstmgr_base + RSTMGR_SOC64_BRGMODRST, ~(RSTMGR_BRGMODRST_DDRSCH_MASK | RSTMGR_BRGMODRST_FPGA2SOC_MASK)); @@ -97,6 +97,6 @@ void socfpga_bridges_reset(int enable) */ int cpu_has_been_warmreset(void) { - return readl(socfpga_rstmgr_base + RSTMGR_S10_STATUS) & + return readl(socfpga_rstmgr_base + RSTMGR_SOC64_STATUS) & RSTMGR_L4WD_MPU_WARMRESET_MASK; }
Move Stratix10 and Agilex reset manager common code to reset_manager_soc64.h. Remove unused RSTMGR_XXX defines. Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com> --- v4: - Change prefix from RSTMGR_S10* to RSTMGR_SOC64*. v3: - Add new reset_manager_soc64.h - Convert to use defines instead of struct. --- .../include/mach/reset_manager_s10.h | 87 +------------------ .../include/mach/reset_manager_soc64.h | 38 ++++++++ arch/arm/mach-socfpga/reset_manager_s10.c | 20 ++--- 3 files changed, 50 insertions(+), 95 deletions(-) create mode 100644 arch/arm/mach-socfpga/include/mach/reset_manager_soc64.h