Amrit Chandar
Abinav Krishnan
README


In the vivado block diagram edit the ZynqMP core and enable the display port. Then you can export the design to an xsa design. There is no other modification to the baseline project needed aside from enabling the Display Port. To enable the display port, edit the zynqMP core and click on the box labeled DisplayPort. In the following menu enable DisplayPort under the high speed tab, set DPAUX to MIO 27 … 30, and set Lane Selection to Dual Lower.








This command allows you to access petalinux on the LRC server:


source /usr/local/packages/Xilinx_2022.2/petalinux/2022.2/settings.sh


umask 0022
                


Create a new petalinux project:


petalinux-create --type project --name BASELINE --source ../BSP/u96v2_sbc_base_2022_2.bsp   --template zynqMP


After creating the project, cd into the directory created


Add hardware description (xsa):


Configure the new project by pointing to the HW description produced by the Xilinx SDK. This is the xsa file you created in Vivado.
# It is during this config that you will setup the partitioning for uBuntu


petalinux-config --get-hw-description=/misc/scratch/mcdermot/BASELINE_SP_2024/system.xsa






#  --------   SPECIAL ULTRA96 EDITS that MUST be done for 2022.2   -------------------- =======================================================================================


gedit components/plnx_workspace/device-tree/device-tree/system-bsp.dtsi
gedit project-spec/meta-avnet/recipes-bsp/device-tree/files/u96v2-sbc/system-bsp.dtsi




Comment out the following lines:


/* <----------------------------------------------
&axi_intc_0 {
   compatible = "xlnx,xps-intc-1.00.a";
   interrupt-parent = <&gic>;
   interrupts = <0 95 1>;
};
&amba_pl {
   zyxclmm_drm {
          compatible = "xlnx,zocl";
          status = "okay";
          interrupt-parent = <&axi_intc_0>;
          interrupts = <0  4>, <1  4>, <2  4>, <3  4>,
             <4  4>, <5  4>, <6  4>, <7  4>,
             <8  4>, <9  4>, <10 4>, <11 4>,
             <12 4>, <13 4>, <14 4>, <15 4>,
             <16 4>, <17 4>, <18 4>, <19 4>,
             <20 4>, <21 4>, <22 4>, <23 4>,
             <24 4>, <25 4>, <26 4>, <27 4>,
             <28 4>, <29 4>, <30 4>, <31 4>;
   };
};
 ---------------------------------> */


Configure FSBL:


petalinux-config  -c bootloader
petalinux-build -c bootloader


Configure ATF:


petalinux-build -c arm-trusted-firmware


Configure PMU:


petalinux-config -c pmufw
petalinux-build  -c pmufw


Configuring u-boot:


petalinux-config  -c u-boot
petalinux-build -c u-boot


go to device drivers -> Graphics support and enabled the following switches:


* Enable Arm Mali Display Processor support
* Enable video support for ZynqMP Display Port


Configuring Kernel:


petalinux-config -c kernel
petalinux-build -c kernel


* go to device drivers -> graphics support -> arm devices and enabled arm Mali Display Processor
* Go to device drivers -> Input device support and enable Mice, Keyboards, and set resolution to the resolution of your display under mouse settings.




Build the DTB for ZED & CORA  (REMEMBER to FIX dtsi for the CORA board)
# ==================================================================================================================


petalinux-build -c device-tree




Configuring rootfs:


petalinux-config -c rootfs


* Image Feature
   * Package management
      * Package-feed-urls: https://petalinux.xilinx.com/sswreleases/rel-v2020.2/feeds/ultra96-zynqm/
* Petalinux Package Groups
   * Packagegroup-petalinux
   * Packagegroup-petalinux-audio
   * Packagegroup-petalinux-display-debug
   * Packagegroup-petalinux-matchbox
   * Packagegroup-petalinux-utils
   * Packagegroup-petalinux-v4lutils
   * Packagegroup-petalinux-x11
   * Packagegroup-petalinux-x11-dev
   * Packagegroup-petalinux-xen
* File System Packages 
   * Admin
      * Sudo
         * sudo
   * Libs
      * libmali-xlnx
      * libmali-xlnx-dev (mali-backend-defaults = x11)
      * libx11
      * libxdamage
      * libxext
      * Libxfixes
      * Libgcc
      * which
   * Base
      * Busy box
      * diffutils
      * Kmod
         * Kmod,
         * libkmod
      * Shell
         * bash
      * Tar
      * Util-linux
   * Console
      * Network
         * Wget
         * Ethtool
         * openssh
      * Utils
         * bash-completion
         * git
         * Grep
         * Gzip
         * Unzip
         * Vim
         * Zip
         * Man
         * man-pages
         * File
   * Devel
      * make
   * Misc
      * Gcc-runtime
         * Libstdc++-dev
         * Libstdc++
      * Gdb
      * Glib-2.0
      * Glibc
      * packagegroup-core-buildessential
      * Python3
      * Qemu
      * Valgrind
   * Network
      * Wpa-supplicant
   * X11
      * Gnome -> gnome-common


This command connects everything together:


petalinux-package --boot --fsbl /<petalinux project dir>/images/linux/zynqmp_fsbl.elf --fpga /<petalinux project dir>/images/linux/system.bit --u-boot --force


At this point you are ready to burn an SD card with the image you created. You will need to use a linux machine to partition the sd card into the rootfs and boot sector partitions. The rootfs partition should be in EXT4 format.


You can now boot up the board with the SD card. Find a monitor and mini display cable that is compatible with the zynqmp board so you can test the desktop interface.


Additionally, you can add aliases through the backdoor.