mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-03 02:03:01 +00:00

Initial creation of new system manager driver. Add supports for the SOCFPGA System Manager Register block which aggregates different peripheral function into one area. On 64 bit ARM parts, the system manager only can be accessed during EL3 mode, this driver model provide user the high level access to system register and abstract user from low level access. The base address of system manager can be retrieved using DT framework through the System Manager driver. Signed-off-by: Tien Fong Chee <tien.fong.chee@altera.com> Signed-off-by: Boon Khai Ng <boon.khai.ng@altera.com>
58 lines
1.4 KiB
C
58 lines
1.4 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright (C) 2016-2021 Intel Corporation
|
|
* Copyright (C) 2025 Altera Corporation <www.altera.com>
|
|
*/
|
|
|
|
#ifndef _SOCFPGA_MISC_H_
|
|
#define _SOCFPGA_MISC_H_
|
|
|
|
#include <asm/sections.h>
|
|
|
|
void dwmac_deassert_reset(const unsigned int of_reset_id, const u32 phymode);
|
|
|
|
struct bsel {
|
|
const char *mode;
|
|
const char *name;
|
|
};
|
|
|
|
extern struct bsel bsel_str[];
|
|
|
|
#ifdef CONFIG_FPGA
|
|
void socfpga_fpga_add(void *fpga_desc);
|
|
#else
|
|
static inline void socfpga_fpga_add(void *fpga_desc) {}
|
|
#endif
|
|
|
|
#ifdef CONFIG_TARGET_SOCFPGA_GEN5
|
|
void socfpga_sdram_remap_zero(void);
|
|
static inline bool socfpga_is_booting_from_fpga(void)
|
|
{
|
|
if ((__image_copy_start >= (char *)SOCFPGA_FPGA_SLAVES_ADDRESS) &&
|
|
(__image_copy_start < (char *)SOCFPGA_STM_ADDRESS))
|
|
return true;
|
|
return false;
|
|
}
|
|
#endif
|
|
|
|
#ifdef CONFIG_TARGET_SOCFPGA_ARRIA10
|
|
void socfpga_init_security_policies(void);
|
|
void socfpga_sdram_remap_zero(void);
|
|
#endif
|
|
|
|
#if defined(CONFIG_TARGET_SOCFPGA_STRATIX10) || \
|
|
defined(CONFIG_TARGET_SOCFPGA_AGILEX)
|
|
int is_fpga_config_ready(void);
|
|
#endif
|
|
|
|
void do_bridge_reset(int enable, unsigned int mask);
|
|
void force_periph_program(unsigned int status);
|
|
bool is_regular_boot_valid(void);
|
|
bool is_periph_program_force(void);
|
|
void set_regular_boot(unsigned int status);
|
|
void socfpga_pl310_clear(void);
|
|
void socfpga_get_managers_addr(void);
|
|
void socfpga_get_sys_mgr_addr(const char *compat);
|
|
int qspi_flash_software_reset(void);
|
|
|
|
#endif /* _SOCFPGA_MISC_H_ */
|