1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * K3: J721E SoC definitions, structures etc.
4  *
5  * (C) Copyright (C) 2018-2019 Texas Instruments Incorporated - http://www.ti.com/
6  */
7 #ifndef __ASM_ARCH_J721E_HARDWARE_H
8 #define __ASM_ARCH_J721E_HARDWARE_H
9 
10 #include <config.h>
11 #ifndef __ASSEMBLY__
12 #include <linux/bitops.h>
13 #endif
14 
15 #define WKUP_CTRL_MMR0_BASE				0x43000000
16 #define MCU_CTRL_MMR0_BASE				0x40f00000
17 #define CTRL_MMR0_BASE					0x00100000
18 
19 #define CTRLMMR_MAIN_DEVSTAT				(CTRL_MMR0_BASE + 0x30)
20 #define MAIN_DEVSTAT_BOOT_MODE_B_MASK		BIT(0)
21 #define MAIN_DEVSTAT_BOOT_MODE_B_SHIFT		0
22 #define MAIN_DEVSTAT_BKUP_BOOTMODE_MASK		GENMASK(3, 1)
23 #define MAIN_DEVSTAT_BKUP_BOOTMODE_SHIFT	1
24 #define MAIN_DEVSTAT_PRIM_BOOTMODE_MMC_PORT_MASK	BIT(6)
25 #define MAIN_DEVSTAT_PRIM_BOOTMODE_PORT_SHIFT		6
26 #define MAIN_DEVSTAT_BKUP_MMC_PORT_MASK			BIT(7)
27 #define MAIN_DEVSTAT_BKUP_MMC_PORT_SHIFT		7
28 
29 #define CTRLMMR_WKUP_DEVSTAT			(WKUP_CTRL_MMR0_BASE + 0x30)
30 #define WKUP_DEVSTAT_PRIMARY_BOOTMODE_MASK	GENMASK(5, 3)
31 #define WKUP_DEVSTAT_PRIMARY_BOOTMODE_SHIFT	3
32 #define WKUP_DEVSTAT_MCU_OMLY_MASK		BIT(6)
33 #define WKUP_DEVSTAT_MCU_ONLY_SHIFT		6
34 
35 /* ROM HANDOFF Structure location */
36 #define ROM_EXTENDED_BOOT_DATA_INFO			0x41cffb00
37 
38 /* MCU SCRATCHPAD usage */
39 #define TI_SRAM_SCRATCH_BOARD_EEPROM_START	CONFIG_SYS_K3_MCU_SCRATCHPAD_BASE
40 
41 #if defined(CONFIG_SYS_K3_SPL_ATF) && !defined(__ASSEMBLY__)
42 
43 #define J721E_DEV_MCU_RTI0			262
44 #define J721E_DEV_MCU_RTI1			263
45 #define J721E_DEV_MCU_ARMSS0_CPU0		250
46 #define J721E_DEV_MCU_ARMSS0_CPU1		251
47 
48 static const u32 put_device_ids[] = {
49 	J721E_DEV_MCU_RTI0,
50 	J721E_DEV_MCU_RTI1,
51 };
52 
53 static const u32 put_core_ids[] = {
54 	J721E_DEV_MCU_ARMSS0_CPU1,
55 	J721E_DEV_MCU_ARMSS0_CPU0,	/* Handle CPU0 after CPU1 */
56 };
57 
58 #endif
59 
60 #endif /* __ASM_ARCH_J721E_HARDWARE_H */
61