xref: /rk3399_ARM-atf/plat/ti/k3low/common/am62l_bl31_setup.c (revision 7dae0451dda5074191c3ecfdec5eece768c28212)
1 /*
2  * Copyright (C) 2025 Texas Instruments Incorporated - http://www.ti.com/
3  * k3low SoC specific bl31_setup
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  */
7 
8 #include <common/debug.h>
9 #include <ti_sci.h>
10 #include <ti_sci_transport.h>
11 
12 #include <plat_private.h>
13 
14 /* Table of regions to map using the MMU */
15 const mmap_region_t plat_k3_mmap[] = {
16 	K3_MAP_REGION_FLAT(K3_USART_BASE,       K3_USART_SIZE,       MT_DEVICE | MT_RW | MT_SECURE),
17 	K3_MAP_REGION_FLAT(K3_GIC_BASE,         K3_GIC_SIZE,         MT_DEVICE | MT_RW | MT_SECURE),
18 	K3_MAP_REGION_FLAT(K3_GTC_BASE,         K3_GTC_SIZE,         MT_DEVICE | MT_RW | MT_SECURE),
19 	K3_MAP_REGION_FLAT(TI_MAILBOX_TX_BASE,  TI_MAILBOX_RX_TX_SIZE, MT_DEVICE | MT_RW | MT_SECURE),
20 	K3_MAP_REGION_FLAT(WKUP_CTRL_MMR0_BASE, WKUP_CTRL_MMR0_SIZE, MT_DEVICE | MT_RW | MT_SECURE),
21 	K3_MAP_REGION_FLAT(MAILBOX_SHMEM_REGION_BASE, MAILBOX_SHMEM_REGION_SIZE, MT_DEVICE | MT_RW | MT_SECURE),
22 	{ /* sentinel */ }
23 };
24 
25 int ti_soc_init(void)
26 {
27 	struct ti_sci_msg_version version;
28 	int ret;
29 
30 	generic_delay_timer_init();
31 
32 	ret = ti_sci_boot_notification();
33 	if (ret != 0) {
34 		ERROR("%s: Failed to receive boot notification (%d)\n", __func__, ret);
35 		return ret;
36 	}
37 
38 	ret = ti_sci_get_revision(&version);
39 	if (ret != 0) {
40 		ERROR("%s: Failed to get revision (%d)\n", __func__, ret);
41 		return ret;
42 	}
43 
44 	NOTICE("SYSFW ABI: %d.%d (firmware rev 0x%04x '%s')\n",
45 	       version.abi_major, version.abi_minor,
46 	       version.firmware_revision,
47 	       version.firmware_description);
48 
49 	return 0;
50 }
51