blob: 684a3c47d81924866bf3c5092b5f848b63c5b162 [file] [log] [blame]
Angel Ponsa2ee7612020-04-04 18:51:15 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Furquan Shaikhf8142152015-08-05 17:05:26 -07002
3#include <arch/cache.h>
Furquan Shaikhf8142152015-08-05 17:05:26 -07004#include <assert.h>
Julius Werner0a8da742019-08-02 12:45:24 -07005#include <bl31.h>
Furquan Shaikhf8142152015-08-05 17:05:26 -07006#include <soc/addressmap.h>
Andre Heiderfeefcca2018-02-15 18:15:17 +01007#include <soc/console_uart.h>
Elyes HAOUAS30818552019-06-23 07:03:59 +02008#include <types.h>
Furquan Shaikhf8142152015-08-05 17:05:26 -07009
10typedef struct bl31_plat_params {
Andre Heiderfeefcca2018-02-15 18:15:17 +010011 /* TZ memory size */
12 uint64_t tzdram_size;
13 /* TZ memory base */
14 uint64_t tzdram_base;
15 /* UART port ID */
16 int uart_id;
Furquan Shaikhf8142152015-08-05 17:05:26 -070017} bl31_plat_params_t;
18
19static bl31_plat_params_t t210_plat_params;
20
Julius Wernerb3f24b42019-05-28 21:01:37 -070021void *soc_get_bl31_plat_params(void)
Furquan Shaikhf8142152015-08-05 17:05:26 -070022{
23 uintptr_t tz_base_mib;
24 size_t tz_size_mib;
Andre Heiderfeefcca2018-02-15 18:15:17 +010025 int uart_id = 0;
Furquan Shaikhf8142152015-08-05 17:05:26 -070026
27 carveout_range(CARVEOUT_TZ, &tz_base_mib, &tz_size_mib);
28
29 assert(tz_size_mib < 4096);
Andre Heiderfeefcca2018-02-15 18:15:17 +010030
31 switch (console_uart_get_id()) {
32 case UART_ID_NONE:
33 break;
34 case UART_ID_A:
35 uart_id = 1;
36 break;
37 case UART_ID_B:
38 uart_id = 2;
39 break;
40 case UART_ID_C:
41 uart_id = 3;
42 break;
43 case UART_ID_D:
44 uart_id = 4;
45 break;
46 case UART_ID_E:
47 uart_id = 5;
48 break;
49 }
50
Furquan Shaikhf8142152015-08-05 17:05:26 -070051 t210_plat_params.tzdram_size = tz_size_mib * MiB;
Andre Heiderfeefcca2018-02-15 18:15:17 +010052 t210_plat_params.tzdram_base = tz_base_mib * MiB;
53 t210_plat_params.uart_id = uart_id;
Furquan Shaikhf8142152015-08-05 17:05:26 -070054
55 dcache_clean_by_mva(&t210_plat_params, sizeof(t210_plat_params));
56
57 return &t210_plat_params;
58}