blob: a994c3df3e0369122120c03e2f3cf28075c8b776 [file] [log] [blame]
Lokesh Vutla23f7b1a2018-11-02 19:51:03 +05301/* SPDX-License-Identifier: GPL-2.0+ */
2/*
3 * K3: Architecture common definitions
4 *
5 * Copyright (C) 2018 Texas Instruments Incorporated - http://www.ti.com/
6 * Lokesh Vutla <lokeshvutla@ti.com>
7 */
8
9#include <asm/armv7_mpu.h>
Lokesh Vutla01dbe362020-08-05 22:44:23 +053010#include <asm/hardware.h>
Lokesh Vutla23f7b1a2018-11-02 19:51:03 +053011
Manorit Chawdhry8bfce2f2023-05-05 15:54:00 +053012#define K3_FIREWALL_BACKGROUND_BIT BIT(8)
13
Andrew F. Davisea70da12020-01-10 14:35:21 -050014struct fwl_data {
15 const char *name;
16 u16 fwl_id;
17 u16 regions;
18};
19
Manorit Chawdhry8bfce2f2023-05-05 15:54:00 +053020enum k3_firewall_region_type {
21 K3_FIREWALL_REGION_FOREGROUND,
22 K3_FIREWALL_REGION_BACKGROUND
23};
24
Andrew Davisd1c07952022-07-15 11:34:32 -050025enum k3_device_type {
26 K3_DEVICE_TYPE_BAD,
27 K3_DEVICE_TYPE_GP,
28 K3_DEVICE_TYPE_TEST,
29 K3_DEVICE_TYPE_EMU,
30 K3_DEVICE_TYPE_HS_FS,
31 K3_DEVICE_TYPE_HS_SE,
32};
33
Lokesh Vutla23f7b1a2018-11-02 19:51:03 +053034void setup_k3_mpu_regions(void);
Andreas Dannenberge630afe12019-08-15 15:55:28 -050035int early_console_init(void);
Lokesh Vutla40109f42019-12-31 15:49:55 +053036void disable_linefill_optimization(void);
Andrew F. Davisea70da12020-01-10 14:35:21 -050037void remove_fwl_configs(struct fwl_data *fwl_data, size_t fwl_data_size);
Keerthy3ab34bc2020-02-12 13:55:04 +053038int load_firmware(char *name_fw, char *name_loadaddr, u32 *loadaddr);
Lokesh Vutla6e44aeb2020-03-10 16:50:58 +053039void k3_sysfw_print_ver(void);
Jan Kiszkac02712a2020-05-18 07:57:22 +020040void spl_enable_dcache(void);
Lokesh Vutla58ccd612020-08-05 22:44:17 +053041void mmr_unlock(phys_addr_t base, u32 partition);
Lokesh Vutla01dbe362020-08-05 22:44:23 +053042bool is_rom_loaded_sysfw(struct rom_extended_boot_data *data);
Andrew Davisd1c07952022-07-15 11:34:32 -050043enum k3_device_type get_device_type(void);
Tero Kristo547b2772021-06-11 11:45:19 +030044void ti_secure_image_post_process(void **p_image, size_t *p_size);
Andrew Davise25fe5b2023-04-06 11:38:17 -050045struct ti_sci_handle *get_ti_sci_handle(void);
46void do_board_detect(void);