xref: /rk3399_ARM-atf/plat/hisilicon/hikey/include/hisi_sram_map.h (revision 9d068f66b15e644df4961b74b965323c20f21f14)
132e9fc1aSHaojian Zhuang /*
232e9fc1aSHaojian Zhuang  * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
332e9fc1aSHaojian Zhuang  *
432e9fc1aSHaojian Zhuang  * SPDX-License-Identifier: BSD-3-Clause
532e9fc1aSHaojian Zhuang  */
632e9fc1aSHaojian Zhuang 
7*c3cf06f1SAntonio Nino Diaz #ifndef HISI_SRAM_MAP_H
8*c3cf06f1SAntonio Nino Diaz #define HISI_SRAM_MAP_H
932e9fc1aSHaojian Zhuang 
1032e9fc1aSHaojian Zhuang /*
1132e9fc1aSHaojian Zhuang  * SRAM Memory Region Layout
1232e9fc1aSHaojian Zhuang  *
1332e9fc1aSHaojian Zhuang  *  +-----------------------+
1432e9fc1aSHaojian Zhuang  *  |  Low Power Mode       | 7KB
1532e9fc1aSHaojian Zhuang  *  +-----------------------+
1632e9fc1aSHaojian Zhuang  *  |  Secure OS            | 64KB
1732e9fc1aSHaojian Zhuang  *  +-----------------------+
1832e9fc1aSHaojian Zhuang  *  |  Software Flag        | 1KB
1932e9fc1aSHaojian Zhuang  *  +-----------------------+
2032e9fc1aSHaojian Zhuang  *
2132e9fc1aSHaojian Zhuang  */
2232e9fc1aSHaojian Zhuang 
2332e9fc1aSHaojian Zhuang #define SOC_SRAM_OFF_BASE_ADDR		(0xFFF80000)
2432e9fc1aSHaojian Zhuang 
2532e9fc1aSHaojian Zhuang /* PM Section: 7KB */
2632e9fc1aSHaojian Zhuang #define SRAM_PM_ADDR			(SOC_SRAM_OFF_BASE_ADDR)
2732e9fc1aSHaojian Zhuang #define SRAM_PM_SIZE			(0x00001C00)
2832e9fc1aSHaojian Zhuang 
2932e9fc1aSHaojian Zhuang /* TEE OS Section: 64KB */
3032e9fc1aSHaojian Zhuang #define SRAM_TEEOS_ADDR			(SRAM_PM_ADDR + SRAM_PM_SIZE)
3132e9fc1aSHaojian Zhuang #define SRAM_TEEOS_SIZE			(0x00010000)
3232e9fc1aSHaojian Zhuang 
3332e9fc1aSHaojian Zhuang /* General Use Section: 1KB */
3432e9fc1aSHaojian Zhuang #define SRAM_GENERAL_ADDR		(SRAM_TEEOS_ADDR + SRAM_TEEOS_SIZE)
3532e9fc1aSHaojian Zhuang #define SRAM_GENERAL_SIZE		(0x00000400)
3632e9fc1aSHaojian Zhuang 
3732e9fc1aSHaojian Zhuang /*
3832e9fc1aSHaojian Zhuang  * General Usage Section Layout:
3932e9fc1aSHaojian Zhuang  *
4032e9fc1aSHaojian Zhuang  *  +-----------------------+
4132e9fc1aSHaojian Zhuang  *  |  AP boot flag         | 64B
4232e9fc1aSHaojian Zhuang  *  +-----------------------+
4332e9fc1aSHaojian Zhuang  *  |  DICC flag            | 32B
4432e9fc1aSHaojian Zhuang  *  +-----------------------+
4532e9fc1aSHaojian Zhuang  *  |  Soft flag            | 256B
4632e9fc1aSHaojian Zhuang  *  +-----------------------+
4732e9fc1aSHaojian Zhuang  *  |  Thermal flag         | 128B
4832e9fc1aSHaojian Zhuang  *  +-----------------------+
4932e9fc1aSHaojian Zhuang  *  |  CSHELL               | 4B
5032e9fc1aSHaojian Zhuang  *  +-----------------------+
5132e9fc1aSHaojian Zhuang  *  |  Uart Switching       | 4B
5232e9fc1aSHaojian Zhuang  *  +-----------------------+
5332e9fc1aSHaojian Zhuang  *  |  ICC                  | 1024B
5432e9fc1aSHaojian Zhuang  *  +-----------------------+
5532e9fc1aSHaojian Zhuang  *  |  Memory Management    | 1024B
5632e9fc1aSHaojian Zhuang  *  +-----------------------+
5732e9fc1aSHaojian Zhuang  *  |  IFC                  | 32B
5832e9fc1aSHaojian Zhuang  *  +-----------------------+
5932e9fc1aSHaojian Zhuang  *  |  HIFI                 | 32B
6032e9fc1aSHaojian Zhuang  *  +-----------------------+
6132e9fc1aSHaojian Zhuang  *  |  DDR capacity         | 4B
6232e9fc1aSHaojian Zhuang  *  +-----------------------+
6332e9fc1aSHaojian Zhuang  *  |  Reserved             |
6432e9fc1aSHaojian Zhuang  *  +-----------------------+
6532e9fc1aSHaojian Zhuang  *
6632e9fc1aSHaojian Zhuang  */
6732e9fc1aSHaojian Zhuang 
6832e9fc1aSHaojian Zhuang /* App Core Boot Flags */
6932e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_START_ADDR		(SRAM_GENERAL_ADDR)
7032e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_START_SIZE		(64)
7132e9fc1aSHaojian Zhuang 
7232e9fc1aSHaojian Zhuang #define MEMORY_AXI_SRESET_FLAG_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x0000)
7332e9fc1aSHaojian Zhuang #define MEMORY_AXI_SECOND_CPU_BOOT_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x0004)
7432e9fc1aSHaojian Zhuang #define MEMORY_AXI_READY_FLAG_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x0008)
7532e9fc1aSHaojian Zhuang #define MEMORY_AXI_FASTBOOT_ENTRY_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x000C)
7632e9fc1aSHaojian Zhuang #define MEMORY_AXI_PD_CHARGE_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x0010)
7732e9fc1aSHaojian Zhuang #define MEMORY_AXI_DBG_ALARM_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x0014)
7832e9fc1aSHaojian Zhuang #define MEMORY_AXI_CHIP_ADDR			(MEMORY_AXI_ACPU_START_ADDR + 0x0018)
7932e9fc1aSHaojian Zhuang #define MEMORY_AXI_BOARD_TYPE_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x001C)
8032e9fc1aSHaojian Zhuang #define MEMORY_AXI_BOARD_ID_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x0020)
8132e9fc1aSHaojian Zhuang #define MEMORY_AXI_CHARGETYPE_FLAG_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x0024)
8232e9fc1aSHaojian Zhuang #define MEMORY_AXI_COLD_START_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x0028)
8332e9fc1aSHaojian Zhuang #define MEMORY_AXI_ANDROID_REBOOT_FLAG_ADDR	(MEMORY_AXI_ACPU_START_ADDR + 0x002C)
8432e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_WDTRST_REBOOT_FLAG_ADDR	(MEMORY_AXI_ACPU_START_ADDR + 0x0030)
8532e9fc1aSHaojian Zhuang #define MEMORY_AXI_ABNRST_BITMAP_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x0034)
8632e9fc1aSHaojian Zhuang #define MEMORY_AXI_32K_CLK_TYPE_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x0038)
8732e9fc1aSHaojian Zhuang #define AXI_MODEM_PANIC_FLAG_ADDR		(MEMORY_AXI_ACPU_START_ADDR + 0x003C)
8832e9fc1aSHaojian Zhuang #define AXI_MODEM_PANIC_FLAG			(0x68697369)
8932e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_END_ADDR		(AXI_MODEM_PANIC_FLAG_ADDR + 4)
9032e9fc1aSHaojian Zhuang 
9132e9fc1aSHaojian Zhuang /* DICC Flags */
9232e9fc1aSHaojian Zhuang #define MEMORY_AXI_DICC_ADDR			(MEMORY_AXI_ACPU_START_ADDR + MEMORY_AXI_ACPU_START_SIZE)
9332e9fc1aSHaojian Zhuang #define MEMORY_AXI_DICC_SIZE			(32)
9432e9fc1aSHaojian Zhuang 
9532e9fc1aSHaojian Zhuang #define MEMORY_AXI_SOFT_FLAG_ADDR		(MEMORY_AXI_DICC_ADDR + MEMORY_AXI_DICC_SIZE)
9632e9fc1aSHaojian Zhuang #define MEMORY_AXI_SOFT_FLAG_SIZE		(256)
9732e9fc1aSHaojian Zhuang 
9832e9fc1aSHaojian Zhuang /* Thermal Flags */
9932e9fc1aSHaojian Zhuang #define MEMORY_AXI_TEMP_PROTECT_ADDR		(MEMORY_AXI_SOFT_FLAG_ADDR + MEMORY_AXI_SOFT_FLAG_SIZE)
10032e9fc1aSHaojian Zhuang #define MEMORY_AXI_TEMP_PROTECT_SIZE		(128)
10132e9fc1aSHaojian Zhuang 
10232e9fc1aSHaojian Zhuang /* CSHELL */
10332e9fc1aSHaojian Zhuang #define MEMORY_AXI_USB_CSHELL_ADDR		(MEMORY_AXI_TEMP_PROTECT_ADDR + MEMORY_AXI_TEMP_PROTECT_SIZE)
10432e9fc1aSHaojian Zhuang #define MEMORY_AXI_USB_CSHELL_SIZE		(4)
10532e9fc1aSHaojian Zhuang 
10632e9fc1aSHaojian Zhuang /* Uart and A/C Shell Switch Flags */
10732e9fc1aSHaojian Zhuang #define MEMORY_AXI_UART_INOUT_ADDR		(MEMORY_AXI_USB_CSHELL_ADDR + MEMORY_AXI_USB_CSHELL_SIZE)
10832e9fc1aSHaojian Zhuang #define MEMORY_AXI_UART_INOUT_SIZE		(4)
10932e9fc1aSHaojian Zhuang 
11032e9fc1aSHaojian Zhuang /* IFC Flags */
11132e9fc1aSHaojian Zhuang #define MEMORY_AXI_IFC_ADDR			(MEMORY_AXI_UART_INOUT_ADDR + MEMORY_AXI_UART_INOUT_SIZE)
11232e9fc1aSHaojian Zhuang #define MEMORY_AXI_IFC_SIZE			(32)
11332e9fc1aSHaojian Zhuang 
11432e9fc1aSHaojian Zhuang /* HIFI Data */
11532e9fc1aSHaojian Zhuang #define MEMORY_AXI_HIFI_ADDR			(MEMORY_AXI_IFC_ADDR + MEMORY_AXI_IFC_SIZE)
11632e9fc1aSHaojian Zhuang #define MEMORY_AXI_HIFI_SIZE			(32)
11732e9fc1aSHaojian Zhuang 
11832e9fc1aSHaojian Zhuang /* CONFIG Flags */
11932e9fc1aSHaojian Zhuang #define MEMORY_AXI_CONFIG_ADDR			(MEMORY_AXI_HIFI_ADDR + MEMORY_AXI_HIFI_SIZE)
12032e9fc1aSHaojian Zhuang #define MEMORY_AXI_CONFIG_SIZE			(32)
12132e9fc1aSHaojian Zhuang 
12232e9fc1aSHaojian Zhuang /* DDR Capacity Flags */
12332e9fc1aSHaojian Zhuang #define MEMORY_AXI_DDR_CAPACITY_ADDR		(MEMORY_AXI_CONFIG_ADDR + MEMORY_AXI_CONFIG_SIZE)
12432e9fc1aSHaojian Zhuang #define MEMORY_AXI_DDR_CAPACITY_SIZE		(4)
12532e9fc1aSHaojian Zhuang 
12632e9fc1aSHaojian Zhuang /* USB Shell Flags */
12732e9fc1aSHaojian Zhuang #define MEMORY_AXI_USB_SHELL_FLAG_ADDR		(MEMORY_AXI_DDR_CAPACITY_ADDR + MEMORY_AXI_DDR_CAPACITY_SIZE)
12832e9fc1aSHaojian Zhuang #define MEMORY_AXI_USB_SHELL_FLAG_SIZE		(4)
12932e9fc1aSHaojian Zhuang 
13032e9fc1aSHaojian Zhuang /* MCU WDT Switch Flag */
13132e9fc1aSHaojian Zhuang #define MEMORY_AXI_MCU_WDT_FLAG_ADDR		(MEMORY_AXI_USB_SHELL_FLAG_ADDR + MEMORY_AXI_USB_SHELL_FLAG_SIZE)
13232e9fc1aSHaojian Zhuang #define MEMORY_AXI_MCU_WDT_FLAG_SIZE		(4)
13332e9fc1aSHaojian Zhuang 
13432e9fc1aSHaojian Zhuang /* TLDSP Mailbox MNTN */
13532e9fc1aSHaojian Zhuang #define SRAM_DSP_MNTN_INFO_ADDR			(MEMORY_AXI_MCU_WDT_FLAG_ADDR + MEMORY_AXI_MCU_WDT_FLAG_SIZE)
13632e9fc1aSHaojian Zhuang #define SRAM_DSP_MNTN_SIZE			(32)
13732e9fc1aSHaojian Zhuang 
13832e9fc1aSHaojian Zhuang /* TLDSP ARM Mailbox Protect Flag */
13932e9fc1aSHaojian Zhuang #define SRAM_DSP_ARM_MAILBOX_PROTECT_FLAG_ADDR	(SRAM_DSP_MNTN_INFO_ADDR + SRAM_DSP_MNTN_SIZE)
14032e9fc1aSHaojian Zhuang #define SRAM_DSP_ARM_MAILBOX_PROTECT_FLAG_SIZE	(4)
14132e9fc1aSHaojian Zhuang 
14232e9fc1aSHaojian Zhuang /* RTT Sleep Flag */
14332e9fc1aSHaojian Zhuang #define SRAM_RTT_SLEEP_FLAG_ADDR                (SRAM_DSP_ARM_MAILBOX_PROTECT_FLAG_ADDR + SRAM_DSP_ARM_MAILBOX_PROTECT_FLAG_SIZE)
14432e9fc1aSHaojian Zhuang #define SRAM_RTT_SLEEP_FLAG_SIZE                (32)
14532e9fc1aSHaojian Zhuang 
14632e9fc1aSHaojian Zhuang /* LDSP Awake Flag */
14732e9fc1aSHaojian Zhuang #define MEMORY_AXI_LDSP_AWAKE_ADDR              (SRAM_RTT_SLEEP_FLAG_ADDR + SRAM_RTT_SLEEP_FLAG_SIZE)
14832e9fc1aSHaojian Zhuang #define MEMORY_AXI_LDSP_AWAKE_SIZE              (4)
14932e9fc1aSHaojian Zhuang 
15032e9fc1aSHaojian Zhuang #define NVUPDATE_SUCCESS			0x5555AAAA
15132e9fc1aSHaojian Zhuang #define NVUPDATE_FAILURE			0xAAAA5555
15232e9fc1aSHaojian Zhuang 
15332e9fc1aSHaojian Zhuang /*
15432e9fc1aSHaojian Zhuang  * Low Power Mode Region
15532e9fc1aSHaojian Zhuang  */
15632e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_SPACE_ADDR		(SRAM_PM_ADDR)
15732e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_SPACE_SIZE		(SRAM_PM_SIZE)
15832e9fc1aSHaojian Zhuang 
15932e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_MEM_BASE		(PWRCTRL_ACPU_ASM_SPACE_ADDR)
16032e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_MEM_SIZE		(PWRCTRL_ACPU_ASM_SPACE_SIZE)
16132e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_CODE_BASE		(PWRCTRL_ACPU_ASM_MEM_BASE + 0x200)
16232e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_DATA_BASE		(PWRCTRL_ACPU_ASM_MEM_BASE + 0xE00)
16332e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_DATA_SIZE		(0xE00)
16432e9fc1aSHaojian Zhuang 
16532e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_D_C0_ADDR		(PWRCTRL_ACPU_ASM_DATA_BASE)
16632e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_D_C0_MMU_PARA_AD	(PWRCTRL_ACPU_ASM_DATA_BASE + 0)
16732e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_D_ARM_PARA_AD		(PWRCTRL_ACPU_ASM_DATA_BASE + 0x20)
16832e9fc1aSHaojian Zhuang 
16932e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_D_COMM_ADDR		(PWRCTRL_ACPU_ASM_DATA_BASE + 0x700)
17032e9fc1aSHaojian Zhuang 
17132e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_REBOOT			(PWRCTRL_ACPU_ASM_D_COMM_ADDR)
17232e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_REBOOT_SIZE		(0x200)
17332e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_SLICE_BAK_ADDR		(PWRCTRL_ACPU_REBOOT + PWRCTRL_ACPU_REBOOT_SIZE)
17432e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_SLICE_BAK_SIZE		(4)
17532e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_DEBUG_FLAG_ADDR	(PWRCTRL_ACPU_ASM_SLICE_BAK_ADDR + PWRCTRL_ACPU_ASM_SLICE_BAK_SIZE)
17632e9fc1aSHaojian Zhuang #define PWRCTRL_ACPU_ASM_DEBUG_FLAG_SIZE	(4)
17732e9fc1aSHaojian Zhuang #define EXCH_A_CORE_POWRCTRL_CONV_ADDR		(PWRCTRL_ACPU_ASM_DEBUG_FLAG_ADDR + PWRCTRL_ACPU_ASM_DEBUG_FLAG_SIZE)
17832e9fc1aSHaojian Zhuang #define EXCH_A_CORE_POWRCTRL_CONV_SIZE		(4)
17932e9fc1aSHaojian Zhuang 
18032e9fc1aSHaojian Zhuang /*
18132e9fc1aSHaojian Zhuang  * Below region memory mapping is:
18232e9fc1aSHaojian Zhuang  * 4 + 12 + 16 + 28 + 28 + 16 + 28 + 12 + 24 + 20 + 64 +
18332e9fc1aSHaojian Zhuang  * 4 + 4 + 4 + 4 + 12 + 4 + 4 + 4 + 4 + 16 + 4 + 0x2BC +
18432e9fc1aSHaojian Zhuang  * 24 + 20 + 12 + 16
18532e9fc1aSHaojian Zhuang  */
18632e9fc1aSHaojian Zhuang 
18732e9fc1aSHaojian Zhuang #define MEMORY_AXI_CPU_IDLE_ADDR		(EXCH_A_CORE_POWRCTRL_CONV_ADDR + EXCH_A_CORE_POWRCTRL_CONV_SIZE)
18832e9fc1aSHaojian Zhuang #define MEMORY_AXI_CPU_IDLE_SIZE		(4)
18932e9fc1aSHaojian Zhuang 
19032e9fc1aSHaojian Zhuang #define MEMORY_AXI_CUR_FREQ_ADDR		(MEMORY_AXI_CPU_IDLE_ADDR + MEMORY_AXI_CPU_IDLE_SIZE)
19132e9fc1aSHaojian Zhuang #define MEMORY_AXI_CUR_FREQ_SIZE		(12)
19232e9fc1aSHaojian Zhuang 
19332e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_FREQ_VOL_ADDR		(MEMORY_AXI_CUR_FREQ_ADDR + MEMORY_AXI_CUR_FREQ_SIZE)
19432e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_FREQ_VOL_SIZE		(16 + 28 + 28)
19532e9fc1aSHaojian Zhuang 
19632e9fc1aSHaojian Zhuang #define MEMORY_AXI_DDR_FREQ_VOL_ADDR		(MEMORY_AXI_ACPU_FREQ_VOL_ADDR + MEMORY_AXI_ACPU_FREQ_VOL_SIZE)
19732e9fc1aSHaojian Zhuang #define MEMORY_AXI_DDR_FREQ_VOL_SIZE		(16 + 28)
19832e9fc1aSHaojian Zhuang 
19932e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_FIQ_TEST_ADDR		(MEMORY_AXI_DDR_FREQ_VOL_ADDR + MEMORY_AXI_DDR_FREQ_VOL_SIZE)
20032e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_FIQ_TEST_SIZE		(12)
20132e9fc1aSHaojian Zhuang 
20232e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_FIQ_CPU_INFO_ADDR	(MEMORY_AXI_ACPU_FIQ_TEST_ADDR + MEMORY_AXI_ACPU_FIQ_TEST_SIZE)
20332e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_FIQ_CPU_INFO_SIZE	(24)
20432e9fc1aSHaojian Zhuang 
20532e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_FIQ_DEBUG_INFO_ADDR	(MEMORY_AXI_ACPU_FIQ_CPU_INFO_ADDR + MEMORY_AXI_ACPU_FIQ_CPU_INFO_SIZE)
20632e9fc1aSHaojian Zhuang #define MEMORY_AXI_ACPU_FIQ_DEBUG_INFO_SIZE	(20)
20732e9fc1aSHaojian Zhuang 
20832e9fc1aSHaojian Zhuang #define MEMORY_FREQDUMP_ADDR			(MEMORY_AXI_ACPU_FIQ_DEBUG_INFO_ADDR + MEMORY_AXI_ACPU_FIQ_DEBUG_INFO_SIZE)
20932e9fc1aSHaojian Zhuang #define MEMORY_FREQDUMP_SIZE			(64)
21032e9fc1aSHaojian Zhuang 
21132e9fc1aSHaojian Zhuang #define MEMORY_AXI_CCPU_LOG_ADDR		(MEMORY_FREQDUMP_ADDR + MEMORY_FREQDUMP_SIZE)
21232e9fc1aSHaojian Zhuang #define MEMORY_AXI_CCPU_LOG_SIZE		(4)
21332e9fc1aSHaojian Zhuang 
21432e9fc1aSHaojian Zhuang #define MEMORY_AXI_MCU_LOG_ADDR			(MEMORY_AXI_CCPU_LOG_ADDR + MEMORY_AXI_CCPU_LOG_SIZE)
21532e9fc1aSHaojian Zhuang #define MEMORY_AXI_MCU_LOG_SIZE			(4)
21632e9fc1aSHaojian Zhuang 
21732e9fc1aSHaojian Zhuang #define MEMORY_AXI_SEC_CORE_BOOT_ADDR		(MEMORY_AXI_MCU_LOG_ADDR + MEMORY_AXI_MCU_LOG_SIZE)
21832e9fc1aSHaojian Zhuang #define MEMORY_AXI_SEC_CORE_BOOT_SIZE		(4)
21932e9fc1aSHaojian Zhuang 
22032e9fc1aSHaojian Zhuang #define MEMORY_AXI_BBP_PS_VOTE_FLAG_ADDR	(MEMORY_AXI_SEC_CORE_BOOT_ADDR + MEMORY_AXI_SEC_CORE_BOOT_SIZE)
22132e9fc1aSHaojian Zhuang #define MEMORY_AXI_BBP_PS_VOTE_FLAG_SIZE	(0x4)
22232e9fc1aSHaojian Zhuang 
22332e9fc1aSHaojian Zhuang #define POLICY_AREA_RESERVED			(MEMORY_AXI_BBP_PS_VOTE_FLAG_ADDR + MEMORY_AXI_BBP_PS_VOTE_FLAG_SIZE)
22432e9fc1aSHaojian Zhuang #define POLICY_AREA_RESERVED_SIZE		(12)
22532e9fc1aSHaojian Zhuang 
22632e9fc1aSHaojian Zhuang #define DDR_POLICY_VALID_MAGIC			(POLICY_AREA_RESERVED + POLICY_AREA_RESERVED_SIZE)
22732e9fc1aSHaojian Zhuang #define DDR_POLICY_VALID_MAGIC_SIZE		(4)
22832e9fc1aSHaojian Zhuang 
22932e9fc1aSHaojian Zhuang #define DDR_POLICY_MAX_NUM			(DDR_POLICY_VALID_MAGIC + DDR_POLICY_VALID_MAGIC_SIZE)
23032e9fc1aSHaojian Zhuang #define DDR_POLICY_MAX_NUM_SIZE			(4)
23132e9fc1aSHaojian Zhuang 
23232e9fc1aSHaojian Zhuang #define DDR_POLICY_SUPPORT_NUM			(DDR_POLICY_MAX_NUM + DDR_POLICY_MAX_NUM_SIZE)
23332e9fc1aSHaojian Zhuang #define DDR_POLICY_SUPPORT_NUM_SIZE		(4)
23432e9fc1aSHaojian Zhuang 
23532e9fc1aSHaojian Zhuang #define DDR_POLICY_CUR_POLICY			(DDR_POLICY_SUPPORT_NUM + DDR_POLICY_SUPPORT_NUM_SIZE)
23632e9fc1aSHaojian Zhuang #define DDR_POLICY_CUR_POLICY_SIZE		(4)
23732e9fc1aSHaojian Zhuang 
23832e9fc1aSHaojian Zhuang #define ACPU_POLICY_VALID_MAGIC			(DDR_POLICY_CUR_POLICY + DDR_POLICY_CUR_POLICY_SIZE)
23932e9fc1aSHaojian Zhuang #define ACPU_POLICY_VALID_MAGIC_SIZE		(4)
24032e9fc1aSHaojian Zhuang 
24132e9fc1aSHaojian Zhuang #define ACPU_POLICY_MAX_NUM			(ACPU_POLICY_VALID_MAGIC + ACPU_POLICY_VALID_MAGIC_SIZE)
24232e9fc1aSHaojian Zhuang #define ACPU_POLICY_MAX_NUM_SIZE		(4)
24332e9fc1aSHaojian Zhuang 
24432e9fc1aSHaojian Zhuang #define ACPU_POLICY_SUPPORT_NUM			(ACPU_POLICY_MAX_NUM + ACPU_POLICY_MAX_NUM_SIZE)
24532e9fc1aSHaojian Zhuang #define ACPU_POLICY_SUPPORT_NUM_SIZE		(4)
24632e9fc1aSHaojian Zhuang 
24732e9fc1aSHaojian Zhuang #define ACPU_POLICY_CUR_POLICY			(ACPU_POLICY_SUPPORT_NUM + ACPU_POLICY_SUPPORT_NUM_SIZE)
24832e9fc1aSHaojian Zhuang #define ACPU_POLICY_CUR_POLICY_SIZE		(4)
24932e9fc1aSHaojian Zhuang 
25032e9fc1aSHaojian Zhuang #define LPDDR_OPTION_ADDR			(ACPU_POLICY_CUR_POLICY + ACPU_POLICY_CUR_POLICY_SIZE)
25132e9fc1aSHaojian Zhuang #define LPDDR_OPTION_SIZE			(4)
25232e9fc1aSHaojian Zhuang 
25332e9fc1aSHaojian Zhuang #define MEMORY_AXI_DDR_DDL_ADDR			(LPDDR_OPTION_ADDR + LPDDR_OPTION_SIZE)
25432e9fc1aSHaojian Zhuang #define MEMORY_AXI_DDR_DDL_SIZE			(0x2BC)
25532e9fc1aSHaojian Zhuang 
25632e9fc1aSHaojian Zhuang #define DDR_TEST_DFS_ADDR			(MEMORY_AXI_DDR_DDL_ADDR + MEMORY_AXI_DDR_DDL_SIZE)
25732e9fc1aSHaojian Zhuang #define DDR_TEST_DFS_ADDR_SIZE			(4)
25832e9fc1aSHaojian Zhuang 
25932e9fc1aSHaojian Zhuang #define DDR_TEST_DFS_TIMES_ADDR			(DDR_TEST_DFS_ADDR + DDR_TEST_DFS_ADDR_SIZE)
26032e9fc1aSHaojian Zhuang #define DDR_TEST_DFS_TIMES_ADDR_SIZE		(4)
26132e9fc1aSHaojian Zhuang 
26232e9fc1aSHaojian Zhuang #define DDR_TEST_QOS_ADDR			(DDR_TEST_DFS_TIMES_ADDR + DDR_TEST_DFS_TIMES_ADDR_SIZE)
26332e9fc1aSHaojian Zhuang #define DDR_TEST_QOS_ADDR_SIZE			(4)
26432e9fc1aSHaojian Zhuang 
26532e9fc1aSHaojian Zhuang #define DDR_TEST_FUN_ADDR			(DDR_TEST_QOS_ADDR + DDR_TEST_QOS_ADDR_SIZE)
26632e9fc1aSHaojian Zhuang #define DDR_TEST_FUN_ADDR_SIZE			(4)
26732e9fc1aSHaojian Zhuang 
26832e9fc1aSHaojian Zhuang #define BOARD_TYPE_ADDR				(DDR_TEST_FUN_ADDR + DDR_TEST_FUN_ADDR_SIZE)
26932e9fc1aSHaojian Zhuang #define BOARD_ADDR_SIZE				(4)
27032e9fc1aSHaojian Zhuang #define DDR_DFS_FREQ_ADDR			(BOARD_TYPE_ADDR + BOARD_ADDR_SIZE)
27132e9fc1aSHaojian Zhuang #define DDR_DFS_FREQ_SIZE			(4)
27232e9fc1aSHaojian Zhuang 
27332e9fc1aSHaojian Zhuang #define DDR_PASR_ADDR				(DDR_DFS_FREQ_ADDR + DDR_DFS_FREQ_SIZE)
27432e9fc1aSHaojian Zhuang #define DDR_PASR_SIZE				(20)
27532e9fc1aSHaojian Zhuang 
27632e9fc1aSHaojian Zhuang #define ACPU_DFS_FREQ_ADDR			(DDR_PASR_ADDR + DDR_PASR_SIZE)
27732e9fc1aSHaojian Zhuang #define ACPU_DFS_FREQ_ADDR_SIZE			(12)
27832e9fc1aSHaojian Zhuang 
27932e9fc1aSHaojian Zhuang #define ACPU_CHIP_MAX_FREQ			(ACPU_DFS_FREQ_ADDR + ACPU_DFS_FREQ_ADDR_SIZE)
28032e9fc1aSHaojian Zhuang #define ACPU_CHIP_MAX_FREQ_SIZE			(4)
28132e9fc1aSHaojian Zhuang 
28232e9fc1aSHaojian Zhuang #define MEMORY_MEDPLL_STATE_ADDR		(ACPU_CHIP_MAX_FREQ + ACPU_CHIP_MAX_FREQ_SIZE)
28332e9fc1aSHaojian Zhuang #define MEMORY_MEDPLL_STATE_SIZE		(8)
28432e9fc1aSHaojian Zhuang 
28532e9fc1aSHaojian Zhuang #define MEMORY_CCPU_LOAD_FLAG_ADDR		(MEMORY_MEDPLL_STATE_ADDR + MEMORY_MEDPLL_STATE_SIZE)
28632e9fc1aSHaojian Zhuang #define MEMORY_CCPU_LOAD_FLAG_SIZE		(4)
28732e9fc1aSHaojian Zhuang 
28832e9fc1aSHaojian Zhuang 
28932e9fc1aSHaojian Zhuang #define ACPU_CORE_BITS_ADDR			(MEMORY_CCPU_LOAD_FLAG_ADDR + MEMORY_CCPU_LOAD_FLAG_SIZE)
29032e9fc1aSHaojian Zhuang #define ACPU_CORE_BITS_SIZE			(4)
29132e9fc1aSHaojian Zhuang 
29232e9fc1aSHaojian Zhuang #define ACPU_CLUSTER_IDLE_ADDR			(ACPU_CORE_BITS_ADDR + ACPU_CORE_BITS_SIZE)
29332e9fc1aSHaojian Zhuang #define ACPU_CLUSTER_IDLE_SIZE			(4)
29432e9fc1aSHaojian Zhuang 
29532e9fc1aSHaojian Zhuang #define ACPU_A53_FLAGS_ADDR			(ACPU_CLUSTER_IDLE_ADDR + ACPU_CLUSTER_IDLE_SIZE)
29632e9fc1aSHaojian Zhuang #define ACPU_A53_FLAGS_SIZE			(4)
29732e9fc1aSHaojian Zhuang 
29832e9fc1aSHaojian Zhuang #define ACPU_POWER_STATE_QOS_ADDR		(ACPU_A53_FLAGS_ADDR+ACPU_A53_FLAGS_SIZE)
29932e9fc1aSHaojian Zhuang #define ACPU_POWER_STATE_QOS_SIZE		(4)
30032e9fc1aSHaojian Zhuang 
30132e9fc1aSHaojian Zhuang #define ACPU_UNLOCK_CORE_FLAGS_ADDR		(ACPU_POWER_STATE_QOS_ADDR+ACPU_POWER_STATE_QOS_SIZE)
30232e9fc1aSHaojian Zhuang #define ACPU_UNLOCK_CORE_FLAGS_SIZE		(8)
30332e9fc1aSHaojian Zhuang 
30432e9fc1aSHaojian Zhuang #define ACPU_SUBSYS_POWERDOWN_FLAGS_ADDR	(ACPU_UNLOCK_CORE_FLAGS_ADDR + ACPU_UNLOCK_CORE_FLAGS_SIZE)
30532e9fc1aSHaojian Zhuang #define ACPU_SUBSYS_POWERDOWN_FLAGS_SIZE	(4)
30632e9fc1aSHaojian Zhuang 
30732e9fc1aSHaojian Zhuang #define ACPU_CORE_POWERDOWN_FLAGS_ADDR		(ACPU_SUBSYS_POWERDOWN_FLAGS_ADDR + ACPU_SUBSYS_POWERDOWN_FLAGS_SIZE)
30832e9fc1aSHaojian Zhuang #define ACPU_CORE_POWERDOWN_FLAGS_SIZE		(4)
30932e9fc1aSHaojian Zhuang 
31032e9fc1aSHaojian Zhuang #define ACPU_CLUSTER_POWERDOWN_FLAGS_ADDR	(ACPU_CORE_POWERDOWN_FLAGS_ADDR + ACPU_CORE_POWERDOWN_FLAGS_SIZE)
31132e9fc1aSHaojian Zhuang #define ACPU_CLUSTER_POWERDOWN_FLAGS_SIZE	(4)
31232e9fc1aSHaojian Zhuang 
31332e9fc1aSHaojian Zhuang #define ACPU_ARM64_FLAGA			(ACPU_CLUSTER_POWERDOWN_FLAGS_ADDR + ACPU_CLUSTER_POWERDOWN_FLAGS_SIZE)
31432e9fc1aSHaojian Zhuang #define ACPU_ARM64_FLAGA_SIZE			(4)
31532e9fc1aSHaojian Zhuang 
31632e9fc1aSHaojian Zhuang #define ACPU_ARM64_FLAGB			(ACPU_ARM64_FLAGA + ACPU_ARM64_FLAGA_SIZE)
31732e9fc1aSHaojian Zhuang #define ACPU_ARM64_FLAGB_SIZE			(4)
31832e9fc1aSHaojian Zhuang 
31932e9fc1aSHaojian Zhuang #define MCU_EXCEPTION_FLAGS_ADDR		(ACPU_ARM64_FLAGB + ACPU_ARM64_FLAGB_SIZE)
32032e9fc1aSHaojian Zhuang #define MCU_EXCEPTION_FLAGS_SIZE		(4)
32132e9fc1aSHaojian Zhuang 
32232e9fc1aSHaojian Zhuang #define ACPU_MASTER_CORE_STATE_ADDR		(MCU_EXCEPTION_FLAGS_ADDR + MCU_EXCEPTION_FLAGS_SIZE)
32332e9fc1aSHaojian Zhuang #define ACPU_MASTER_CORE_STATE_SIZE		(4)
32432e9fc1aSHaojian Zhuang 
32532e9fc1aSHaojian Zhuang #define PWRCTRL_AXI_RESERVED_ADDR		(ACPU_MASTER_CORE_STATE_ADDR + ACPU_MASTER_CORE_STATE_SIZE)
32632e9fc1aSHaojian Zhuang 
327*c3cf06f1SAntonio Nino Diaz #endif /* HISI_SRAM_MAP_H */
328