HCL:ZynqMP
Initial work was done a long time ago on Ultra96v1 (board is unfortunately not available any more and v2 is not supported). Please take a look at the manual for Ultra96v1 https://en.opensuse.org/HCL:Ultra96.
The image is tested on Xilinx ZynqMP K26 board with default firmware where there is just need to burn image to SD card and plug it (The same image has been tested on Xilinx ZynqMP zcu102 and zcu104 boards with small changes in DTs by removing pinctrl description and setting up disabled status for vcu and pcie. Pinctrl driver will be available in 5.13-rc1 Linux kernel).
Bootlog
Xilinx Zynq MP First Stage Boot Loader Release 2020.2 Feb 23 2021 - 06:55:50 NOTICE: ATF running on XCK26/silicon v4/RTL5.1 at 0xfffea000 NOTICE: BL31: v2.2(release):xilinx-v2020.2-1-g6ea45ca9b NOTICE: BL31: Built : 06:49:19, Feb 23 2021 U-Boot 2020.01 (Feb 23 2021 - 06:52:37 +0000) Model: ZynqMP K26 RevB Board: Xilinx ZynqMP DRAM: 4 GiB PMUFW: v1.1 Xilinx I2C FRU format at nvmem0: Manufacturer Name: XILINX Product Name: SM-K26-XCL2GC-ED Serial No: 50572B111F2H Part Number: 5057-02ED File ID: 0x0 Revision Number: B Xilinx I2C FRU format at nvmem1: Manufacturer Name: XILINX Product Name: SCK-KV-G Serial No: 50582B112M07 Part Number: 5058-02 File ID: 0x0 Revision Number: B EL Level: EL2 Chip ID: xck26 NAND: 0 MiB MMC: mmc@ff170000: 1 In: serial@ff010000 Out: serial@ff010000 Err: serial@ff010000 Bootmode: QSPI_MODE Reset reason: SOFT Net: No ethernet found. Hit any key to stop autoboot: 0 *** U-Boot Boot Menu *** Auto-Select - 1.CC boot 2.SOM boot Carrier Card (CC) boot device System on Module (SOM) boot device U-Boot console Press UP/DOWN to move, ENTER to select switch to partitions #0, OK mmc1 is current device Scanning mmc 1:1... Found EFI removable media binary efi/boot/bootaa64.efi libfdt fdt_check_header(): FDT_ERR_BADMAGIC Scanning disk mmc@ff170000.blk... ** Unrecognized filesystem type ** ** Unrecognized filesystem type ** Found 4 disks BootOrder not defined EFI boot manager: Cannot load any image 1439600 bytes read in 182 ms (7.5 MiB/s) libfdt fdt_check_header(): FDT_ERR_BADMAGIC Welcome to GRUB! Please press 't' to show the boot menu on this console error: ../../grub-core/video/video.c:761:no suitable video mode found. GNU GRUB version 2.04 βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β*openSUSE Tumbleweed β β Advanced options for openSUSE Tumbleweed β β Start bootloader from a read-only snapshot β β β β β β β β β β β β β β β β β β β β β β β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ Use the β² and βΌ keys to select which entry is highlighted. Press enter to boot the selected OS, `e' to edit the commands before booting or `c' for a command-line. ESC to return previous menu. The highlighted entry will be executed automatically in 0s. Booting `openSUSE Tumbleweed' Loading Linux 5.12.0-2-default ... Loading initial ramdisk ... EFI stub: Booting Linux Kernel... EFI stub: EFI_RNG_PROTOCOL unavailable EFI stub: Using DTB from configuration table EFI stub: Exiting boot services and installing virtual address map... Welcome to openSUSE Tumbleweed dracut-053+suse.93.g039ac07d-1.1 (Initramfs)! [ OK ] Started Dispatch Password β¦ts to Console Directory Watch. [ OK ] Reached target Local Encrypted Volumes. [ OK ] Reached target Local File Systems. [ OK ] Reached target Paths. [ OK ] Reached target Slices. [ OK ] Reached target Swap. [ OK ] Reached target Timers. [ OK ] Listening on Journal Socket (/dev/log). [ OK ] Listening on Journal Socket. [ OK ] Listening on udev Control Socket. [ OK ] Listening on udev Kernel Socket. [ OK ] Reached target Sockets. Starting Create list of stβ¦odes for the current kernel... Starting Journal Service... Starting Load Kernel Modules... Starting Setup Virtual Console... [ OK ] Finished Create list of stβ¦ nodes for the current kernel. [ OK ] Started Journal Service. [ OK ] Finished Load Kernel Modules. Starting Apply Kernel Variables... Starting Create Static Device Nodes in /dev... Starting Create Volatile Files and Directories... [ OK ] Finished Apply Kernel Variables. [ OK ] Finished Setup Virtual Console. [ OK ] Finished Create Static Device Nodes in /dev. [ OK ] Finished Create Volatile Files and Directories. Starting dracut ask for additional cmdline parameters... [ OK ] Finished dracut ask for additional cmdline parameters. Starting dracut cmdline hook... [ OK ] Finished dracut cmdline hook. Starting dracut pre-udev hook... [ OK ] Finished dracut pre-udev hook. Starting Rule-based Manageβ¦for Device Events and Files... [ OK ] Started Rule-based Manager for Device Events and Files. Starting dracut pre-trigger hook... [ OK ] Finished dracut pre-trigger hook. Starting Coldplug All udev Devices... [ OK ] Finished Coldplug All udev Devices. [ OK ] Reached target System Initialization. [ OK ] Reached target Basic System. Starting dracut initqueue hook... [ OK ] Found device /dev/disk/by-β¦f-09e7-4d42-9464-2e1403efe4d4. [ OK ] Finished dracut initqueue hook. [ OK ] Reached target Initrd Root Device. [ OK ] Reached target Remote File Systems (Pre). [ OK ] Reached target Remote Encrypted Volumes. [ OK ] Reached target Remote File Systems. Starting dracut pre-mount hook... [ 14.484457] dracut-pre-mount[417]: Created symlink /etc/systemd/system/systemd-fsck-root.service β /dev/null. [ 16.464513] dracut-pre-mount[732]: Removed /etc/systemd/system/systemd-fsck-root.service. [ OK ] Finished dracut pre-mount hook. Starting File System Checkβ¦09e7-4d42-9464-2e1403efe4d4... [ OK ] Finished File System Checkβ¦f-09e7-4d42-9464-2e1403efe4d4. Mounting /sysroot... [ OK ] Mounted /sysroot. [ OK ] Reached target Initrd Root File System. Starting Reload Configuration from the Real Root... [ OK ] Finished Reload Configuration from the Real Root. [ OK ] Reached target Initrd File Systems. [ OK ] Reached target Initrd Default Target. Starting dracut pre-pivot and cleanup hook... [ OK ] Finished dracut pre-pivot and cleanup hook. Starting Cleaning Up and Shutting Down Daemons... [ OK ] Stopped target Remote Encrypted Volumes. [ OK ] Stopped target Timers. [ OK ] Stopped dracut pre-pivot and cleanup hook. [ OK ] Stopped target Initrd Default Target. [ OK ] Stopped target Basic System. [ OK ] Stopped target Initrd Root Device. [ OK ] Stopped target Paths. [ OK ] Stopped target Remote File Systems. [ OK ] Stopped target Remote File Systems (Pre). [ OK ] Stopped target Slices. [ OK ] Stopped target Sockets. [ OK ] Stopped target System Initialization. [ OK ] Stopped target Swap. [ OK ] Stopped dracut pre-mount hook. [ OK ] Stopped target Local Encrypted Volumes. [ OK ] Stopped Dispatch Password β¦ts to Console Directory Watch. [ OK ] Stopped dracut initqueue hook. [ OK ] Stopped Apply Kernel Variables. [ OK ] Stopped Load Kernel Modules. [ OK ] Stopped Create Volatile Files and Directories. [ OK ] Stopped target Local File Systems. [ OK ] Stopped Coldplug All udev Devices. [ OK ] Stopped dracut pre-trigger hook. Stopping Rule-based Manageβ¦for Device Events and Files... [ OK ] Stopped Rule-based Manager for Device Events and Files. [ OK ] Closed udev Control Socket. [ OK ] Closed udev Kernel Socket. [ OK ] Stopped dracut pre-udev hook. [ OK ] Stopped dracut cmdline hook. [ OK ] Stopped dracut ask for additional cmdline parameters. Starting Cleanup udev Database... [ OK ] Stopped Create Static Device Nodes in /dev. [ OK ] Stopped Create list of staβ¦ nodes for the current kernel. [ OK ] Stopped Setup Virtual Console. [ OK ] Finished Cleaning Up and Shutting Down Daemons. [ OK ] Finished Cleanup udev Database. [ OK ] Reached target Switch Root. Starting Switch Root... Welcome to openSUSE Tumbleweed! [ OK ] Stopped Switch Root. [ OK ] Created slice system-getty.slice. [ OK ] Created slice system-modprobe.slice. [ OK ] Created slice system-serial\x2dgetty.slice. [ OK ] Created slice User and Session Slice. [ OK ] Started Dispatch Password β¦ts to Console Directory Watch. [ OK ] Set up automount Arbitraryβ¦s File System Automount Point. [ OK ] Reached target Local Encrypted Volumes. [ OK ] Stopped target Switch Root. [ OK ] Stopped target Initrd File Systems. [ OK ] Stopped target Initrd Root File System. [ OK ] Reached target Remote File Systems. [ OK ] Reached target Slices. [ OK ] Reached target System Time Set. [ OK ] Listening on Device-mapper event daemon FIFOs. [ OK ] Listening on LVM2 poll daemon socket. [ OK ] Listening on initctl Compatibility Named Pipe. [ OK ] Listening on udev Control Socket. [ OK ] Listening on udev Kernel Socket. Activating swap /dev/disk/β¦08bd-48eb-ac93-16da23241f49... Mounting Huge Pages File System... Mounting POSIX Message Queue File System... Mounting Kernel Debug File System... Mounting Kernel Trace File System... Starting Create list of stβ¦odes for the current kernel... Starting Monitoring of LVMβ¦meventd or progress polling... Starting Load Kernel Module configfs... Starting Load Kernel Module drm... Starting Load Kernel Module fuse... [ OK ] Stopped Journal Service. Starting Journal Service... Starting Load Kernel Modules... Starting Remount Root and Kernel File Systems... Starting Coldplug All udev Devices... [ OK ] Activated swap /dev/disk/bβ¦9-08bd-48eb-ac93-16da23241f49. [ OK ] Mounted Huge Pages File System. [ OK ] Mounted POSIX Message Queue File System. [ OK ] Mounted Kernel Debug File System. [ OK ] Started Journal Service. [ OK ] Mounted Kernel Trace File System. [ OK ] Finished Create list of stβ¦ nodes for the current kernel. [ OK ] Finished Monitoring of LVMβ¦ dmeventd or progress polling. [ OK ] Finished Load Kernel Module configfs. [ OK ] Finished Load Kernel Module drm. [ OK ] Finished Load Kernel Module fuse. [ OK ] Finished Load Kernel Modules. [ OK ] Finished Remount Root and Kernel File Systems. [ OK ] Reached target Swap. Mounting FUSE Control File System... Mounting Kernel Configuration File System... Starting Apply Kernel Variables... Starting Create Static Device Nodes in /dev... [ OK ] Mounted FUSE Control File System. [ OK ] Finished Coldplug All udev Devices. [ OK ] Mounted Kernel Configuration File System. [ OK ] Finished Create Static Device Nodes in /dev. [ OK ] Reached target Local File Systems (Pre). Mounting /.snapshots... Mounting /boot/efi... Mounting /boot/grub2/arm64-efi... Mounting /home... Mounting /opt... Mounting /root... Mounting /srv... Mounting /tmp... Mounting /usr/local... Mounting /var... Starting Wait for udev To β¦plete Device Initialization... Starting Rule-based Manageβ¦for Device Events and Files... [ OK ] Finished Apply Kernel Variables. [ OK ] Mounted /.snapshots. [ OK ] Mounted /boot/efi. [ OK ] Mounted /boot/grub2/arm64-efi. [ OK ] Mounted /home. [ OK ] Mounted /opt. [ OK ] Mounted /root. [ OK ] Mounted /srv. [ OK ] Mounted /tmp. [ OK ] Started Rule-based Manager for Device Events and Files. [ OK ] Mounted /usr/local. [ OK ] Mounted /var. [ OK ] Reached target Local File Systems. Starting Restore /run/initramfs on shutdown... Starting Flush Journal to Persistent Storage... Starting Load/Save Random Seed... [ OK ] Finished Restore /run/initramfs on shutdown. Starting Load Kernel Module configfs... [ OK ] Finished Load Kernel Module configfs. [ OK ] Finished Flush Journal to Persistent Storage. Starting Create Volatile Files and Directories... [ OK ] Finished Create Volatile Files and Directories. Starting Update UTMP about System Boot/Shutdown... [ OK ] Finished Update UTMP about System Boot/Shutdown. [ OK ] Finished Wait for udev To Complete Device Initialization. [ OK ] Reached target System Initialization. [ OK ] Started Watch /etc/sysconfig/btrfsmaintenance. [ OK ] Started Watch for changes in CA certificates. [ OK ] Started Watch for changes in issue snippets. [ OK ] Started Daily Cleanup of Snapper Snapshots. [ OK ] Started Daily Cleanup of Temporary Directories. [ OK ] Reached target Paths. [ OK ] Listening on D-Bus System Message Bus Socket. [ OK ] Reached target Sockets. [ OK ] Reached target Basic System. [ OK ] Started D-Bus System Message Bus. [ OK ] Started irqbalance daemon. Starting Generate issue file for login session... Starting Apply settings from /etc/sysconfig/keyboard... Starting User Login Management... Starting wicked AutoIPv4 supplicant service... Starting wicked DHCPv4 supplicant service... Starting wicked DHCPv6 supplicant service... [ OK ] Finished Apply settings from /etc/sysconfig/keyboard. [ OK ] Started User Login Management. [ OK ] Finished Generate issue file for login session. [ OK ] Started wicked DHCPv6 supplicant service. [ OK ] Started wicked AutoIPv4 supplicant service. [ OK ] Started wicked DHCPv4 supplicant service. Starting wicked network management service daemon... [ OK ] Started wicked network management service daemon. [ OK ] Listening on Load/Save RF β¦itch Status /dev/rfkill Watch. Starting wicked network nanny service... [ OK ] Started wicked network nanny service. Starting wicked managed network interfaces... [ OK ] Finished Load/Save Random Seed. [ OK ] Finished wicked managed network interfaces. [ OK ] Reached target Network. Starting NTP client/server... Starting OpenSSH Daemon... Starting Permit User Sessions... [ OK ] Finished Permit User Sessions. [ OK ] Started Getty on tty1. [ OK ] Started Serial Getty on ttyPS0. [ OK ] Reached target Login Prompts. [ OK ] Started NTP client/server. [ OK ] Reached target System Time Synchronized. [ OK ] Started Backup of RPM database. [ OK ] Started Backup of /etc/sysconfig. [ OK ] Started Balance block groups on a btrfs filesystem. [ OK ] Started Defragment file data and/or directory metadata. [ OK ] Started Scrub btrfs filesystem, verify block checksums. [ OK ] Started Discard unused blocks on a mounted filesystem. [ OK ] Started Check if mainboard battery is Ok. [ OK ] Started Discard unused blocks once a week. [ OK ] Started Daily rotation of log files. [ OK ] Started Timeline of Snapper Snapshots. [ OK ] Reached target Timers. [ OK ] Started OpenSSH Daemon. [ OK ] Reached target Multi-User System. [ OK ] Reached target Graphical Interface. Starting Update UTMP about System Runlevel Changes... [ OK ] Finished Update UTMP about System Runlevel Changes. Welcome to openSUSE Tumbleweed 20210504 - Kernel 5.12.0-2-default (ttyPS0). localhost login: root Password: Last login: Tue Mar 30 00:01:01 on ttyPS0 Have a lot of fun... localhost:~ #