Nishanth Menon | 0192f89 | 2016-10-14 01:13:34 +0000 | [diff] [blame] | 1 | /* |
Manorit Chawdhry | 7660cb5 | 2024-01-29 12:40:54 +0530 | [diff] [blame] | 2 | * Copyright (c) 2017-2024, Arm Limited and Contributors. All rights reserved. |
Dhruva Gole | 4861a66 | 2025-03-26 17:34:09 +0530 | [diff] [blame] | 3 | * Copyright (C) 2025 Texas Instruments Incorporated - https://www.ti.com/ |
| 4 | * K3 SOC specific bl31_setup |
Nishanth Menon | 0192f89 | 2016-10-14 01:13:34 +0000 | [diff] [blame] | 5 | * |
| 6 | * SPDX-License-Identifier: BSD-3-Clause |
| 7 | */ |
| 8 | |
Antonio Nino Diaz | e0f9063 | 2018-12-14 00:18:21 +0000 | [diff] [blame] | 9 | #include <common/debug.h> |
Andrew F. Davis | a513b2a | 2018-05-04 19:06:09 +0000 | [diff] [blame] | 10 | #include <ti_sci.h> |
Dhruva Gole | 4861a66 | 2025-03-26 17:34:09 +0530 | [diff] [blame] | 11 | #include <ti_sci_transport.h> |
Nishanth Menon | 0192f89 | 2016-10-14 01:13:34 +0000 | [diff] [blame] | 12 | |
Dhruva Gole | 4861a66 | 2025-03-26 17:34:09 +0530 | [diff] [blame] | 13 | #include <plat_private.h> |
Andrew Davis | 525c0b2 | 2023-10-25 16:42:27 -0500 | [diff] [blame] | 14 | |
Nishanth Menon | 3ed1b28 | 2016-10-14 01:13:45 +0000 | [diff] [blame] | 15 | /* Table of regions to map using the MMU */ |
Andrew F. Davis | 02de6d9 | 2018-10-29 10:41:28 -0500 | [diff] [blame] | 16 | const mmap_region_t plat_k3_mmap[] = { |
Andrew Davis | 525c0b2 | 2023-10-25 16:42:27 -0500 | [diff] [blame] | 17 | K3_MAP_REGION_FLAT(K3_USART_BASE, K3_USART_SIZE, MT_DEVICE | MT_RW | MT_SECURE), |
| 18 | K3_MAP_REGION_FLAT(K3_GIC_BASE, K3_GIC_SIZE, MT_DEVICE | MT_RW | MT_SECURE), |
| 19 | K3_MAP_REGION_FLAT(K3_GTC_BASE, K3_GTC_SIZE, MT_DEVICE | MT_RW | MT_SECURE), |
| 20 | K3_MAP_REGION_FLAT(SEC_PROXY_RT_BASE, SEC_PROXY_RT_SIZE, MT_DEVICE | MT_RW | MT_SECURE), |
| 21 | K3_MAP_REGION_FLAT(SEC_PROXY_SCFG_BASE, SEC_PROXY_SCFG_SIZE, MT_DEVICE | MT_RW | MT_SECURE), |
| 22 | K3_MAP_REGION_FLAT(SEC_PROXY_DATA_BASE, SEC_PROXY_DATA_SIZE, MT_DEVICE | MT_RW | MT_SECURE), |
Nishanth Menon | 3ed1b28 | 2016-10-14 01:13:45 +0000 | [diff] [blame] | 23 | { /* sentinel */ } |
| 24 | }; |
| 25 | |
Dhruva Gole | 4861a66 | 2025-03-26 17:34:09 +0530 | [diff] [blame] | 26 | int ti_soc_init(void) |
Nishanth Menon | 0192f89 | 2016-10-14 01:13:34 +0000 | [diff] [blame] | 27 | { |
Manorit Chawdhry | 7660cb5 | 2024-01-29 12:40:54 +0530 | [diff] [blame] | 28 | struct ti_sci_msg_version version; |
| 29 | int ret; |
| 30 | |
Manorit Chawdhry | 7660cb5 | 2024-01-29 12:40:54 +0530 | [diff] [blame] | 31 | ret = ti_sci_get_revision(&version); |
| 32 | if (ret) { |
| 33 | ERROR("Unable to communicate with the control firmware (%d)\n", ret); |
Dhruva Gole | 4861a66 | 2025-03-26 17:34:09 +0530 | [diff] [blame] | 34 | return ret; |
Manorit Chawdhry | 7660cb5 | 2024-01-29 12:40:54 +0530 | [diff] [blame] | 35 | } |
| 36 | |
| 37 | INFO("SYSFW ABI: %d.%d (firmware rev 0x%04x '%s')\n", |
| 38 | version.abi_major, version.abi_minor, |
| 39 | version.firmware_revision, |
| 40 | version.firmware_description); |
| 41 | |
Manorit Chawdhry | 8563077 | 2024-01-29 17:36:49 +0530 | [diff] [blame] | 42 | /* |
| 43 | * Older firmware have a timing issue with DM that crashes few TF-A |
| 44 | * lite devices while trying to make calls to DM. Since there is no way |
| 45 | * to detect what current DM version we are running - we rely on the |
| 46 | * corresponding TIFS versioning to handle this check and ensure that |
| 47 | * the platform boots up |
| 48 | * |
| 49 | * Upgrading to TIFS version 9.1.7 along with the corresponding DM from |
| 50 | * ti-linux-firmware will enable this functionality. |
| 51 | */ |
| 52 | if (version.firmware_revision > 9 || |
| 53 | (version.firmware_revision == 9 && version.sub_version > 1) || |
| 54 | (version.firmware_revision == 9 && version.sub_version == 1 && |
| 55 | version.patch_version >= 7) |
| 56 | ) { |
| 57 | if (ti_sci_device_get(PLAT_BOARD_DEVICE_ID)) { |
| 58 | WARN("Unable to take system power reference\n"); |
| 59 | } |
| 60 | } else { |
| 61 | NOTICE("Upgrade Firmwares for Power off functionality\n"); |
| 62 | } |
Dhruva Gole | 4861a66 | 2025-03-26 17:34:09 +0530 | [diff] [blame] | 63 | return 0; |
Nishanth Menon | 0192f89 | 2016-10-14 01:13:34 +0000 | [diff] [blame] | 64 | } |