<feed xmlns='http://www.w3.org/2005/Atom'>
<title>u-boot.git/board/xilinx, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/u-boot.git/atom/board/xilinx?h=master</id>
<link rel='self' href='http://cgit.235523.xyz/u-boot.git/atom/board/xilinx?h=master'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/'/>
<updated>2026-07-08T06:55:52Z</updated>
<entry>
<title>arm64: versal-net: Add mmc_get_env_dev() and deduplicate MMC handling</title>
<updated>2026-07-08T06:55:52Z</updated>
<author>
<name>Michal Simek</name>
<email>michal.simek@amd.com</email>
</author>
<published>2026-06-23T12:53:43Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=bbc71f8c28c11fc3fca44371c347b000500509f2'/>
<id>urn:sha1:bbc71f8c28c11fc3fca44371c347b000500509f2</id>
<content type='text'>
The SD and eMMC cases in boot_targets_setup() duplicated the MMC device
lookup, and versal-net relied on the weak mmc_get_env_dev() default
instead of selecting the device matching the boot mode (unlike versal and
zynqmp).

Factor the lookup into mmc_get_bootseq(), mirroring spi_get_bootseq():
it maps the boot mode to the MMC node and returns the device sequence,
optionally handing back the mode banner so only boot_targets_setup()
prints it. mmc_get_env_dev() is now provided as a thin wrapper, and the
SD/eMMC cases call the helper instead of open-coding the lookups. The
local udevice pointer in boot_targets_setup() is no longer needed.

Signed-off-by: Michal Simek &lt;michal.simek@amd.com&gt;
Link: https://patch.msgid.link/7750a79c17146c66adeb83ad6d1bfa78b22ec8fa.1782219202.git.michal.simek@amd.com
</content>
</entry>
<entry>
<title>arm64: versal-net: Look up eMMC device in boot_targets_setup()</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:42Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=d18ebbf33950d33d2292bd26b597493b66a2a991'/>
<id>urn:sha1:d18ebbf33950d33d2292bd26b597493b66a2a991</id>
<content type='text'>
The EMMC_MODE case set bootseq from dev_seq(dev) without ever assigning
dev, so it used an uninitialized pointer and produced a bogus device
sequence in boot_targets.

eMMC is wired to the SD1 controller (mmc@f1050000, see
versal-net-mini-emmc.dts). Look that device up like the SD cases do
before using its sequence number.

Signed-off-by: Michal Simek &lt;michal.simek@amd.com&gt;
Link: https://patch.msgid.link/bf779dcdd30c900d7614c0fa8382cb3f4cb57c20.1782219202.git.michal.simek@amd.com
</content>
</entry>
<entry>
<title>arm64: versal-net: Do not print bootmode from spi_get_env_dev()</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:41Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=e8f4248fc344b60a153b6163fcdd1c5f6aeb740b'/>
<id>urn:sha1:e8f4248fc344b60a153b6163fcdd1c5f6aeb740b</id>
<content type='text'>
spi_get_bootseq() printed the QSPI/OSPI mode banner, which is noise when
called from spi_get_env_dev() during environment setup. The banner is
only meaningful for the "Bootmode:" announcement in boot_targets_setup().

Make spi_get_bootseq() a pure lookup that returns the banner string
through an optional output argument instead of printing it.
spi_get_env_dev() passes NULL and stays silent, while
boot_targets_setup() prints the returned mode name as before.

Signed-off-by: Michal Simek &lt;michal.simek@amd.com&gt;
Link: https://patch.msgid.link/ae257af9d2fe026306b32c647e406450319a3c7a.1782219202.git.michal.simek@amd.com
</content>
</entry>
<entry>
<title>arm64: versal-net: Simplify spi_get_bootseq() bootmode switch</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:40Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=d9938274747cafa24af47d404e78001396f7fdf0'/>
<id>urn:sha1:d9938274747cafa24af47d404e78001396f7fdf0</id>
<content type='text'>
The QSPI and OSPI cases only differ in the SPI device name. Pick the name
in the switch and perform a single uclass_get_device_by_name() lookup
afterwards, instead of repeating the lookup and dev_seq() in every case.

No functional change.

Signed-off-by: Michal Simek &lt;michal.simek@amd.com&gt;
Link: https://patch.msgid.link/191f0f583e2d02c184ea2a2a2fe0ef473ca9fe61.1782219202.git.michal.simek@amd.com
</content>
</entry>
<entry>
<title>arm64: versal-net: Deduplicate SPI bootmode handling</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:39Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=fb3801be128c9d0bf34a1797141a972b0759cb25'/>
<id>urn:sha1:fb3801be128c9d0bf34a1797141a972b0759cb25</id>
<content type='text'>
spi_get_env_dev() and boot_targets_setup() both decoded the QSPI/OSPI
boot modes into a SPI device sequence number with identical
uclass_get_device_by_name() lookups.

Factor that logic into a single spi_get_bootseq() helper that takes the
bootmode and returns the device sequence. spi_get_env_dev() becomes a
thin wrapper around it, and boot_targets_setup() calls it for the
QSPI/OSPI cases instead of open-coding the lookups. Passing the bootmode
in avoids reading the bootmode register twice in boot_targets_setup().

No functional change.

Signed-off-by: Michal Simek &lt;michal.simek@amd.com&gt;
Link: https://patch.msgid.link/f98037220a20c441f0ea964f94647948bc035997.1782219202.git.michal.simek@amd.com
</content>
</entry>
<entry>
<title>arm64: versal-net: 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:37Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=9048a9c44d5ffc99a38227df4167d401f7129aae'/>
<id>urn:sha1:9048a9c44d5ffc99a38227df4167d401f7129aae</id>
<content type='text'>
versal_net_get_bootmode() open-coded the
IS_ENABLED(CONFIG_ZYNQMP_FIRMWARE) selection between the firmware call
zynqmp_pm_get_bootmode_reg() and a direct readl() in board code. Like
the Versal change, move the whole function behind an overridable hook so
generic board code stays free of firmware specifics and is ready for
SCMI.

The weak versal_net_get_bootmode() in arch/arm/mach-versal-net does the
plain MMIO read via versal_net_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/be67e9c6d0bc36840a46594413886d2003967c64.1782219202.git.michal.simek@amd.com
</content>
</entry>
<entry>
<title>arm64: versal-net: Move SoC detection 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:36Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=4b3ead85ddf03ccf2eef2b81bdd0e1af34f0f651'/>
<id>urn:sha1:4b3ead85ddf03ccf2eef2b81bdd0e1af34f0f651</id>
<content type='text'>
soc_detection() and soc_name_decode() read the PMC_TAP version/idcode
registers and decode the platform. This is SoC information rather than
board policy, and a firmware interface could provide it instead, so it
does not belong in board code.

Move both functions, together with the shared platform_id and
platform_version state, into arch/arm/mach-versal-net where they still
override the weak stubs in the Xilinx common board code. The board file
drops the now unused linux/bitfield.h include.

Signed-off-by: Michal Simek &lt;michal.simek@amd.com&gt;
Link: https://patch.msgid.link/8757111cb254543d61541fb030d51f62c3c555a8.1782219202.git.michal.simek@amd.com
</content>
</entry>
<entry>
<title>arm64: zynqmp: 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:34Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=722cd61c35444835dbfbd0d2a25b2593eae3fe3f'/>
<id>urn:sha1:722cd61c35444835dbfbd0d2a25b2593eae3fe3f</id>
<content type='text'>
board_early_init_r() programmed the system timestamp counter directly
with readl()/writel() in board code. This is SoC register setup rather
than board policy, and similar code exists across the Xilinx SoCs.

Move it into zynqmp_timer_setup() in arch/arm/mach-zynqmp so the board
hook only keeps the EL3 guard and calls the helper. The asm/arch/clk.h
include (for zynqmp_get_system_timer_freq()) moves to cpu.c along with
the code.

Signed-off-by: Michal Simek &lt;michal.simek@amd.com&gt;
Link: https://patch.msgid.link/2d8f2419fab314b4ff8fd53b846e1dd6151586d3.1782219202.git.michal.simek@amd.com
</content>
</entry>
<entry>
<title>arm64: versal-net: 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:33Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=d885e802ce8722a4dae77255b7aa16ccaf7976d8'/>
<id>urn:sha1:d885e802ce8722a4dae77255b7aa16ccaf7976d8</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_net_timer_setup() in arch/arm/mach-versal-net 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/10dd9f35d03be0402ce13475f20b2cd3761189a6.1782219202.git.michal.simek@amd.com
</content>
</entry>
<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>
</feed>
