]>
Commit | Line | Data |
---|---|---|
83d290c5 | 1 | /* SPDX-License-Identifier: GPL-2.0+ */ |
74652cf6 | 2 | /* |
7aaa5a60 | 3 | * (C) Copyright 2010-2015 |
74652cf6 | 4 | * NVIDIA Corporation <www.nvidia.com> |
74652cf6 TW |
5 | */ |
6 | #include <asm/types.h> | |
03de305e | 7 | #include <asm/arch-tegra/tegra.h> |
74652cf6 TW |
8 | |
9 | /* Stabilization delays, in usec */ | |
b2871037 | 10 | #define PLL_STABILIZATION_DELAY (300) |
74652cf6 TW |
11 | #define IO_STABILIZATION_DELAY (1000) |
12 | ||
74652cf6 TW |
13 | #define PLLX_ENABLED (1 << 30) |
14 | #define CCLK_BURST_POLICY 0x20008888 | |
15 | #define SUPER_CCLK_DIVIDER 0x80000000 | |
16 | ||
17 | /* Calculate clock fractional divider value from ref and target frequencies */ | |
b2871037 | 18 | #define CLK_DIVIDER(REF, FREQ) ((((REF) * 2) / FREQ) - 2) |
74652cf6 TW |
19 | |
20 | /* Calculate clock frequency value from reference and clock divider value */ | |
b2871037 | 21 | #define CLK_FREQUENCY(REF, REG) (((REF) * 2) / (REG + 2)) |
74652cf6 TW |
22 | |
23 | /* AVP/CPU ID */ | |
24 | #define PG_UP_TAG_0_PID_CPU 0x55555555 /* CPU aka "a9" aka "mpcore" */ | |
b2871037 | 25 | #define PG_UP_TAG_0 0x0 |
74652cf6 | 26 | |
b2871037 TW |
27 | /* AP base physical address of internal SRAM */ |
28 | #define NV_PA_BASE_SRAM 0x40000000 | |
74652cf6 TW |
29 | |
30 | #define EXCEP_VECTOR_CPU_RESET_VECTOR (NV_PA_EVP_BASE + 0x100) | |
31 | #define CSITE_CPU_DBG0_LAR (NV_PA_CSITE_BASE + 0x10FB0) | |
32 | #define CSITE_CPU_DBG1_LAR (NV_PA_CSITE_BASE + 0x12FB0) | |
33 | ||
34 | #define FLOW_CTLR_HALT_COP_EVENTS (NV_PA_FLOW_BASE + 4) | |
35 | #define FLOW_MODE_STOP 2 | |
36 | #define HALT_COP_EVENT_JTAG (1 << 28) | |
37 | #define HALT_COP_EVENT_IRQ_1 (1 << 11) | |
38 | #define HALT_COP_EVENT_FIQ_1 (1 << 9) | |
39 | ||
210576fc SG |
40 | /* This is the main entry into U-Boot, used by the Cortex-A9 */ |
41 | extern void _start(void); | |
d515362d SG |
42 | |
43 | /** | |
49493cb7 | 44 | * Works out the SOC/SKU type used for clocks settings |
d515362d | 45 | * |
185f812c | 46 | * Return: SOC type - see TEGRA_SOC... |
d515362d | 47 | */ |
49493cb7 TW |
48 | int tegra_get_chip_sku(void); |
49 | ||
50 | /** | |
51 | * Returns the pure SOC (chip ID) from the HIDREV register | |
52 | * | |
185f812c | 53 | * Return: SOC ID - see CHIPID_TEGRAxx... |
49493cb7 TW |
54 | */ |
55 | int tegra_get_chip(void); | |
56 | ||
57 | /** | |
58 | * Returns the SKU ID from the sku_info register | |
59 | * | |
185f812c | 60 | * Return: SKU ID - see SKU_ID_Txx... |
49493cb7 TW |
61 | */ |
62 | int tegra_get_sku_info(void); | |
63 | ||
64 | /* Do any chip-specific cache config */ | |
d0edce4f | 65 | void config_cache(void); |
df3443df | 66 | |
73c38934 SW |
67 | #if defined(CONFIG_TEGRA_SUPPORT_NON_SECURE) |
68 | bool tegra_cpu_is_non_secure(void); | |
69 | #endif |