xref: /rk3399_ARM-atf/plat/nvidia/tegra/include/tegra_platform.h (revision b5b2923d9d1676d6f4395cb64d6fe6ca3f4109d4)
1e954ab8fSVarun Wadekar /*
293c78ed2SAntonio Nino Diaz  * Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
3*b5b2923dSVarun Wadekar  * Copyright (c) 2020, NVIDIA Corporation. All rights reserved.
4e954ab8fSVarun Wadekar  *
582cb2c1aSdp-arm  * SPDX-License-Identifier: BSD-3-Clause
6e954ab8fSVarun Wadekar  */
7e954ab8fSVarun Wadekar 
8c3cf06f1SAntonio Nino Diaz #ifndef TEGRA_PLATFORM_H
9c3cf06f1SAntonio Nino Diaz #define TEGRA_PLATFORM_H
10e954ab8fSVarun Wadekar 
1193c78ed2SAntonio Nino Diaz #include <cdefs.h>
126e756f6dSAmbroise Vincent #include <lib/utils_def.h>
13c62be079SAnthony Zhou #include <stdbool.h>
14d3b71331SMarvin Hsu 
15d3b71331SMarvin Hsu /*******************************************************************************
16d3b71331SMarvin Hsu  * Tegra major, minor version helper macros
17d3b71331SMarvin Hsu  ******************************************************************************/
18d3b71331SMarvin Hsu #define MAJOR_VERSION_SHIFT		U(0x4)
19d3b71331SMarvin Hsu #define MAJOR_VERSION_MASK		U(0xF)
20d3b71331SMarvin Hsu #define MINOR_VERSION_SHIFT		U(0x10)
21d3b71331SMarvin Hsu #define MINOR_VERSION_MASK		U(0xF)
22d3b71331SMarvin Hsu #define CHIP_ID_SHIFT			U(8)
23d3b71331SMarvin Hsu #define CHIP_ID_MASK			U(0xFF)
24d3b71331SMarvin Hsu #define PRE_SI_PLATFORM_SHIFT		U(0x14)
25d3b71331SMarvin Hsu #define PRE_SI_PLATFORM_MASK		U(0xF)
26e954ab8fSVarun Wadekar 
27c195fec6SHarvey Hsieh /*******************************************************************************
28d3b71331SMarvin Hsu  * Tegra chip ID values
29c195fec6SHarvey Hsieh  ******************************************************************************/
30c195fec6SHarvey Hsieh #define TEGRA_CHIPID_TEGRA13		U(0x13)
31c195fec6SHarvey Hsieh #define TEGRA_CHIPID_TEGRA21		U(0x21)
32c195fec6SHarvey Hsieh #define TEGRA_CHIPID_TEGRA18		U(0x18)
33c195fec6SHarvey Hsieh 
34*b5b2923dSVarun Wadekar /*******************************************************************************
35*b5b2923dSVarun Wadekar  * JEDEC Standard Manufacturer's Identification Code and Bank ID
36*b5b2923dSVarun Wadekar  ******************************************************************************/
37*b5b2923dSVarun Wadekar #define JEDEC_NVIDIA_MFID		U(0x6B)
38*b5b2923dSVarun Wadekar #define JEDEC_NVIDIA_BKID		U(3)
39*b5b2923dSVarun Wadekar 
40d5dfdeb6SJulius Werner #ifndef __ASSEMBLER__
41c195fec6SHarvey Hsieh 
42c195fec6SHarvey Hsieh /*
43c195fec6SHarvey Hsieh  * Tegra chip ID major/minor identifiers
44ea6dec5dSVarun Wadekar  */
45ea6dec5dSVarun Wadekar uint32_t tegra_get_chipid_major(void);
46ea6dec5dSVarun Wadekar uint32_t tegra_get_chipid_minor(void);
47ea6dec5dSVarun Wadekar 
48ea6dec5dSVarun Wadekar /*
49d3b71331SMarvin Hsu  * Tegra chip ID identifiers
50e954ab8fSVarun Wadekar  */
51d3b71331SMarvin Hsu bool tegra_chipid_is_t132(void);
52d3b71331SMarvin Hsu bool tegra_chipid_is_t186(void);
53d3b71331SMarvin Hsu bool tegra_chipid_is_t210(void);
54d3b71331SMarvin Hsu bool tegra_chipid_is_t210_b01(void);
55cd3de432SVarun Wadekar 
56e954ab8fSVarun Wadekar /*
57e954ab8fSVarun Wadekar  * Tegra platform identifiers
58e954ab8fSVarun Wadekar  */
59c62be079SAnthony Zhou bool tegra_platform_is_silicon(void);
60c62be079SAnthony Zhou bool tegra_platform_is_qt(void);
61c62be079SAnthony Zhou bool tegra_platform_is_emulation(void);
62c62be079SAnthony Zhou bool tegra_platform_is_linsim(void);
63c62be079SAnthony Zhou bool tegra_platform_is_fpga(void);
64c62be079SAnthony Zhou bool tegra_platform_is_unit_fpga(void);
65c62be079SAnthony Zhou bool tegra_platform_is_virt_dev_kit(void);
66e954ab8fSVarun Wadekar 
67d5dfdeb6SJulius Werner #endif /* __ASSEMBLER__ */
68c195fec6SHarvey Hsieh 
69c3cf06f1SAntonio Nino Diaz #endif /* TEGRA_PLATFORM_H */
70