1if ARCH_K3
2
3choice
4	prompt "Texas Instruments' K3 based SoC select"
5	optional
6
7config SOC_K3_AM654
8	bool "TI's K3 based AM654 SoC Family Support"
9
10config SOC_K3_J721E
11	bool "TI's K3 based J721E SoC Family Support"
12
13config SOC_K3_J721S2
14	bool "TI's K3 based J721S2 SoC Family Support"
15
16config SOC_K3_AM642
17	bool "TI's K3 based AM642 SoC Family Support"
18
19config SOC_K3_AM625
20	bool "TI's K3 based AM625 SoC Family Support"
21
22config SOC_K3_AM62A7
23	bool "TI's K3 based AM62A7 SoC Family Support"
24
25endchoice
26
27config SYS_SOC
28	default "k3"
29
30config SYS_K3_NON_SECURE_MSRAM_SIZE
31	hex
32	default 0x80000 if SOC_K3_AM654
33	default 0x100000 if SOC_K3_J721E || SOC_K3_J721S2
34	default 0x1c0000 if SOC_K3_AM642
35	default 0x3c000 if SOC_K3_AM625 || SOC_K3_AM62A7
36	help
37	  Describes the total size of the MCU or OCMC MSRAM present on
38	  the SoC in use. This doesn't specify the total size of SPL as
39	  ROM can use some part of this RAM. Once ROM gives control to
40	  SPL then this complete size can be usable.
41
42config SYS_K3_MAX_DOWNLODABLE_IMAGE_SIZE
43	hex
44	default 0x58000 if SOC_K3_AM654
45	default 0xc0000 if SOC_K3_J721E || SOC_K3_J721S2
46	default 0x180000 if SOC_K3_AM642
47	default 0x38000 if SOC_K3_AM625 || SOC_K3_AM62A7
48	help
49	  Describes the maximum size of the image that ROM can download
50	  from any boot media.
51
52config SYS_K3_MCU_SCRATCHPAD_BASE
53	hex
54	default 0x40280000 if SOC_K3_AM654
55	default 0x40280000 if SOC_K3_J721S2
56	default 0x41cff9fc if SOC_K3_J721E
57	help
58	  Describes the base address of MCU Scratchpad RAM.
59
60config SYS_K3_MCU_SCRATCHPAD_SIZE
61	hex
62	default 0x200 if SOC_K3_AM654
63	default 0x200 if SOC_K3_J721E || SOC_K3_J721S2
64	help
65	  Describes the size of MCU Scratchpad RAM.
66
67config SYS_K3_BOOT_PARAM_TABLE_INDEX
68	hex
69	default 0x41c7fbfc if SOC_K3_AM654
70	default 0x41cffbfc if SOC_K3_J721E
71	default 0x41cfdbfc if SOC_K3_J721S2
72	default 0x701bebfc if SOC_K3_AM642
73	default 0x43c3f290 if SOC_K3_AM625
74	default 0x43c3f290 if SOC_K3_AM62A7 && CPU_V7R
75	default 0x7000f290 if SOC_K3_AM62A7 && ARM64
76	help
77	  Address at which ROM stores the value which determines if SPL
78	  is booted up by primary boot media or secondary boot media.
79
80config SYS_K3_KEY
81	string "Key used to generate x509 certificate"
82	help
83	  This option enables to provide a custom key that can be used for
84	  generating x509 certificate for spl binary. If not needed leave
85	  it blank so that a random key is generated and used.
86
87config SYS_K3_BOOT_CORE_ID
88	int
89	default 16
90
91config K3_EARLY_CONS
92	bool "Activate to allow for an early console during SPL"
93	depends on SPL
94	help
95	  Turn this option on to enable an early console functionality in SPL
96	  before the main console is being brought up. This can be useful in
97	  situations where the main console is dependent on System Firmware
98	  (SYSFW) being up and running, which is usually not the case during
99	  the very early stages of boot. Using this early console functionality
100	  will allow for an alternate serial port to be used to support things
101	  like UART-based boot and early diagnostic messages until the main
102	  console is ready to get activated.
103
104config K3_EARLY_CONS_IDX
105	depends on K3_EARLY_CONS
106	int "Index of serial device to use for SPL early console"
107	default 1
108	help
109	  Use this option to set the index of the serial device to be used
110	  for the early console during SPL execution.
111
112config K3_LOAD_SYSFW
113	bool
114	depends on SPL
115
116config K3_SYSFW_IMAGE_NAME
117	string "File name of SYSFW firmware and configuration blob"
118	depends on K3_LOAD_SYSFW
119	default	"sysfw.itb"
120	help
121	  Filename of the combined System Firmware and configuration image tree
122	  blob to be loaded when booting from a filesystem.
123
124config K3_SYSFW_IMAGE_MMCSD_RAW_MODE_SECT
125	hex "MMC sector to load SYSFW firmware and configuration blob from"
126	depends on K3_LOAD_SYSFW && SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR
127	default 0x3600
128	help
129	  Address on the MMC to load the combined System Firmware and
130	  configuration image tree blob from, when the MMC is being used
131	  in raw mode. Units: MMC sectors (1 sector = 512 bytes).
132
133config K3_SYSFW_IMAGE_MMCSD_RAW_MODE_PART
134	hex "MMC partition to load SYSFW firmware and configuration blob from"
135	depends on K3_LOAD_SYSFW && SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
136	default 2
137	help
138	  Partition on the MMC to the combined System Firmware and configuration
139	  image tree blob from, when the MMC is being used in raw mode.
140
141config K3_SYSFW_IMAGE_SIZE_MAX
142	int "Amount of memory dynamically allocated for loading SYSFW blob"
143	depends on K3_LOAD_SYSFW
144	default	280000
145	help
146	  Amount of memory (in bytes) reserved through dynamic allocation at
147	  runtime for loading the combined System Firmware and configuration image
148	  tree blob. Keep it as tight as possible, as this directly affects the
149	  overall SPL memory footprint.
150
151config K3_SYSFW_IMAGE_SPI_OFFS
152	hex "SPI offset of SYSFW firmware and configuration blob"
153	depends on K3_LOAD_SYSFW
154	default	0x6C0000
155	help
156	  Offset of the combined System Firmware and configuration image tree
157	  blob to be loaded when booting from a SPI flash memory.
158
159config SYS_K3_SPL_ATF
160	bool "Start Cortex-A from SPL"
161	depends on SPL && CPU_V7R
162	help
163	  Enabling this will try to start Cortex-A (typically with ATF)
164	  after SPL from R5.
165
166config K3_ATF_LOAD_ADDR
167	hex "Load address of ATF image"
168	default 0x70000000
169	help
170	  The load address for the ATF image. This value defaults to 0x70000000
171	  if not provided in the board defconfig file.
172
173config K3_DM_FW
174	bool "Separate DM firmware image"
175	depends on SPL && CPU_V7R && (SOC_K3_J721E || SOC_K3_J721S2 || SOC_K3_AM625 || SOC_K3_AM62A7) && !CLK_TI_SCI && !TI_SCI_POWER_DOMAIN
176	default y
177	help
178	  Enabling this will indicate that the system has separate DM
179	  and TIFS firmware images in place, instead of a single SYSFW
180	  firmware. Due to DM being executed on the same core as R5 SPL
181	  bootloader, it makes RM and PM services not being available
182	  during R5 SPL execution time.
183
184config K3_X509_SWRV
185	int "SWRV for X509 certificate used for boot images"
186	default 1
187	help
188	  SWRV for X509 certificate used for boot images
189
190source "board/ti/am65x/Kconfig"
191source "board/ti/am64x/Kconfig"
192source "board/ti/am62x/Kconfig"
193source "board/ti/am62ax/Kconfig"
194source "board/ti/j721e/Kconfig"
195source "board/siemens/iot2050/Kconfig"
196source "board/ti/j721s2/Kconfig"
197endif
198