xref: /rk3399_ARM-atf/plat/hisilicon/hikey/include/hisi_sram_map.h (revision 32e9fc1a325952738af33b2b3e73fd0448636034)
1*32e9fc1aSHaojian Zhuang /*
2*32e9fc1aSHaojian Zhuang  * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
3*32e9fc1aSHaojian Zhuang  *
4*32e9fc1aSHaojian Zhuang  * SPDX-License-Identifier: BSD-3-Clause
5*32e9fc1aSHaojian Zhuang  */
6*32e9fc1aSHaojian Zhuang 
7*32e9fc1aSHaojian Zhuang #ifndef __HISI_SRAM_MAP_H__
8*32e9fc1aSHaojian Zhuang #define __HISI_SRAM_MAP_H__
9*32e9fc1aSHaojian Zhuang 
10*32e9fc1aSHaojian Zhuang /*
11*32e9fc1aSHaojian Zhuang  * SRAM Memory Region Layout
12*32e9fc1aSHaojian Zhuang  *
13*32e9fc1aSHaojian Zhuang  *  +-----------------------+
14*32e9fc1aSHaojian Zhuang  *  |  Low Power Mode       | 7KB
15*32e9fc1aSHaojian Zhuang  *  +-----------------------+
16*32e9fc1aSHaojian Zhuang  *  |  Secure OS            | 64KB
17*32e9fc1aSHaojian Zhuang  *  +-----------------------+
18*32e9fc1aSHaojian Zhuang  *  |  Software Flag        | 1KB
19*32e9fc1aSHaojian Zhuang  *  +-----------------------+
20*32e9fc1aSHaojian Zhuang  *
21*32e9fc1aSHaojian Zhuang  */
22*32e9fc1aSHaojian Zhuang 
23*32e9fc1aSHaojian Zhuang #define SOC_SRAM_OFF_BASE_ADDR		(0xFFF80000)
24*32e9fc1aSHaojian Zhuang 
25*32e9fc1aSHaojian Zhuang /* PM Section: 7KB */
26*32e9fc1aSHaojian Zhuang #define SRAM_PM_ADDR			(SOC_SRAM_OFF_BASE_ADDR)
27*32e9fc1aSHaojian Zhuang #define SRAM_PM_SIZE			(0x00001C00)
28*32e9fc1aSHaojian Zhuang 
29*32e9fc1aSHaojian Zhuang /* TEE OS Section: 64KB */
30*32e9fc1aSHaojian Zhuang #define SRAM_TEEOS_ADDR			(SRAM_PM_ADDR + SRAM_PM_SIZE)
31*32e9fc1aSHaojian Zhuang #define SRAM_TEEOS_SIZE			(0x00010000)
32*32e9fc1aSHaojian Zhuang 
33*32e9fc1aSHaojian Zhuang /* General Use Section: 1KB */
34*32e9fc1aSHaojian Zhuang #define SRAM_GENERAL_ADDR		(SRAM_TEEOS_ADDR + SRAM_TEEOS_SIZE)
35*32e9fc1aSHaojian Zhuang #define SRAM_GENERAL_SIZE		(0x00000400)
36*32e9fc1aSHaojian Zhuang 
37*32e9fc1aSHaojian Zhuang /*
38*32e9fc1aSHaojian Zhuang  * General Usage Section Layout:
39*32e9fc1aSHaojian Zhuang  *
40*32e9fc1aSHaojian Zhuang  *  +-----------------------+
41*32e9fc1aSHaojian Zhuang  *  |  AP boot flag         | 64B
42*32e9fc1aSHaojian Zhuang  *  +-----------------------+
43*32e9fc1aSHaojian Zhuang  *  |  DICC flag            | 32B
44*32e9fc1aSHaojian Zhuang  *  +-----------------------+
45*32e9fc1aSHaojian Zhuang  *  |  Soft flag            | 256B
46*32e9fc1aSHaojian Zhuang  *  +-----------------------+
47*32e9fc1aSHaojian Zhuang  *  |  Thermal flag         | 128B
48*32e9fc1aSHaojian Zhuang  *  +-----------------------+
49*32e9fc1aSHaojian Zhuang  *  |  CSHELL               | 4B
50*32e9fc1aSHaojian Zhuang  *  +-----------------------+
51*32e9fc1aSHaojian Zhuang  *  |  Uart Switching       | 4B
52*32e9fc1aSHaojian Zhuang  *  +-----------------------+
53*32e9fc1aSHaojian Zhuang  *  |  ICC                  | 1024B
54*32e9fc1aSHaojian Zhuang  *  +-----------------------+
55*32e9fc1aSHaojian Zhuang  *  |  Memory Management    | 1024B
56*32e9fc1aSHaojian Zhuang  *  +-----------------------+
57*32e9fc1aSHaojian Zhuang  *  |  IFC                  | 32B
58*32e9fc1aSHaojian Zhuang  *  +-----------------------+
59*32e9fc1aSHaojian Zhuang  *  |  HIFI                 | 32B
60*32e9fc1aSHaojian Zhuang  *  +-----------------------+
61*32e9fc1aSHaojian Zhuang  *  |  DDR capacity         | 4B
62*32e9fc1aSHaojian Zhuang  *  +-----------------------+
63*32e9fc1aSHaojian Zhuang  *  |  Reserved             |
64*32e9fc1aSHaojian Zhuang  *  +-----------------------+
65*32e9fc1aSHaojian Zhuang  *
66*32e9fc1aSHaojian Zhuang  */
67*32e9fc1aSHaojian Zhuang 
68*32e9fc1aSHaojian Zhuang /* App Core Boot Flags */
69*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_START_ADDR		(SRAM_GENERAL_ADDR)
70*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_START_SIZE		(64)
71*32e9fc1aSHaojian Zhuang 
72*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_SRESET_FLAG_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x0000)
73*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_SECOND_CPU_BOOT_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x0004)
74*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_READY_FLAG_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x0008)
75*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_FASTBOOT_ENTRY_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x000C)
76*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_PD_CHARGE_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x0010)
77*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_DBG_ALARM_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x0014)
78*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_CHIP_ADDR			(MEMORY_AXI_ACPU_START_ADDR + 0x0018)
79*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_BOARD_TYPE_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x001C)
80*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_BOARD_ID_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x0020)
81*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_CHARGETYPE_FLAG_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x0024)
82*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_COLD_START_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x0028)
83*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_ANDROID_REBOOT_FLAG_ADDR	(MEMORY_AXI_ACPU_START_ADDR + 0x002C)
84*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_WDTRST_REBOOT_FLAG_ADDR	(MEMORY_AXI_ACPU_START_ADDR + 0x0030)
85*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_ABNRST_BITMAP_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x0034)
86*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_32K_CLK_TYPE_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x0038)
87*32e9fc1aSHaojian Zhuang #define AXI_MODEM_PANIC_FLAG_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x003C)
88*32e9fc1aSHaojian Zhuang #define AXI_MODEM_PANIC_FLAG			(0x68697369)
89*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_END_ADDR		(AXI_MODEM_PANIC_FLAG_ADDR + 4)
90*32e9fc1aSHaojian Zhuang 
91*32e9fc1aSHaojian Zhuang /* DICC Flags */
92*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_DICC_ADDR			(MEMORY_AXI_ACPU_START_ADDR + MEMORY_AXI_ACPU_START_SIZE)
93*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_DICC_SIZE			(32)
94*32e9fc1aSHaojian Zhuang 
95*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_SOFT_FLAG_ADDR		(MEMORY_AXI_DICC_ADDR + MEMORY_AXI_DICC_SIZE)
96*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_SOFT_FLAG_SIZE		(256)
97*32e9fc1aSHaojian Zhuang 
98*32e9fc1aSHaojian Zhuang /* Thermal Flags */
99*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_TEMP_PROTECT_ADDR		(MEMORY_AXI_SOFT_FLAG_ADDR + MEMORY_AXI_SOFT_FLAG_SIZE)
100*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_TEMP_PROTECT_SIZE		(128)
101*32e9fc1aSHaojian Zhuang 
102*32e9fc1aSHaojian Zhuang /* CSHELL */
103*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_USB_CSHELL_ADDR		(MEMORY_AXI_TEMP_PROTECT_ADDR + MEMORY_AXI_TEMP_PROTECT_SIZE)
104*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_USB_CSHELL_SIZE		(4)
105*32e9fc1aSHaojian Zhuang 
106*32e9fc1aSHaojian Zhuang /* Uart and A/C Shell Switch Flags */
107*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_UART_INOUT_ADDR		(MEMORY_AXI_USB_CSHELL_ADDR + MEMORY_AXI_USB_CSHELL_SIZE)
108*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_UART_INOUT_SIZE		(4)
109*32e9fc1aSHaojian Zhuang 
110*32e9fc1aSHaojian Zhuang /* IFC Flags */
111*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_IFC_ADDR			(MEMORY_AXI_UART_INOUT_ADDR + MEMORY_AXI_UART_INOUT_SIZE)
112*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_IFC_SIZE			(32)
113*32e9fc1aSHaojian Zhuang 
114*32e9fc1aSHaojian Zhuang /* HIFI Data */
115*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_HIFI_ADDR			(MEMORY_AXI_IFC_ADDR + MEMORY_AXI_IFC_SIZE)
116*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_HIFI_SIZE			(32)
117*32e9fc1aSHaojian Zhuang 
118*32e9fc1aSHaojian Zhuang /* CONFIG Flags */
119*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_CONFIG_ADDR			(MEMORY_AXI_HIFI_ADDR + MEMORY_AXI_HIFI_SIZE)
120*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_CONFIG_SIZE			(32)
121*32e9fc1aSHaojian Zhuang 
122*32e9fc1aSHaojian Zhuang /* DDR Capacity Flags */
123*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_DDR_CAPACITY_ADDR		(MEMORY_AXI_CONFIG_ADDR + MEMORY_AXI_CONFIG_SIZE)
124*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_DDR_CAPACITY_SIZE		(4)
125*32e9fc1aSHaojian Zhuang 
126*32e9fc1aSHaojian Zhuang /* USB Shell Flags */
127*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_USB_SHELL_FLAG_ADDR		(MEMORY_AXI_DDR_CAPACITY_ADDR + MEMORY_AXI_DDR_CAPACITY_SIZE)
128*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_USB_SHELL_FLAG_SIZE		(4)
129*32e9fc1aSHaojian Zhuang 
130*32e9fc1aSHaojian Zhuang /* MCU WDT Switch Flag */
131*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_MCU_WDT_FLAG_ADDR		(MEMORY_AXI_USB_SHELL_FLAG_ADDR + MEMORY_AXI_USB_SHELL_FLAG_SIZE)
132*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_MCU_WDT_FLAG_SIZE		(4)
133*32e9fc1aSHaojian Zhuang 
134*32e9fc1aSHaojian Zhuang /* TLDSP Mailbox MNTN */
135*32e9fc1aSHaojian Zhuang #define SRAM_DSP_MNTN_INFO_ADDR			(MEMORY_AXI_MCU_WDT_FLAG_ADDR + MEMORY_AXI_MCU_WDT_FLAG_SIZE)
136*32e9fc1aSHaojian Zhuang #define SRAM_DSP_MNTN_SIZE			(32)
137*32e9fc1aSHaojian Zhuang 
138*32e9fc1aSHaojian Zhuang /* TLDSP ARM Mailbox Protect Flag */
139*32e9fc1aSHaojian Zhuang #define SRAM_DSP_ARM_MAILBOX_PROTECT_FLAG_ADDR	(SRAM_DSP_MNTN_INFO_ADDR + SRAM_DSP_MNTN_SIZE)
140*32e9fc1aSHaojian Zhuang #define SRAM_DSP_ARM_MAILBOX_PROTECT_FLAG_SIZE	(4)
141*32e9fc1aSHaojian Zhuang 
142*32e9fc1aSHaojian Zhuang /* RTT Sleep Flag */
143*32e9fc1aSHaojian Zhuang #define SRAM_RTT_SLEEP_FLAG_ADDR                (SRAM_DSP_ARM_MAILBOX_PROTECT_FLAG_ADDR + SRAM_DSP_ARM_MAILBOX_PROTECT_FLAG_SIZE)
144*32e9fc1aSHaojian Zhuang #define SRAM_RTT_SLEEP_FLAG_SIZE                (32)
145*32e9fc1aSHaojian Zhuang 
146*32e9fc1aSHaojian Zhuang /* LDSP Awake Flag */
147*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_LDSP_AWAKE_ADDR              (SRAM_RTT_SLEEP_FLAG_ADDR + SRAM_RTT_SLEEP_FLAG_SIZE)
148*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_LDSP_AWAKE_SIZE              (4)
149*32e9fc1aSHaojian Zhuang 
150*32e9fc1aSHaojian Zhuang #define NVUPDATE_SUCCESS			0x5555AAAA
151*32e9fc1aSHaojian Zhuang #define NVUPDATE_FAILURE			0xAAAA5555
152*32e9fc1aSHaojian Zhuang 
153*32e9fc1aSHaojian Zhuang /*
154*32e9fc1aSHaojian Zhuang  * Low Power Mode Region
155*32e9fc1aSHaojian Zhuang  */
156*32e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_SPACE_ADDR		(SRAM_PM_ADDR)
157*32e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_SPACE_SIZE		(SRAM_PM_SIZE)
158*32e9fc1aSHaojian Zhuang 
159*32e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_MEM_BASE		(PWRCTRL_ACPU_ASM_SPACE_ADDR)
160*32e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_MEM_SIZE		(PWRCTRL_ACPU_ASM_SPACE_SIZE)
161*32e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_CODE_BASE		(PWRCTRL_ACPU_ASM_MEM_BASE + 0x200)
162*32e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_DATA_BASE		(PWRCTRL_ACPU_ASM_MEM_BASE + 0xE00)
163*32e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_DATA_SIZE		(0xE00)
164*32e9fc1aSHaojian Zhuang 
165*32e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_D_C0_ADDR		(PWRCTRL_ACPU_ASM_DATA_BASE)
166*32e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_D_C0_MMU_PARA_AD	(PWRCTRL_ACPU_ASM_DATA_BASE + 0)
167*32e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_D_ARM_PARA_AD		(PWRCTRL_ACPU_ASM_DATA_BASE + 0x20)
168*32e9fc1aSHaojian Zhuang 
169*32e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_D_COMM_ADDR		(PWRCTRL_ACPU_ASM_DATA_BASE + 0x700)
170*32e9fc1aSHaojian Zhuang 
171*32e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_REBOOT			(PWRCTRL_ACPU_ASM_D_COMM_ADDR)
172*32e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_REBOOT_SIZE		(0x200)
173*32e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_SLICE_BAK_ADDR		(PWRCTRL_ACPU_REBOOT + PWRCTRL_ACPU_REBOOT_SIZE)
174*32e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_SLICE_BAK_SIZE		(4)
175*32e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_DEBUG_FLAG_ADDR	(PWRCTRL_ACPU_ASM_SLICE_BAK_ADDR + PWRCTRL_ACPU_ASM_SLICE_BAK_SIZE)
176*32e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_DEBUG_FLAG_SIZE	(4)
177*32e9fc1aSHaojian Zhuang #define EXCH_A_CORE_POWRCTRL_CONV_ADDR		(PWRCTRL_ACPU_ASM_DEBUG_FLAG_ADDR + PWRCTRL_ACPU_ASM_DEBUG_FLAG_SIZE)
178*32e9fc1aSHaojian Zhuang #define EXCH_A_CORE_POWRCTRL_CONV_SIZE		(4)
179*32e9fc1aSHaojian Zhuang 
180*32e9fc1aSHaojian Zhuang /*
181*32e9fc1aSHaojian Zhuang  * Below region memory mapping is:
182*32e9fc1aSHaojian Zhuang  * 4 + 12 + 16 + 28 + 28 + 16 + 28 + 12 + 24 + 20 + 64 +
183*32e9fc1aSHaojian Zhuang  * 4 + 4 + 4 + 4 + 12 + 4 + 4 + 4 + 4 + 16 + 4 + 0x2BC +
184*32e9fc1aSHaojian Zhuang  * 24 + 20 + 12 + 16
185*32e9fc1aSHaojian Zhuang  */
186*32e9fc1aSHaojian Zhuang 
187*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_CPU_IDLE_ADDR		(EXCH_A_CORE_POWRCTRL_CONV_ADDR + EXCH_A_CORE_POWRCTRL_CONV_SIZE)
188*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_CPU_IDLE_SIZE		(4)
189*32e9fc1aSHaojian Zhuang 
190*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_CUR_FREQ_ADDR		(MEMORY_AXI_CPU_IDLE_ADDR + MEMORY_AXI_CPU_IDLE_SIZE)
191*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_CUR_FREQ_SIZE		(12)
192*32e9fc1aSHaojian Zhuang 
193*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_FREQ_VOL_ADDR		(MEMORY_AXI_CUR_FREQ_ADDR + MEMORY_AXI_CUR_FREQ_SIZE)
194*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_FREQ_VOL_SIZE		(16 + 28 + 28)
195*32e9fc1aSHaojian Zhuang 
196*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_DDR_FREQ_VOL_ADDR		(MEMORY_AXI_ACPU_FREQ_VOL_ADDR + MEMORY_AXI_ACPU_FREQ_VOL_SIZE)
197*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_DDR_FREQ_VOL_SIZE		(16 + 28)
198*32e9fc1aSHaojian Zhuang 
199*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_FIQ_TEST_ADDR		(MEMORY_AXI_DDR_FREQ_VOL_ADDR + MEMORY_AXI_DDR_FREQ_VOL_SIZE)
200*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_FIQ_TEST_SIZE		(12)
201*32e9fc1aSHaojian Zhuang 
202*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_FIQ_CPU_INFO_ADDR	(MEMORY_AXI_ACPU_FIQ_TEST_ADDR + MEMORY_AXI_ACPU_FIQ_TEST_SIZE)
203*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_FIQ_CPU_INFO_SIZE	(24)
204*32e9fc1aSHaojian Zhuang 
205*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_FIQ_DEBUG_INFO_ADDR	(MEMORY_AXI_ACPU_FIQ_CPU_INFO_ADDR + MEMORY_AXI_ACPU_FIQ_CPU_INFO_SIZE)
206*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_FIQ_DEBUG_INFO_SIZE	(20)
207*32e9fc1aSHaojian Zhuang 
208*32e9fc1aSHaojian Zhuang #define MEMORY_FREQDUMP_ADDR			(MEMORY_AXI_ACPU_FIQ_DEBUG_INFO_ADDR + MEMORY_AXI_ACPU_FIQ_DEBUG_INFO_SIZE)
209*32e9fc1aSHaojian Zhuang #define MEMORY_FREQDUMP_SIZE			(64)
210*32e9fc1aSHaojian Zhuang 
211*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_CCPU_LOG_ADDR		(MEMORY_FREQDUMP_ADDR + MEMORY_FREQDUMP_SIZE)
212*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_CCPU_LOG_SIZE		(4)
213*32e9fc1aSHaojian Zhuang 
214*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_MCU_LOG_ADDR			(MEMORY_AXI_CCPU_LOG_ADDR + MEMORY_AXI_CCPU_LOG_SIZE)
215*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_MCU_LOG_SIZE			(4)
216*32e9fc1aSHaojian Zhuang 
217*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_SEC_CORE_BOOT_ADDR		(MEMORY_AXI_MCU_LOG_ADDR + MEMORY_AXI_MCU_LOG_SIZE)
218*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_SEC_CORE_BOOT_SIZE		(4)
219*32e9fc1aSHaojian Zhuang 
220*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_BBP_PS_VOTE_FLAG_ADDR	(MEMORY_AXI_SEC_CORE_BOOT_ADDR + MEMORY_AXI_SEC_CORE_BOOT_SIZE)
221*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_BBP_PS_VOTE_FLAG_SIZE	(0x4)
222*32e9fc1aSHaojian Zhuang 
223*32e9fc1aSHaojian Zhuang #define POLICY_AREA_RESERVED			(MEMORY_AXI_BBP_PS_VOTE_FLAG_ADDR + MEMORY_AXI_BBP_PS_VOTE_FLAG_SIZE)
224*32e9fc1aSHaojian Zhuang #define POLICY_AREA_RESERVED_SIZE		(12)
225*32e9fc1aSHaojian Zhuang 
226*32e9fc1aSHaojian Zhuang #define DDR_POLICY_VALID_MAGIC			(POLICY_AREA_RESERVED + POLICY_AREA_RESERVED_SIZE)
227*32e9fc1aSHaojian Zhuang #define DDR_POLICY_VALID_MAGIC_SIZE		(4)
228*32e9fc1aSHaojian Zhuang 
229*32e9fc1aSHaojian Zhuang #define DDR_POLICY_MAX_NUM			(DDR_POLICY_VALID_MAGIC + DDR_POLICY_VALID_MAGIC_SIZE)
230*32e9fc1aSHaojian Zhuang #define DDR_POLICY_MAX_NUM_SIZE			(4)
231*32e9fc1aSHaojian Zhuang 
232*32e9fc1aSHaojian Zhuang #define DDR_POLICY_SUPPORT_NUM			(DDR_POLICY_MAX_NUM + DDR_POLICY_MAX_NUM_SIZE)
233*32e9fc1aSHaojian Zhuang #define DDR_POLICY_SUPPORT_NUM_SIZE		(4)
234*32e9fc1aSHaojian Zhuang 
235*32e9fc1aSHaojian Zhuang #define DDR_POLICY_CUR_POLICY			(DDR_POLICY_SUPPORT_NUM + DDR_POLICY_SUPPORT_NUM_SIZE)
236*32e9fc1aSHaojian Zhuang #define DDR_POLICY_CUR_POLICY_SIZE		(4)
237*32e9fc1aSHaojian Zhuang 
238*32e9fc1aSHaojian Zhuang #define ACPU_POLICY_VALID_MAGIC			(DDR_POLICY_CUR_POLICY + DDR_POLICY_CUR_POLICY_SIZE)
239*32e9fc1aSHaojian Zhuang #define ACPU_POLICY_VALID_MAGIC_SIZE		(4)
240*32e9fc1aSHaojian Zhuang 
241*32e9fc1aSHaojian Zhuang #define ACPU_POLICY_MAX_NUM			(ACPU_POLICY_VALID_MAGIC + ACPU_POLICY_VALID_MAGIC_SIZE)
242*32e9fc1aSHaojian Zhuang #define ACPU_POLICY_MAX_NUM_SIZE		(4)
243*32e9fc1aSHaojian Zhuang 
244*32e9fc1aSHaojian Zhuang #define ACPU_POLICY_SUPPORT_NUM			(ACPU_POLICY_MAX_NUM + ACPU_POLICY_MAX_NUM_SIZE)
245*32e9fc1aSHaojian Zhuang #define ACPU_POLICY_SUPPORT_NUM_SIZE		(4)
246*32e9fc1aSHaojian Zhuang 
247*32e9fc1aSHaojian Zhuang #define ACPU_POLICY_CUR_POLICY			(ACPU_POLICY_SUPPORT_NUM + ACPU_POLICY_SUPPORT_NUM_SIZE)
248*32e9fc1aSHaojian Zhuang #define ACPU_POLICY_CUR_POLICY_SIZE		(4)
249*32e9fc1aSHaojian Zhuang 
250*32e9fc1aSHaojian Zhuang #define LPDDR_OPTION_ADDR			(ACPU_POLICY_CUR_POLICY + ACPU_POLICY_CUR_POLICY_SIZE)
251*32e9fc1aSHaojian Zhuang #define LPDDR_OPTION_SIZE			(4)
252*32e9fc1aSHaojian Zhuang 
253*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_DDR_DDL_ADDR			(LPDDR_OPTION_ADDR + LPDDR_OPTION_SIZE)
254*32e9fc1aSHaojian Zhuang #define MEMORY_AXI_DDR_DDL_SIZE			(0x2BC)
255*32e9fc1aSHaojian Zhuang 
256*32e9fc1aSHaojian Zhuang #define DDR_TEST_DFS_ADDR			(MEMORY_AXI_DDR_DDL_ADDR + MEMORY_AXI_DDR_DDL_SIZE)
257*32e9fc1aSHaojian Zhuang #define DDR_TEST_DFS_ADDR_SIZE			(4)
258*32e9fc1aSHaojian Zhuang 
259*32e9fc1aSHaojian Zhuang #define DDR_TEST_DFS_TIMES_ADDR			(DDR_TEST_DFS_ADDR + DDR_TEST_DFS_ADDR_SIZE)
260*32e9fc1aSHaojian Zhuang #define DDR_TEST_DFS_TIMES_ADDR_SIZE		(4)
261*32e9fc1aSHaojian Zhuang 
262*32e9fc1aSHaojian Zhuang #define DDR_TEST_QOS_ADDR			(DDR_TEST_DFS_TIMES_ADDR + DDR_TEST_DFS_TIMES_ADDR_SIZE)
263*32e9fc1aSHaojian Zhuang #define DDR_TEST_QOS_ADDR_SIZE			(4)
264*32e9fc1aSHaojian Zhuang 
265*32e9fc1aSHaojian Zhuang #define DDR_TEST_FUN_ADDR			(DDR_TEST_QOS_ADDR + DDR_TEST_QOS_ADDR_SIZE)
266*32e9fc1aSHaojian Zhuang #define DDR_TEST_FUN_ADDR_SIZE			(4)
267*32e9fc1aSHaojian Zhuang 
268*32e9fc1aSHaojian Zhuang #define BOARD_TYPE_ADDR				(DDR_TEST_FUN_ADDR + DDR_TEST_FUN_ADDR_SIZE)
269*32e9fc1aSHaojian Zhuang #define BOARD_ADDR_SIZE				(4)
270*32e9fc1aSHaojian Zhuang #define DDR_DFS_FREQ_ADDR			(BOARD_TYPE_ADDR + BOARD_ADDR_SIZE)
271*32e9fc1aSHaojian Zhuang #define DDR_DFS_FREQ_SIZE			(4)
272*32e9fc1aSHaojian Zhuang 
273*32e9fc1aSHaojian Zhuang #define DDR_PASR_ADDR				(DDR_DFS_FREQ_ADDR + DDR_DFS_FREQ_SIZE)
274*32e9fc1aSHaojian Zhuang #define DDR_PASR_SIZE				(20)
275*32e9fc1aSHaojian Zhuang 
276*32e9fc1aSHaojian Zhuang #define ACPU_DFS_FREQ_ADDR			(DDR_PASR_ADDR + DDR_PASR_SIZE)
277*32e9fc1aSHaojian Zhuang #define ACPU_DFS_FREQ_ADDR_SIZE			(12)
278*32e9fc1aSHaojian Zhuang 
279*32e9fc1aSHaojian Zhuang #define ACPU_CHIP_MAX_FREQ			(ACPU_DFS_FREQ_ADDR + ACPU_DFS_FREQ_ADDR_SIZE)
280*32e9fc1aSHaojian Zhuang #define ACPU_CHIP_MAX_FREQ_SIZE			(4)
281*32e9fc1aSHaojian Zhuang 
282*32e9fc1aSHaojian Zhuang #define MEMORY_MEDPLL_STATE_ADDR		(ACPU_CHIP_MAX_FREQ + ACPU_CHIP_MAX_FREQ_SIZE)
283*32e9fc1aSHaojian Zhuang #define MEMORY_MEDPLL_STATE_SIZE		(8)
284*32e9fc1aSHaojian Zhuang 
285*32e9fc1aSHaojian Zhuang #define MEMORY_CCPU_LOAD_FLAG_ADDR		(MEMORY_MEDPLL_STATE_ADDR + MEMORY_MEDPLL_STATE_SIZE)
286*32e9fc1aSHaojian Zhuang #define MEMORY_CCPU_LOAD_FLAG_SIZE		(4)
287*32e9fc1aSHaojian Zhuang 
288*32e9fc1aSHaojian Zhuang 
289*32e9fc1aSHaojian Zhuang #define ACPU_CORE_BITS_ADDR			(MEMORY_CCPU_LOAD_FLAG_ADDR + MEMORY_CCPU_LOAD_FLAG_SIZE)
290*32e9fc1aSHaojian Zhuang #define ACPU_CORE_BITS_SIZE			(4)
291*32e9fc1aSHaojian Zhuang 
292*32e9fc1aSHaojian Zhuang #define ACPU_CLUSTER_IDLE_ADDR			(ACPU_CORE_BITS_ADDR + ACPU_CORE_BITS_SIZE)
293*32e9fc1aSHaojian Zhuang #define ACPU_CLUSTER_IDLE_SIZE			(4)
294*32e9fc1aSHaojian Zhuang 
295*32e9fc1aSHaojian Zhuang #define ACPU_A53_FLAGS_ADDR			(ACPU_CLUSTER_IDLE_ADDR + ACPU_CLUSTER_IDLE_SIZE)
296*32e9fc1aSHaojian Zhuang #define ACPU_A53_FLAGS_SIZE			(4)
297*32e9fc1aSHaojian Zhuang 
298*32e9fc1aSHaojian Zhuang #define ACPU_POWER_STATE_QOS_ADDR		(ACPU_A53_FLAGS_ADDR+ACPU_A53_FLAGS_SIZE)
299*32e9fc1aSHaojian Zhuang #define ACPU_POWER_STATE_QOS_SIZE		(4)
300*32e9fc1aSHaojian Zhuang 
301*32e9fc1aSHaojian Zhuang #define ACPU_UNLOCK_CORE_FLAGS_ADDR		(ACPU_POWER_STATE_QOS_ADDR+ACPU_POWER_STATE_QOS_SIZE)
302*32e9fc1aSHaojian Zhuang #define ACPU_UNLOCK_CORE_FLAGS_SIZE		(8)
303*32e9fc1aSHaojian Zhuang 
304*32e9fc1aSHaojian Zhuang #define ACPU_SUBSYS_POWERDOWN_FLAGS_ADDR	(ACPU_UNLOCK_CORE_FLAGS_ADDR + ACPU_UNLOCK_CORE_FLAGS_SIZE)
305*32e9fc1aSHaojian Zhuang #define ACPU_SUBSYS_POWERDOWN_FLAGS_SIZE	(4)
306*32e9fc1aSHaojian Zhuang 
307*32e9fc1aSHaojian Zhuang #define ACPU_CORE_POWERDOWN_FLAGS_ADDR		(ACPU_SUBSYS_POWERDOWN_FLAGS_ADDR + ACPU_SUBSYS_POWERDOWN_FLAGS_SIZE)
308*32e9fc1aSHaojian Zhuang #define ACPU_CORE_POWERDOWN_FLAGS_SIZE		(4)
309*32e9fc1aSHaojian Zhuang 
310*32e9fc1aSHaojian Zhuang #define ACPU_CLUSTER_POWERDOWN_FLAGS_ADDR	(ACPU_CORE_POWERDOWN_FLAGS_ADDR + ACPU_CORE_POWERDOWN_FLAGS_SIZE)
311*32e9fc1aSHaojian Zhuang #define ACPU_CLUSTER_POWERDOWN_FLAGS_SIZE	(4)
312*32e9fc1aSHaojian Zhuang 
313*32e9fc1aSHaojian Zhuang #define ACPU_ARM64_FLAGA			(ACPU_CLUSTER_POWERDOWN_FLAGS_ADDR + ACPU_CLUSTER_POWERDOWN_FLAGS_SIZE)
314*32e9fc1aSHaojian Zhuang #define ACPU_ARM64_FLAGA_SIZE			(4)
315*32e9fc1aSHaojian Zhuang 
316*32e9fc1aSHaojian Zhuang #define ACPU_ARM64_FLAGB			(ACPU_ARM64_FLAGA + ACPU_ARM64_FLAGA_SIZE)
317*32e9fc1aSHaojian Zhuang #define ACPU_ARM64_FLAGB_SIZE			(4)
318*32e9fc1aSHaojian Zhuang 
319*32e9fc1aSHaojian Zhuang #define MCU_EXCEPTION_FLAGS_ADDR		(ACPU_ARM64_FLAGB + ACPU_ARM64_FLAGB_SIZE)
320*32e9fc1aSHaojian Zhuang #define MCU_EXCEPTION_FLAGS_SIZE		(4)
321*32e9fc1aSHaojian Zhuang 
322*32e9fc1aSHaojian Zhuang #define ACPU_MASTER_CORE_STATE_ADDR		(MCU_EXCEPTION_FLAGS_ADDR + MCU_EXCEPTION_FLAGS_SIZE)
323*32e9fc1aSHaojian Zhuang #define ACPU_MASTER_CORE_STATE_SIZE		(4)
324*32e9fc1aSHaojian Zhuang 
325*32e9fc1aSHaojian Zhuang #define PWRCTRL_AXI_RESERVED_ADDR		(ACPU_MASTER_CORE_STATE_ADDR + ACPU_MASTER_CORE_STATE_SIZE)
326*32e9fc1aSHaojian Zhuang 
327*32e9fc1aSHaojian Zhuang #endif /* __HISI_SRAM_MAP_H__ */
328