1# SPDX-License-Identifier: GPL-2.0
2#
3# Copyright (c) 2018, Luca Ceresoli <luca@lucaceresoli.net>
4
5if ARCH_ZYNQ || ARCH_ZYNQMP
6
7config XILINX_PS_INIT_FILE
8	string "Zynq/ZynqMP PS init file(s) location"
9	help
10	  On Zynq and ZynqMP U-Boot SPL (or U-Boot proper if
11	  ZYNQMP_PSU_INIT_ENABLED is set) is responsible for some
12	  basic initializations, such as enabling peripherals and
13	  configuring pinmuxes. The PS init file (called
14	  psu_init_gpl.c on ZynqMP, ps7_init_gpl.c for Zynq-7000)
15	  contains the code for such initializations.
16
17	  U-Boot contains PS init files for some boards, but each of
18	  them describes only one specific configuration. Users of a
19	  different board, or needing a different configuration, can
20	  generate custom files using the Xilinx development tools.
21
22	  There are three ways to give a PS init file to U-Boot:
23
24	  1. Set this variable to the path, either relative to the
25	     source tree or absolute, where the psu_init_gpl.c or
26	     ps7_init_gpl.c file is located. U-Boot will build this
27	     file.
28
29	  2. If you leave an empty string here, U-Boot will use
30	     board/xilinx/zynq/$(CONFIG_DEFAULT_DEVICE_TREE)/ps7_init_gpl.c
31	     for Zynq-7000, or
32	     board/xilinx/zynqmp/$(CONFIG_DEFAULT_DEVICE_TREE)/psu_init_gpl.c
33	     for ZynqMP.
34
35	  3. If the above file does not exist, U-Boot will use
36	     board/xilinx/zynq/ps7_init_gpl.c for Zynq-7000, or
37	     board/xilinx/zynqmp/psu_init_gpl.c for ZynqMP. This file
38	     is not provided by U-Boot, you have to copy it there
39	     before the build.
40
41endif
42
43config XILINX_MINI
44	bool "Mini configuration"
45	depends on ARCH_ZYNQMP || ARCH_VERSAL || ARCH_VERSAL_NET || ARCH_VERSAL2
46	help
47	  This option disables features which are not needed for Mini U-Boot
48	  configurations. Mini U-Boot is running in EL3 mostly on size contrained
49	  systems. It's purpose is to program non volatile memories or running
50	  initial memory tests.
51
52config XILINX_OF_BOARD_DTB_ADDR
53	hex "Default DTB pickup address"
54	default 0x1000 if ARCH_VERSAL || ARCH_VERSAL_NET || ARCH_VERSAL2
55	default 0x8000 if MICROBLAZE
56	default 0x100000 if ARCH_ZYNQ || ARCH_ZYNQMP
57	default 0x83000000 if TARGET_XILINX_MBV
58	depends on OF_BOARD || OF_SEPARATE
59	help
60	  Offset in the memory where the board configuration DTB is placed.
61
62config BOOT_SCRIPT_OFFSET
63	hex "Boot script offset"
64	depends on ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL || ARCH_VERSAL_NET || ARCH_VERSAL2 || MICROBLAZE || TARGET_XILINX_MBV
65	default 0xFC0000 if ARCH_ZYNQ || MICROBLAZE
66	default 0x3E80000 if ARCH_ZYNQMP
67	default 0x7F80000 if ARCH_VERSAL || ARCH_VERSAL_NET || ARCH_VERSAL2
68	default 0 if TARGET_XILINX_MBV
69	help
70	   Specifies distro boot script offset in NAND/QSPI/NOR flash.
71
72config CMD_FRU
73	bool "FRU information for product"
74	help
75	  This option enables FRU commands to capture and display FRU
76	  information present in the device. The FRU Information is used
77	  to primarily to provide "inventory" information about the boards
78	  that the FRU Information Device is located on.
79
80config FRU_SC
81	bool "FRU system controller decoding"
82	help
83	  Xilinx System Controller (SC) FRU format is describing boards from two
84	  angles. One from DUT and then from SC. DUT is default option for
85	  the main CPU. SC behaves more or less as slave and have different ID.
86	  If you build U-Boot for SC you should enable this option to get proper
87	  MAC address.
88