121b14fd2SDhruva Gole /* 221b14fd2SDhruva Gole * Copyright (C) 2025 Texas Instruments Incorporated - http://www.ti.com/ 38853eba6SDhruva Gole * k3low SoC specific bl31_setup 421b14fd2SDhruva Gole * 521b14fd2SDhruva Gole * SPDX-License-Identifier: BSD-3-Clause 621b14fd2SDhruva Gole */ 721b14fd2SDhruva Gole 821b14fd2SDhruva Gole #include <common/debug.h> 921b14fd2SDhruva Gole #include <ti_sci.h> 1021b14fd2SDhruva Gole #include <ti_sci_transport.h> 1121b14fd2SDhruva Gole 1221b14fd2SDhruva Gole #include <plat_private.h> 1321b14fd2SDhruva Gole 1421b14fd2SDhruva Gole /* Table of regions to map using the MMU */ 1521b14fd2SDhruva Gole const mmap_region_t plat_k3_mmap[] = { 168853eba6SDhruva Gole K3_MAP_REGION_FLAT(K3_USART_BASE, K3_USART_SIZE, MT_DEVICE | MT_RW | MT_SECURE), 178853eba6SDhruva Gole K3_MAP_REGION_FLAT(K3_GIC_BASE, K3_GIC_SIZE, MT_DEVICE | MT_RW | MT_SECURE), 188853eba6SDhruva Gole K3_MAP_REGION_FLAT(K3_GTC_BASE, K3_GTC_SIZE, MT_DEVICE | MT_RW | MT_SECURE), 198853eba6SDhruva Gole K3_MAP_REGION_FLAT(TI_MAILBOX_TX_BASE, TI_MAILBOX_RX_TX_SIZE, MT_DEVICE | MT_RW | MT_SECURE), 208853eba6SDhruva Gole K3_MAP_REGION_FLAT(WKUP_CTRL_MMR0_BASE, WKUP_CTRL_MMR0_SIZE, MT_DEVICE | MT_RW | MT_SECURE), 218853eba6SDhruva Gole K3_MAP_REGION_FLAT(MAILBOX_SHMEM_REGION_BASE, MAILBOX_SHMEM_REGION_SIZE, MT_DEVICE | MT_RW | MT_SECURE), 2221b14fd2SDhruva Gole { /* sentinel */ } 2321b14fd2SDhruva Gole }; 2421b14fd2SDhruva Gole 2521b14fd2SDhruva Gole int ti_soc_init(void) 2621b14fd2SDhruva Gole { 27*987c9b04SDhruva Gole struct ti_sci_msg_version version; 28*987c9b04SDhruva Gole int ret; 29*987c9b04SDhruva Gole 30a5cf0ba4SDhruva Gole generic_delay_timer_init(); 31*987c9b04SDhruva Gole 32*987c9b04SDhruva Gole ret = ti_sci_boot_notification(); 33*987c9b04SDhruva Gole if (ret != 0) { 34*987c9b04SDhruva Gole ERROR("%s: Failed to receive boot notification (%d)\n", __func__, ret); 35*987c9b04SDhruva Gole return ret; 36*987c9b04SDhruva Gole } 37*987c9b04SDhruva Gole 38*987c9b04SDhruva Gole ret = ti_sci_get_revision(&version); 39*987c9b04SDhruva Gole if (ret != 0) { 40*987c9b04SDhruva Gole ERROR("%s: Failed to get revision (%d)\n", __func__, ret); 41*987c9b04SDhruva Gole return ret; 42*987c9b04SDhruva Gole } 43*987c9b04SDhruva Gole 44*987c9b04SDhruva Gole NOTICE("SYSFW ABI: %d.%d (firmware rev 0x%04x '%s')\n", 45*987c9b04SDhruva Gole version.abi_major, version.abi_minor, 46*987c9b04SDhruva Gole version.firmware_revision, 47*987c9b04SDhruva Gole version.firmware_description); 48*987c9b04SDhruva Gole 4921b14fd2SDhruva Gole return 0; 5021b14fd2SDhruva Gole } 51