* [PATCH 1/3] ARM: socfpga: Clean unused functions @ 2018-10-04 8:54 Clément Péron 2018-10-04 8:54 ` [PATCH 2/3] ARM: socfpga: Turn on all peripheral clocks for a system reboot Clément Péron 2018-10-04 8:54 ` [PATCH 3/3] ARM: socfpga: Turn on ARM errata for L2 cache Clément Péron 0 siblings, 2 replies; 5+ messages in thread From: Clément Péron @ 2018-10-04 8:54 UTC (permalink / raw) To: linux-arm-kernel These functions are unused externally, removed them and declare the one used locally as static. Signed-off-by: Cl?ment P?ron <peron.clem@gmail.com> --- arch/arm/mach-socfpga/core.h | 2 -- arch/arm/mach-socfpga/socfpga.c | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/arch/arm/mach-socfpga/core.h b/arch/arm/mach-socfpga/core.h index 65e1817d8afe..92cae0a9213f 100644 --- a/arch/arm/mach-socfpga/core.h +++ b/arch/arm/mach-socfpga/core.h @@ -34,8 +34,6 @@ #define RSTMGR_MPUMODRST_CPU1 0x2 /* CPU1 Reset */ -extern void socfpga_init_clocks(void); -extern void socfpga_sysmgr_init(void); void socfpga_init_l2_ecc(void); void socfpga_init_ocram_ecc(void); void socfpga_init_arria10_l2_ecc(void); diff --git a/arch/arm/mach-socfpga/socfpga.c b/arch/arm/mach-socfpga/socfpga.c index dde14f7bf2c3..5fb6f79059a8 100644 --- a/arch/arm/mach-socfpga/socfpga.c +++ b/arch/arm/mach-socfpga/socfpga.c @@ -32,7 +32,7 @@ void __iomem *rst_manager_base_addr; void __iomem *sdr_ctl_base_addr; unsigned long socfpga_cpu1start_addr; -void __init socfpga_sysmgr_init(void) +static void __init socfpga_sysmgr_init(void) { struct device_node *np; -- 2.17.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/3] ARM: socfpga: Turn on all peripheral clocks for a system reboot 2018-10-04 8:54 [PATCH 1/3] ARM: socfpga: Clean unused functions Clément Péron @ 2018-10-04 8:54 ` Clément Péron 2018-10-04 8:54 ` [PATCH 3/3] ARM: socfpga: Turn on ARM errata for L2 cache Clément Péron 1 sibling, 0 replies; 5+ messages in thread From: Clément Péron @ 2018-10-04 8:54 UTC (permalink / raw) To: linux-arm-kernel From: Dinh Nguyen <dinguyen@altera.com> When doing a software reboot, all peripheral clocks must get turned on for the L3 interconnect to work. This code is needed when doing a "reboot" from user-space and a peripheral clock as been gated off. Why would a peripheral clock get gated? An example use case would be a .ko that gets insmod and rmmod during runtime. The insmod would turn on the IP's clock, and the rmmod would turn off the IP's clock. Doing a "reboot" would cause the system to hang. 5c04b57fe33c ("ARM: socfpga: Enable soft reset") Signed-off-by: Dinh Nguyen <dinguyen@altera.com> Signed-off-by: Cl?ment P?ron <peron.clem@gmail.com> --- arch/arm/mach-socfpga/core.h | 3 +++ arch/arm/mach-socfpga/socfpga.c | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/arch/arm/mach-socfpga/core.h b/arch/arm/mach-socfpga/core.h index 92cae0a9213f..17c8a97c04d9 100644 --- a/arch/arm/mach-socfpga/core.h +++ b/arch/arm/mach-socfpga/core.h @@ -52,4 +52,7 @@ extern unsigned long socfpga_cpu1start_addr; #define SOCFPGA_SCU_VIRT_BASE 0xfee00000 +/* Clock manager defines */ +#define SOCFPGA_ENABLE_PLL_REG 0xA0 + #endif diff --git a/arch/arm/mach-socfpga/socfpga.c b/arch/arm/mach-socfpga/socfpga.c index 5fb6f79059a8..c9c881f7c67c 100644 --- a/arch/arm/mach-socfpga/socfpga.c +++ b/arch/arm/mach-socfpga/socfpga.c @@ -31,6 +31,7 @@ void __iomem *sys_manager_base_addr; void __iomem *rst_manager_base_addr; void __iomem *sdr_ctl_base_addr; unsigned long socfpga_cpu1start_addr; +void __iomem *clkmgr_base_addr; static void __init socfpga_sysmgr_init(void) { @@ -51,6 +52,10 @@ static void __init socfpga_sysmgr_init(void) np = of_find_compatible_node(NULL, NULL, "altr,rst-mgr"); rst_manager_base_addr = of_iomap(np, 0); + np = of_find_compatible_node(NULL, NULL, "altr,clk-mgr"); + clkmgr_base_addr = of_iomap(np, 0); + WARN_ON(!clkmgr_base_addr); + np = of_find_compatible_node(NULL, NULL, "altr,sdr-ctl"); sdr_ctl_base_addr = of_iomap(np, 0); } @@ -80,6 +85,9 @@ static void socfpga_cyclone5_restart(enum reboot_mode mode, const char *cmd) { u32 temp; + /* Turn on all periph PLL clocks */ + writel(0xffff, clkmgr_base_addr + SOCFPGA_ENABLE_PLL_REG); + temp = readl(rst_manager_base_addr + SOCFPGA_RSTMGR_CTRL); if (mode == REBOOT_HARD) -- 2.17.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/3] ARM: socfpga: Turn on ARM errata for L2 cache 2018-10-04 8:54 [PATCH 1/3] ARM: socfpga: Clean unused functions Clément Péron 2018-10-04 8:54 ` [PATCH 2/3] ARM: socfpga: Turn on all peripheral clocks for a system reboot Clément Péron @ 2018-10-04 8:54 ` Clément Péron 2018-10-04 9:16 ` Russell King - ARM Linux 1 sibling, 1 reply; 5+ messages in thread From: Clément Péron @ 2018-10-04 8:54 UTC (permalink / raw) To: linux-arm-kernel From: Dinh Nguyen <dinguyen@kernel.org> Turn on these ARM and PL310 errata for SoCFPGA: ARM_ERRATA_754322 ARM_ERRATA_764369 ARM_ERRATA_775420 PL310_ERRATA_588369 PL310_ERRATA_727915 PL310_ERRATA_753970 PL310_ERRATA_769419 Fixes: 387798b37c8d ("ARM: initial multiplatform support") Signed-off-by: Dinh Nguyen <dinguyen@kernel.org> Signed-off-by: Cl?ment P?ron <peron.clem@gmail.com> --- arch/arm/mach-socfpga/Kconfig | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-socfpga/Kconfig index 4adb901dd5eb..a04660918d71 100644 --- a/arch/arm/mach-socfpga/Kconfig +++ b/arch/arm/mach-socfpga/Kconfig @@ -11,6 +11,13 @@ menuconfig ARCH_SOCFPGA select HAVE_ARM_TWD if SMP select MFD_SYSCON select PCI_DOMAINS if PCI + select ARM_ERRATA_754322 + select ARM_ERRATA_764369 if SMP + select ARM_ERRATA_775420 + select PL310_ERRATA_588369 + select PL310_ERRATA_727915 + select PL310_ERRATA_753970 if PL310 + select PL310_ERRATA_769419 if ARCH_SOCFPGA config SOCFPGA_SUSPEND -- 2.17.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/3] ARM: socfpga: Turn on ARM errata for L2 cache 2018-10-04 8:54 ` [PATCH 3/3] ARM: socfpga: Turn on ARM errata for L2 cache Clément Péron @ 2018-10-04 9:16 ` Russell King - ARM Linux 2018-10-04 9:24 ` Clément Péron 0 siblings, 1 reply; 5+ messages in thread From: Russell King - ARM Linux @ 2018-10-04 9:16 UTC (permalink / raw) To: linux-arm-kernel On Thu, Oct 04, 2018 at 10:54:15AM +0200, Cl?ment P?ron wrote: > From: Dinh Nguyen <dinguyen@kernel.org> > > Turn on these ARM and PL310 errata for SoCFPGA: > > ARM_ERRATA_754322 > ARM_ERRATA_764369 > ARM_ERRATA_775420 > > PL310_ERRATA_588369 > PL310_ERRATA_727915 > PL310_ERRATA_753970 > PL310_ERRATA_769419 > > Fixes: 387798b37c8d ("ARM: initial multiplatform support") What was broken in the referred to commit that caused this regression? If it's not a regression, why does it have a Fixes: line? > Signed-off-by: Dinh Nguyen <dinguyen@kernel.org> > Signed-off-by: Cl?ment P?ron <peron.clem@gmail.com> > --- > arch/arm/mach-socfpga/Kconfig | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-socfpga/Kconfig > index 4adb901dd5eb..a04660918d71 100644 > --- a/arch/arm/mach-socfpga/Kconfig > +++ b/arch/arm/mach-socfpga/Kconfig > @@ -11,6 +11,13 @@ menuconfig ARCH_SOCFPGA > select HAVE_ARM_TWD if SMP > select MFD_SYSCON > select PCI_DOMAINS if PCI > + select ARM_ERRATA_754322 > + select ARM_ERRATA_764369 if SMP > + select ARM_ERRATA_775420 > + select PL310_ERRATA_588369 > + select PL310_ERRATA_727915 > + select PL310_ERRATA_753970 if PL310 > + select PL310_ERRATA_769419 > > if ARCH_SOCFPGA > config SOCFPGA_SUSPEND > -- > 2.17.1 > -- RMK's Patch system: http://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up According to speedtest.net: 11.9Mbps down 500kbps up ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 3/3] ARM: socfpga: Turn on ARM errata for L2 cache 2018-10-04 9:16 ` Russell King - ARM Linux @ 2018-10-04 9:24 ` Clément Péron 0 siblings, 0 replies; 5+ messages in thread From: Clément Péron @ 2018-10-04 9:24 UTC (permalink / raw) To: linux-arm-kernel Hi, On Thu, 4 Oct 2018 at 11:16, Russell King - ARM Linux <linux@armlinux.org.uk> wrote: > > On Thu, Oct 04, 2018 at 10:54:15AM +0200, Cl?ment P?ron wrote: > > From: Dinh Nguyen <dinguyen@kernel.org> > > > > Turn on these ARM and PL310 errata for SoCFPGA: > > > > ARM_ERRATA_754322 > > ARM_ERRATA_764369 > > ARM_ERRATA_775420 > > > > PL310_ERRATA_588369 > > PL310_ERRATA_727915 > > PL310_ERRATA_753970 > > PL310_ERRATA_769419 > > > > Fixes: 387798b37c8d ("ARM: initial multiplatform support") > > What was broken in the referred to commit that caused this regression? > If it's not a regression, why does it have a Fixes: line? Sorry I'm not familiar with the "Fixes" tag, I though it was required to be backported on the stable branch. I will remove it in the v2 Thanks, Cl?ment ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-10-04 9:24 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-10-04 8:54 [PATCH 1/3] ARM: socfpga: Clean unused functions Clément Péron 2018-10-04 8:54 ` [PATCH 2/3] ARM: socfpga: Turn on all peripheral clocks for a system reboot Clément Péron 2018-10-04 8:54 ` [PATCH 3/3] ARM: socfpga: Turn on ARM errata for L2 cache Clément Péron 2018-10-04 9:16 ` Russell King - ARM Linux 2018-10-04 9:24 ` Clément Péron
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).