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