1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * K3: Architecture common definitions
4  *
5  * Copyright (C) 2018-2024 Texas Instruments Incorporated - https://www.ti.com/
6  *	Lokesh Vutla <lokeshvutla@ti.com>
7  */
8 
9 #include <asm/armv7_mpu.h>
10 #include <asm/hardware.h>
11 #include <mach/security.h>
12 
13 /* keep ram_top in the 32-bit address space */
14 #define CFG_MAX_MEM_MAPPED		0x100000000
15 
16 #define K3_FIREWALL_BACKGROUND_BIT (8)
17 
18 struct fwl_data {
19 	const char *name;
20 	u16 fwl_id;
21 	u16 regions;
22 };
23 
24 enum k3_firewall_region_type {
25 	K3_FIREWALL_REGION_FOREGROUND,
26 	K3_FIREWALL_REGION_BACKGROUND
27 };
28 
29 enum k3_device_type {
30 	K3_DEVICE_TYPE_BAD,
31 	K3_DEVICE_TYPE_GP,
32 	K3_DEVICE_TYPE_TEST,
33 	K3_DEVICE_TYPE_EMU,
34 	K3_DEVICE_TYPE_HS_FS,
35 	K3_DEVICE_TYPE_HS_SE,
36 };
37 
38 void setup_k3_mpu_regions(void);
39 int early_console_init(void);
40 void disable_linefill_optimization(void);
41 int remove_fwl_region(struct fwl_data *fwl);
42 void remove_fwl_configs(struct fwl_data *fwl_data, size_t fwl_data_size);
43 int load_firmware(char *name_fw, char *name_loadaddr, u32 *loadaddr);
44 void k3_sysfw_print_ver(void);
45 void k3_dm_print_ver(void);
46 void spl_enable_cache(void);
47 void mmr_unlock(uintptr_t base, u32 partition);
48 bool is_rom_loaded_sysfw(struct rom_extended_boot_data *data);
49 enum k3_device_type get_device_type(void);
50 struct ti_sci_handle *get_ti_sci_handle(void);
51 void do_board_detect(void);
52 void ti_secure_image_check_binary(void **p_image, size_t *p_size);
53 int shutdown_mcu_r5_core1(void);
54 
55 #if (IS_ENABLED(CONFIG_K3_QOS))
56 void setup_qos(void);
57 #else
setup_qos(void)58 static inline void setup_qos(void)
59 {
60 }
61 #endif
62