<feed xmlns='http://www.w3.org/2005/Atom'>
<title>u-boot.git/arch/arm/mach-versal/include, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/u-boot.git/atom/arch/arm/mach-versal/include?h=main</id>
<link rel='self' href='http://cgit.235523.xyz/u-boot.git/atom/arch/arm/mach-versal/include?h=main'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/'/>
<updated>2026-07-08T06:55:51Z</updated>
<entry>
<title>arm64: versal: Move board_early_init_r clock setup to mach code</title>
<updated>2026-07-08T06:55:51Z</updated>
<author>
<name>Michal Simek</name>
<email>michal.simek@amd.com</email>
</author>
<published>2026-06-23T12:53:31Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=8a2586c3ef8cba7b5ef7a65229f322831f268b7c'/>
<id>urn:sha1:8a2586c3ef8cba7b5ef7a65229f322831f268b7c</id>
<content type='text'>
board_early_init_r() programmed the IOU switch clock and the system
timestamp counter directly with readl()/writel() in board code. This is
SoC register setup rather than board policy, and the same block is
duplicated across the Xilinx SoCs.

Move it into versal_timer_setup() in arch/arm/mach-versal so the board
hook only keeps the EL3 guard and calls the helper.

Signed-off-by: Michal Simek &lt;michal.simek@amd.com&gt;
Link: https://patch.msgid.link/2234d746ab5b8240e88b1a629d51f93751ee3b60.1782219202.git.michal.simek@amd.com
</content>
</entry>
<entry>
<title>arm64: versal: Move bootmode decoding out of board code</title>
<updated>2026-07-08T06:55:51Z</updated>
<author>
<name>Michal Simek</name>
<email>michal.simek@amd.com</email>
</author>
<published>2026-06-23T12:53:30Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=70236dca329910b05bf35b3e05fd460d6e9d2d76'/>
<id>urn:sha1:70236dca329910b05bf35b3e05fd460d6e9d2d76</id>
<content type='text'>
versal_get_bootmode() lived in board code and open-coded the
IS_ENABLED(CONFIG_ZYNQMP_FIRMWARE) selection between the firmware call
zynqmp_pm_get_bootmode_reg() and a direct readl(). To keep generic board
code free of firmware specifics and SoC register details and ready for
SCMI, move the whole function, including the alt-shift and mask decoding,
behind an overridable hook.

The weak versal_get_bootmode() in arch/arm/mach-versal does the plain
MMIO read via versal_bootmode_reg() and decodes it (used at EL3 and
without firmware). When CONFIG_ZYNQMP_FIRMWARE is enabled,
firmware-zynqmp.c provides a strong definition that reads the register
through the firmware call, falling back to the direct read at EL3 where
the SMC path to firmware is unavailable. This preserves the existing
firmware-based bootmode behaviour while removing the firmware interface
from board code; the now unused zynqmp_firmware.h include is dropped.

Signed-off-by: Michal Simek &lt;michal.simek@amd.com&gt;
Link: https://patch.msgid.link/d60073feed8da8d3aff9eabee6ab132e0bbd0f8e.1782219202.git.michal.simek@amd.com
</content>
</entry>
<entry>
<title>arm64: versal: Decouple multiboot register access from firmware</title>
<updated>2026-07-08T06:55:51Z</updated>
<author>
<name>Michal Simek</name>
<email>michal.simek@amd.com</email>
</author>
<published>2026-06-23T12:53:29Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=b444110e51f09444f55367c18168ef04fcb1b6a2'/>
<id>urn:sha1:b444110e51f09444f55367c18168ef04fcb1b6a2</id>
<content type='text'>
versal_multi_boot() in board code selected between the firmware call
zynqmp_pm_get_pmc_multi_boot_reg() and a direct readl() based on an
IS_ENABLED(CONFIG_ZYNQMP_FIRMWARE) check. Generic board code should not
carry firmware-specific ifdefs, and this becomes harder to maintain once
SCMI introduces yet another access method.

Introduce an overridable accessor versal_pmc_multi_boot(). The weak
default lives in arch/arm/mach-versal and performs the plain MMIO read
(used at EL3 and when no firmware is present). When CONFIG_ZYNQMP_FIRMWARE
is enabled, firmware-zynqmp.c provides a strong definition that issues the
firmware call, falling back to the direct read at EL3 where the SMC path
to firmware is unavailable. The shared MMIO read is factored into
versal_multi_boot_reg() so the firmware override does not duplicate it.

versal_multi_boot() keeps the generic JTAG/QEMU workaround and simply
calls the accessor, so board code no longer references the firmware
interface for the multiboot register. The firmware-vs-MMIO decision is
selected at link time, and adding SCMI later only requires a third strong
definition with no board-code changes.

Signed-off-by: Michal Simek &lt;michal.simek@amd.com&gt;
Link: https://patch.msgid.link/199ef6a1411c54f154fe4a43b5fef166b9927f7a.1782219202.git.michal.simek@amd.com
</content>
</entry>
<entry>
<title>arm: xilinx: Guard mach sys_proto.h against multiple inclusion</title>
<updated>2026-07-08T06:55:51Z</updated>
<author>
<name>Michal Simek</name>
<email>michal.simek@amd.com</email>
</author>
<published>2026-06-23T12:53:26Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=5979d3d44e5fe1e4f8827b585b92a0c17532edd9'/>
<id>urn:sha1:5979d3d44e5fe1e4f8827b585b92a0c17532edd9</id>
<content type='text'>
The Versal and Versal Gen 2 mach sys_proto.h headers lacked an include
guard. mach-versal/sys_proto.h additionally defines enum tcm_mode, so
including it twice in one translation unit fails to build with a
redeclaration error.

This is about to happen in firmware-zynqmp.c, which needs the SoC
prototypes unconditionally for the upcoming weak/strong multiboot and
bootmode accessors. Add the standard _ASM_ARCH_SYS_PROTO_H guard, as
already used by mach-zynqmp, so the header can be included more than once.

Signed-off-by: Michal Simek &lt;michal.simek@amd.com&gt;
Link: https://patch.msgid.link/1bf5b1d49abb271c2c5e7135837b740179b95553.1782219202.git.michal.simek@amd.com
</content>
</entry>
<entry>
<title>arm64: xilinx: Add PMC PGGS3 and PGGS4 registers</title>
<updated>2026-06-08T08:50:05Z</updated>
<author>
<name>Padmarao Begari</name>
<email>padmarao.begari@amd.com</email>
</author>
<published>2026-05-14T10:22:18Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=7188742e7e9b512834dcadb4ee45b6a21e23db42'/>
<id>urn:sha1:7188742e7e9b512834dcadb4ee45b6a21e23db42</id>
<content type='text'>
Add PMC Global PGGS3 and PGGS4 register defines to Versal and
Versal Gen 2 hardware headers. These registers hold boot index
and boot metadata required for FWU multi-bank update support.

Signed-off-by: Padmarao Begari &lt;padmarao.begari@amd.com&gt;
Signed-off-by: Michal Simek &lt;michal.simek@amd.com&gt;
Link: https://lore.kernel.org/r/20260514102601.1759779-2-padmarao.begari@amd.com
</content>
</entry>
<entry>
<title>xilinx: versal: add firmware access to PMC multi Boot mode register</title>
<updated>2025-04-16T11:42:06Z</updated>
<author>
<name>Prasad Kummari</name>
<email>prasad.kummari@amd.com</email>
</author>
<published>2025-03-05T13:48:46Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=5ffab6ee1279fe86ab21b529a04b1638a6664eaf'/>
<id>urn:sha1:5ffab6ee1279fe86ab21b529a04b1638a6664eaf</id>
<content type='text'>
Added extended support for retrieving the PMC muti boot mode
register via the firmware interface, which is preferred when
U-Boot runs in EL2 and cannot directly access PMC registers
via raw reads. Ideally, all secure registers should be accessed
via xilinx_pm_request(). Introduced the secure
zynqmp_pm_get_pmc_multi_boot_reg() call, which uses
xilinx_pm_request() to read the PMC multi boot mode register.

BootROM increments the MultiBoot register (PMC_MULTI_BOOT) read
address offset by 32 KB and retries. For SD and eMMC boot modes,
it can search up to 8191 FAT files for the identification string.
A 13-bit mask (0x1FFF) is applied to PMC_MULTI_BOOT_MASK to obtain
the correct values in BootROM.

Signed-off-by: Prasad Kummari &lt;prasad.kummari@amd.com&gt;
Link: https://lore.kernel.org/r/20250305134845.3182193-1-prasad.kummari@amd.com
Signed-off-by: Michal Simek &lt;michal.simek@amd.com&gt;
</content>
</entry>
<entry>
<title>arm64: zynqmp: versal: Consistently use enum tcm_mode</title>
<updated>2025-04-16T11:42:06Z</updated>
<author>
<name>Marek Vasut</name>
<email>marex@denx.de</email>
</author>
<published>2025-02-06T21:29:36Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=931d96b594e029ecde46475ca355da2efb3035b1'/>
<id>urn:sha1:931d96b594e029ecde46475ca355da2efb3035b1</id>
<content type='text'>
Turn anonymous enum TCM_LOCK/TCM_SPLIT into enum tcm_mode {}, set
TCM_LOCK as 0 and TCM_SPLIT as 1 to match LOCK and SPLIT macros in
mach-zynqmp/mp.c, and unify all the functions and their parameters
on this one single enum tcm_mode {} instead of a mix of bool and u8.
No functional change intended.

Signed-off-by: Marek Vasut &lt;marex@denx.de&gt;
Tested-by: Love Kumar &lt;love.kumar@amd.com&gt;
Link: https://lore.kernel.org/r/20250206213039.42756-1-marex@denx.de
Signed-off-by: Michal Simek &lt;michal.simek@amd.com&gt;
</content>
</entry>
<entry>
<title>arm64: versal: Add SelectMAP boot mode identification</title>
<updated>2023-10-09T11:03:23Z</updated>
<author>
<name>Polak, Leszek</name>
<email>LPolak@arri.de</email>
</author>
<published>2023-10-08T14:34:42Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=facfa5659b4dfbfffa91283a1234297a744bf28a'/>
<id>urn:sha1:facfa5659b4dfbfffa91283a1234297a744bf28a</id>
<content type='text'>
The SelectMAP configuration interface provides an 8-bit,
16-bit or 32-bit bidirectional data bus interface to the Versal FPGA
configuration logic that can be used for both configuration and readback.

A connected microcontoller to the SelectMAP interface can load boot
image with bitstream, TF-A (ARM Trusted Firmware) and U-Boot.

This commit adds the missing identification of the SelectMAP mode.

Signed-off-by: Polak, Leszek &lt;LPolak@arri.de&gt;
Reviewed-by: Stefan Roese &lt;sr@denx.de&gt;
Cc: Michal Simek &lt;michal.simek@amd.com&gt;
Cc: Stefan Roese &lt;sr@denx.de&gt;
Link: https://lore.kernel.org/r/DU0PR07MB8419F7765892CDBCE7D559C5C8CFA@DU0PR07MB8419.eurprd07.prod.outlook.com
Signed-off-by: Michal Simek &lt;michal.simek@amd.com&gt;
</content>
</entry>
<entry>
<title>xilinx: Consolidate zynqmp_mmio_read/write in zynqmp_firmware.h</title>
<updated>2023-07-21T07:00:38Z</updated>
<author>
<name>Michal Simek</name>
<email>michal.simek@amd.com</email>
</author>
<published>2023-06-23T12:51:57Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=5b90412cbfcbf7b1df9ed34e0dab255838f43ea5'/>
<id>urn:sha1:5b90412cbfcbf7b1df9ed34e0dab255838f43ea5</id>
<content type='text'>
zynqmp_mmio_read/write() are firmware provided hooks that's why use only
zynqmp_firmware.h for function declaration.

Signed-off-by: Michal Simek &lt;michal.simek@amd.com&gt;
Link: https://lore.kernel.org/r/e7489556f9e447c737a578c169d7e1e43586a273.1687524706.git.michal.simek@amd.com
</content>
</entry>
<entry>
<title>arm64: versal: Add missing prototype for initialize_tcm</title>
<updated>2023-06-12T11:25:02Z</updated>
<author>
<name>Algapally Santosh Sagar</name>
<email>santoshsagar.algapally@amd.com</email>
</author>
<published>2023-06-09T09:05:30Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=b177bb126974e2fbae33c656f9a5a291fefa05b1'/>
<id>urn:sha1:b177bb126974e2fbae33c656f9a5a291fefa05b1</id>
<content type='text'>
Add the missing prototype pointed by below sparse warning
warning: no previous prototype for 'initialize_tcm'
[-Wmissing-prototypes]

Signed-off-by: Algapally Santosh Sagar &lt;santoshsagar.algapally@amd.com&gt;
Signed-off-by: Ashok Reddy Soma &lt;ashok.reddy.soma@amd.com&gt;
Link: https://lore.kernel.org/r/20230609090531.31794-2-ashok.reddy.soma@amd.com
Signed-off-by: Michal Simek &lt;michal.simek@amd.com&gt;
</content>
</entry>
</feed>
