diff options
Diffstat (limited to 'arch/arm/mach-socfpga/include/mach')
| -rw-r--r-- | arch/arm/mach-socfpga/include/mach/base_addr_soc64.h (renamed from arch/arm/mach-socfpga/include/mach/base_addr_s10.h) | 11 | ||||
| -rw-r--r-- | arch/arm/mach-socfpga/include/mach/clock_manager.h | 3 | ||||
| -rw-r--r-- | arch/arm/mach-socfpga/include/mach/clock_manager_agilex.h | 2 | ||||
| -rw-r--r-- | arch/arm/mach-socfpga/include/mach/clock_manager_arria10.h | 1 | ||||
| -rw-r--r-- | arch/arm/mach-socfpga/include/mach/clock_manager_gen5.h | 1 | ||||
| -rw-r--r-- | arch/arm/mach-socfpga/include/mach/clock_manager_n5x.h | 12 | ||||
| -rw-r--r-- | arch/arm/mach-socfpga/include/mach/clock_manager_s10.h | 1 | ||||
| -rw-r--r-- | arch/arm/mach-socfpga/include/mach/firewall.h | 6 | ||||
| -rw-r--r-- | arch/arm/mach-socfpga/include/mach/handoff_soc64.h | 38 | ||||
| -rw-r--r-- | arch/arm/mach-socfpga/include/mach/system_manager_soc64.h | 10 | 
10 files changed, 69 insertions, 16 deletions
| diff --git a/arch/arm/mach-socfpga/include/mach/base_addr_s10.h b/arch/arm/mach-socfpga/include/mach/base_addr_soc64.h index d3eca65e97c..3f899fcfa3a 100644 --- a/arch/arm/mach-socfpga/include/mach/base_addr_s10.h +++ b/arch/arm/mach-socfpga/include/mach/base_addr_soc64.h @@ -1,16 +1,17 @@  /* SPDX-License-Identifier: GPL-2.0 */  /* - * Copyright (C) 2016-2017 Intel Corporation <www.intel.com> + * Copyright (C) 2016-2021 Intel Corporation <www.intel.com>   */ -#ifndef _SOCFPGA_S10_BASE_HARDWARE_H_ -#define _SOCFPGA_S10_BASE_HARDWARE_H_ +#ifndef _SOCFPGA_SOC64_BASE_HARDWARE_H_ +#define _SOCFPGA_SOC64_BASE_HARDWARE_H_  #define SOCFPGA_CCU_ADDRESS			0xf7000000  #define SOCFPGA_SDR_SCHEDULER_ADDRESS		0xf8000400  #define SOCFPGA_HMC_MMR_IO48_ADDRESS		0xf8010000  #define SOCFPGA_SDR_ADDRESS			0xf8011000 -#ifdef CONFIG_TARGET_SOCFPGA_AGILEX +#if IS_ENABLED(CONFIG_TARGET_SOCFPGA_AGILEX) || \ +	IS_ENABLED(CONFIG_TARGET_SOCFPGA_N5X)  #define SOCFPGA_FW_MPU_DDR_SCR_ADDRESS		0xf8020200  #else  #define SOCFPGA_FW_MPU_DDR_SCR_ADDRESS		0xf8020100 @@ -44,4 +45,4 @@  #define GICD_BASE				0xfffc1000  #define GICC_BASE				0xfffc2000 -#endif /* _SOCFPGA_S10_BASE_HARDWARE_H_ */ +#endif /* _SOCFPGA_SOC64_BASE_HARDWARE_H_ */ diff --git a/arch/arm/mach-socfpga/include/mach/clock_manager.h b/arch/arm/mach-socfpga/include/mach/clock_manager.h index 2f9b471af31..a8cb07a1c47 100644 --- a/arch/arm/mach-socfpga/include/mach/clock_manager.h +++ b/arch/arm/mach-socfpga/include/mach/clock_manager.h @@ -12,6 +12,7 @@ phys_addr_t socfpga_get_clkmgr_addr(void);  void cm_wait_for_lock(u32 mask);  int cm_wait_for_fsm(void);  void cm_print_clock_quick_summary(void); +unsigned long cm_get_mpu_clk_hz(void);  unsigned int cm_get_qspi_controller_clk_hz(void);  #if defined(CONFIG_TARGET_SOCFPGA_SOC64) @@ -27,6 +28,8 @@ int cm_set_qspi_controller_clk_hz(u32 clk_hz);  #include <asm/arch/clock_manager_s10.h>  #elif defined(CONFIG_TARGET_SOCFPGA_AGILEX)  #include <asm/arch/clock_manager_agilex.h> +#elif IS_ENABLED(CONFIG_TARGET_SOCFPGA_N5X) +#include <asm/arch/clock_manager_n5x.h>  #endif  #endif /* _CLOCK_MANAGER_H_ */ diff --git a/arch/arm/mach-socfpga/include/mach/clock_manager_agilex.h b/arch/arm/mach-socfpga/include/mach/clock_manager_agilex.h index 386e82a4e32..4feae3dda9d 100644 --- a/arch/arm/mach-socfpga/include/mach/clock_manager_agilex.h +++ b/arch/arm/mach-socfpga/include/mach/clock_manager_agilex.h @@ -6,8 +6,6 @@  #ifndef _CLOCK_MANAGER_AGILEX_  #define _CLOCK_MANAGER_AGILEX_ -unsigned long cm_get_mpu_clk_hz(void); -  #include <asm/arch/clock_manager_soc64.h>  #include "../../../../../drivers/clk/altera/clk-agilex.h" diff --git a/arch/arm/mach-socfpga/include/mach/clock_manager_arria10.h b/arch/arm/mach-socfpga/include/mach/clock_manager_arria10.h index 798d3741bd9..553ebe660de 100644 --- a/arch/arm/mach-socfpga/include/mach/clock_manager_arria10.h +++ b/arch/arm/mach-socfpga/include/mach/clock_manager_arria10.h @@ -68,7 +68,6 @@ int cm_basic_init(const void *blob);  #include <linux/bitops.h>  unsigned int cm_get_l4_sp_clk_hz(void); -unsigned long cm_get_mpu_clk_hz(void);  #endif /* __ASSEMBLY__ */ diff --git a/arch/arm/mach-socfpga/include/mach/clock_manager_gen5.h b/arch/arm/mach-socfpga/include/mach/clock_manager_gen5.h index 4cc1268b4c4..d53095a7da9 100644 --- a/arch/arm/mach-socfpga/include/mach/clock_manager_gen5.h +++ b/arch/arm/mach-socfpga/include/mach/clock_manager_gen5.h @@ -96,7 +96,6 @@ struct cm_config {  #define CLKMGR_PERPLL_EN			CLKMGR_GEN5_PERPLL_EN  /* Clock speed accessors */ -unsigned long cm_get_mpu_clk_hz(void);  unsigned long cm_get_sdram_clk_hz(void);  unsigned int cm_get_l4_sp_clk_hz(void);  unsigned int cm_get_mmc_controller_clk_hz(void); diff --git a/arch/arm/mach-socfpga/include/mach/clock_manager_n5x.h b/arch/arm/mach-socfpga/include/mach/clock_manager_n5x.h new file mode 100644 index 00000000000..54615ae8f79 --- /dev/null +++ b/arch/arm/mach-socfpga/include/mach/clock_manager_n5x.h @@ -0,0 +1,12 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (C) 2020-2021 Intel Corporation <www.intel.com> + */ + +#ifndef _CLOCK_MANAGER_N5X_ +#define _CLOCK_MANAGER_N5X_ + +#include <asm/arch/clock_manager_soc64.h> +#include "../../../../../drivers/clk/altera/clk-n5x.h" + +#endif /* _CLOCK_MANAGER_N5X_ */ diff --git a/arch/arm/mach-socfpga/include/mach/clock_manager_s10.h b/arch/arm/mach-socfpga/include/mach/clock_manager_s10.h index 98c3bf1b03e..7f10296dc74 100644 --- a/arch/arm/mach-socfpga/include/mach/clock_manager_s10.h +++ b/arch/arm/mach-socfpga/include/mach/clock_manager_s10.h @@ -11,7 +11,6 @@  #include <linux/bitops.h>  /* Clock speed accessors */ -unsigned long cm_get_mpu_clk_hz(void);  unsigned long cm_get_sdram_clk_hz(void);  unsigned int cm_get_l4_sp_clk_hz(void);  unsigned int cm_get_mmc_controller_clk_hz(void); diff --git a/arch/arm/mach-socfpga/include/mach/firewall.h b/arch/arm/mach-socfpga/include/mach/firewall.h index adab65bc968..5cb7f23f8f0 100644 --- a/arch/arm/mach-socfpga/include/mach/firewall.h +++ b/arch/arm/mach-socfpga/include/mach/firewall.h @@ -115,10 +115,16 @@ struct socfpga_firwall_l4_sys {  /* Firewall MPU DDR SCR registers */  #define FW_MPU_DDR_SCR_EN				0x00  #define FW_MPU_DDR_SCR_EN_SET				0x04 +#define FW_MPU_DDR_SCR_MPUREGION0ADDR_BASE		0x10 +#define FW_MPU_DDR_SCR_MPUREGION0ADDR_BASEEXT		0x14  #define FW_MPU_DDR_SCR_MPUREGION0ADDR_LIMIT		0x18  #define FW_MPU_DDR_SCR_MPUREGION0ADDR_LIMITEXT		0x1c + +#define FW_MPU_DDR_SCR_NONMPUREGION0ADDR_BASE		0x90 +#define FW_MPU_DDR_SCR_NONMPUREGION0ADDR_BASEEXT	0x94  #define FW_MPU_DDR_SCR_NONMPUREGION0ADDR_LIMIT		0x98  #define FW_MPU_DDR_SCR_NONMPUREGION0ADDR_LIMITEXT	0x9c +#define FW_MPU_DDR_SCR_NONMPUREGION0ADDR_LIMITEXT_FIELD	0xff  #define MPUREGION0_ENABLE				BIT(0)  #define NONMPUREGION0_ENABLE				BIT(8) diff --git a/arch/arm/mach-socfpga/include/mach/handoff_soc64.h b/arch/arm/mach-socfpga/include/mach/handoff_soc64.h index 3750216a9af..902fc6bfb5d 100644 --- a/arch/arm/mach-socfpga/include/mach/handoff_soc64.h +++ b/arch/arm/mach-socfpga/include/mach/handoff_soc64.h @@ -1,6 +1,6 @@  /* SPDX-License-Identifier: GPL-2.0   * - * Copyright (C) 2016-2020 Intel Corporation <www.intel.com> + * Copyright (C) 2016-2021 Intel Corporation <www.intel.com>   *   */ @@ -23,8 +23,36 @@  #define SOC64_HANDOFF_OFFSET_DATA	0x10  #define SOC64_HANDOFF_SIZE		4096 +#if IS_ENABLED(CONFIG_TARGET_SOCFPGA_STRATIX10) || \ +	IS_ENABLED(CONFIG_TARGET_SOCFPGA_AGILEX)  #define SOC64_HANDOFF_BASE		0xFFE3F000  #define SOC64_HANDOFF_MISC		(SOC64_HANDOFF_BASE + 0x610) +#elif IS_ENABLED(CONFIG_TARGET_SOCFPGA_N5X) +#define SOC64_HANDOFF_BASE		0xFFE5F000 +#define SOC64_HANDOFF_MISC		(SOC64_HANDOFF_BASE + 0x630) + +/* DDR handoff */ +#define SOC64_HANDOFF_DDR_BASE			0xFFE5C000 +#define SOC64_HANDOFF_DDR_MAGIC			0x48524444 +#define SOC64_HANDOFF_DDR_UMCTL2_MAGIC		0x4C54434D +#define SOC64_HANDOFF_DDR_UMCTL2_DDR4_TYPE	0x34524444 +#define SOC64_HANDOFF_DDR_UMCTL2_LPDDR4_0_TYPE	0x3044504C +#define SOC64_HANDOFF_DDR_UMCTL2_LPDDR4_1_TYPE	0x3144504C +#define SOC64_HANDOFF_DDR_MEMRESET_BASE		(SOC64_HANDOFF_DDR_BASE + 0xC) +#define SOC64_HANDOFF_DDR_UMCTL2_SECTION	(SOC64_HANDOFF_DDR_BASE + 0x10) +#define SOC64_HANDOFF_DDR_PHY_MAGIC		0x43594850 +#define SOC64_HANDOFF_DDR_PHY_INIT_ENGINE_MAGIC	0x45594850 +#define SOC64_HANDOFF_DDR_PHY_BASE_OFFSET	0x8 +#define SOC64_HANDOFF_DDR_UMCTL2_TYPE_OFFSET	0x8 +#define SOC64_HANDOFF_DDR_UMCTL2_BASE_ADDR_OFFSET	0xC +#define SOC64_HANDOFF_DDR_TRAIN_IMEM_1D_SECTION	0xFFE50000 +#define SOC64_HANDOFF_DDR_TRAIN_DMEM_1D_SECTION	0xFFE58000 +#define SOC64_HANDOFF_DDR_TRAIN_IMEM_2D_SECTION	0xFFE44000 +#define SOC64_HANDOFF_DDR_TRAIN_DMEM_2D_SECTION	0xFFE4C000 +#define SOC64_HANDOFF_DDR_TRAIN_IMEM_LENGTH	SZ_32K +#define SOC64_HANDOFF_DDR_TRAIN_DMEM_LENGTH	SZ_16K +#endif +  #define SOC64_HANDOFF_MUX		(SOC64_HANDOFF_BASE + 0x10)  #define SOC64_HANDOFF_IOCTL		(SOC64_HANDOFF_BASE + 0x1A0)  #define SOC64_HANDOFF_FPGA		(SOC64_HANDOFF_BASE + 0x330) @@ -52,11 +80,11 @@  #include <asm/types.h>  enum endianness {  	LITTLE_ENDIAN = 0, -	BIG_ENDIAN +	BIG_ENDIAN, +	UNKNOWN_ENDIANNESS  }; -int socfpga_get_handoff_size(void *handoff_address, enum endianness endian); -int socfpga_handoff_read(void *handoff_address, void *table, u32 table_len, -			 enum endianness big_endian); +int socfpga_get_handoff_size(void *handoff_address); +int socfpga_handoff_read(void *handoff_address, void *table, u32 table_len);  #endif  #endif /* _HANDOFF_SOC64_H_ */ diff --git a/arch/arm/mach-socfpga/include/mach/system_manager_soc64.h b/arch/arm/mach-socfpga/include/mach/system_manager_soc64.h index fc4e17821bb..a8009664fee 100644 --- a/arch/arm/mach-socfpga/include/mach/system_manager_soc64.h +++ b/arch/arm/mach-socfpga/include/mach/system_manager_soc64.h @@ -1,6 +1,6 @@  /* SPDX-License-Identifier: GPL-2.0 */  /* - * Copyright (C) 2019 Intel Corporation <www.intel.com> + * Copyright (C) 2019-2021 Intel Corporation <www.intel.com>   */  #ifndef _SYSTEM_MANAGER_SOC64_H_ @@ -28,8 +28,12 @@ void populate_sysmgr_pinmux(void);  #define SYSMGR_SOC64_FPGAINTF_EN2		0x6c  #define SYSMGR_SOC64_FPGAINTF_EN3		0x70  #define SYSMGR_SOC64_DMA_L3MASTER		0x74 +#if IS_ENABLED(CONFIG_TARGET_SOCFPGA_N5X) +#define SYSMGR_SOC64_DDR_MODE			0xb8 +#else  #define SYSMGR_SOC64_HMC_CLK			0xb4  #define SYSMGR_SOC64_IO_PA_CTRL			0xb8 +#endif  #define SYSMGR_SOC64_NOC_TIMEOUT		0xc0  #define SYSMGR_SOC64_NOC_IDLEREQ_SET		0xc4  #define SYSMGR_SOC64_NOC_IDLEREQ_CLR		0xc8 @@ -143,4 +147,8 @@ void populate_sysmgr_pinmux(void);  #define SYSMGR_WDDBG_PAUSE_ALL_CPU	0x0F0F0F0F +#if IS_ENABLED(CONFIG_TARGET_SOCFPGA_N5X) +#define	SYSMGR_SOC64_DDR_MODE_MSK	BIT(0) +#endif +  #endif /* _SYSTEM_MANAGER_SOC64_H_ */ | 
