Skip to content
Snippets Groups Projects
stm32mp1_private.h 1.29 KiB
Newer Older
 * Copyright (c) 2015-2020, ARM Limited and Contributors. All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#ifndef STM32MP1_PRIVATE_H
#define STM32MP1_PRIVATE_H

#include <stdint.h>
#include <drivers/st/etzpc.h>

enum boot_device_e {
	BOOT_DEVICE_USB,
	BOOT_DEVICE_BOARD
};

struct bl2_to_bl32_args {
	void (*stm32_pwr_down_wfi)(bool is_cstop);
	uintptr_t bl2_code_base;
	uintptr_t bl2_code_end;
	uintptr_t bl2_end;
};

void configure_mmu(void);

void stm32mp_mask_timer(void);
void __dead2 stm32mp_wait_cpu_reset(void);

void stm32mp1_arch_security_setup(void);
void stm32mp1_security_setup(void);
void stm32mp1_security_setup_begin(void);
void stm32mp1_security_setup_end(void);
void stm32mp1_security_add_region(unsigned long long region_base,
				  unsigned long long region_size, bool sec);
enum boot_device_e get_boot_device(void);

bool stm32mp1_is_wakeup_from_standby(void);

enum etzpc_decprot_attributes stm32mp_etzpc_binding2decprot(uint32_t mode);

void stm32mp1_syscfg_init(void);
void stm32mp1_syscfg_enable_io_compensation(void);
void stm32mp1_syscfg_disable_io_compensation(void);

void stm32mp1_init_scmi_server(void);
void stm32mp1_pm_save_scmi_state(uint8_t *state, size_t size);
void stm32mp1_pm_restore_scmi_state(uint8_t *state, size_t size);
#endif /* STM32MP1_PRIVATE_H */