diff options
| author | Siew Chin Lim <elly.siew.chin.lim@intel.com> | 2021-03-24 13:11:38 +0800 | 
|---|---|---|
| committer | Ley Foon Tan <ley.foon.tan@intel.com> | 2021-04-08 17:29:12 +0800 | 
| commit | e2ffb1da1ddc442e4f48980e8524dd5b574012a2 (patch) | |
| tree | 5d8104f37868c8dfa7afa38ab17ce507bf7ef463 /arch/arm/mach-socfpga/include | |
| parent | a73514a8d29742c1f844f19226639da572e4cf15 (diff) | |
arm: socfpga: Restructure Stratix10 and Agilex handoff code
Restructure Stratix10 and Agilex handoff code to used by
all SOC64 devices, in preparation to support handoff for
Diamond Mesa.
Remove wrap_pinmux_config_s10.c. Add wrap_handoff_soc64.c
which contains the generic function to parse the handoff
data.
Update system_manager_soc64.c to use generic handoff
function in wrap_handoff_soc64.c.
Signed-off-by: Siew Chin Lim <elly.siew.chin.lim@intel.com>
Reviewed-by: Ley Foon Tan <ley.foon.tan@intel.com>
Diffstat (limited to 'arch/arm/mach-socfpga/include')
| -rw-r--r-- | arch/arm/mach-socfpga/include/mach/handoff_soc64.h | 23 | ||||
| -rw-r--r-- | arch/arm/mach-socfpga/include/mach/system_manager_soc64.h | 4 | 
2 files changed, 22 insertions, 5 deletions
| diff --git a/arch/arm/mach-socfpga/include/mach/handoff_soc64.h b/arch/arm/mach-socfpga/include/mach/handoff_soc64.h index 25612557124..3750216a9af 100644 --- a/arch/arm/mach-socfpga/include/mach/handoff_soc64.h +++ b/arch/arm/mach-socfpga/include/mach/handoff_soc64.h @@ -11,6 +11,7 @@   * Offset for HW handoff from Quartus tools   */  /* HPS handoff */ +#define SOC64_HANDOFF_MAGIC_BOOT	0x424F4F54  #define SOC64_HANDOFF_MAGIC_MUX	0x504D5558  #define SOC64_HANDOFF_MAGIC_IOCTL	0x494F4354  #define SOC64_HANDOFF_MAGIC_FPGA	0x46504741 @@ -30,7 +31,7 @@  #define SOC64_HANDOFF_DELAY		(SOC64_HANDOFF_BASE + 0x3F0)  #define SOC64_HANDOFF_CLOCK		(SOC64_HANDOFF_BASE + 0x580) -#ifdef CONFIG_TARGET_SOCFPGA_STRATIX10 +#if IS_ENABLED(CONFIG_TARGET_SOCFPGA_STRATIX10)  #define SOC64_HANDOFF_CLOCK_OSC	(SOC64_HANDOFF_BASE + 0x608)  #define SOC64_HANDOFF_CLOCK_FPGA	(SOC64_HANDOFF_BASE + 0x60C)  #else @@ -38,4 +39,24 @@  #define SOC64_HANDOFF_CLOCK_FPGA	(SOC64_HANDOFF_BASE + 0x600)  #endif +#define SOC64_HANDOFF_MUX_LEN			96 +#define SOC64_HANDOFF_IOCTL_LEN			96 +#if IS_ENABLED(CONFIG_TARGET_SOCFPGA_STRATIX10) +#define SOC64_HANDOFF_FPGA_LEN			42 +#else +#define SOC64_HANDOFF_FPGA_LEN			40 +#endif +#define SOC64_HANDOFF_DELAY_LEN			96 + +#ifndef __ASSEMBLY__ +#include <asm/types.h> +enum endianness { +	LITTLE_ENDIAN = 0, +	BIG_ENDIAN +}; + +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); +#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 4949cae97a6..1eb8e7a904f 100644 --- a/arch/arm/mach-socfpga/include/mach/system_manager_soc64.h +++ b/arch/arm/mach-socfpga/include/mach/system_manager_soc64.h @@ -10,10 +10,6 @@  void sysmgr_pinmux_init(void);  void populate_sysmgr_fpgaintf_module(void);  void populate_sysmgr_pinmux(void); -void sysmgr_pinmux_table_sel(const u32 **table, unsigned int *table_len); -void sysmgr_pinmux_table_ctrl(const u32 **table, unsigned int *table_len); -void sysmgr_pinmux_table_fpga(const u32 **table, unsigned int *table_len); -void sysmgr_pinmux_table_delay(const u32 **table, unsigned int *table_len);  #define SYSMGR_SOC64_WDDBG			0x08  #define SYSMGR_SOC64_DMA			0x20 | 
