Project Purpose:
The primary goal of this project is to explore and showcase the capabilities of the AES-ACC-DPEMMC-G module. This includes demonstrating its functionality, explaining its operation, and deploying it in practical scenarios. Although primarily recognized for its DisplayPort capabilities, the module also boasts 32 GB of eMMC memory, which enables it to boot an operating system, thereby extending its utility beyond just video output.
Overview:
In this review, we will cover several key aspects:
- Specifications of the Board.
- Process of downloading and flashing PetaLinux image.
- Utilization of the High-Speed I/O with Dual GTR.
Table of Contents:
- Unboxing - Initial examination and unpacking of the module.
- Additional Hardware - Overview of supplementary hardware components required for setup.
- Required Software - List of software needed to configure and operate the module.
- Board Description - Detailed explanation of the board's features and technical specifications.
- Quick explanation of the Process – Detailed non-technical breakdown of the process steps
- Project Steps
- Flashing PetaLinux on a Micro SD Card - Step-by-step guide to preparing the boot media.
- Booting the ZU Board - Instructions for starting the Zynq UltraScale+ board.
- Connecting the AES-ACC-DPEMMC-G - Procedure for interfacing the module with the ZU board.
- Loading PetaLinux on the AES-ACC-DPEMMC-G - Process for installing the operating system onto the eMMC.
- Booting the ZU Board from the AES-ACC-DPEMMC-G - Steps to initiate boot from the newly configured eMMC.
- Conclusion - Final thoughts and summary of the project findings.
Unboxing:
The package only contains the module itself.
Additional Hardware & Cables:
1- ZU board 1CG
2- USB C and a 15-watt adapter to power the board.
3- Micro USB for JTAG.
4- Micro SD card large enough to store the PetaLinux.
5- Mini DPU to HDMI/DPU cable/adapter.
Note: Make sure that the cable/adapter used is compatible with both the board, and the monitor.
Required Software:
1- PetaLinux (2022.2)
2- Burning software (e.g. Balena Etcher)
3- Serial interface software (e.g. minicom)
Brief Description of the Module:
The AES-ACC-DPEMMC-G is a versatile and powerful expansion module designed for use with FPGA and SoC development boards, particularly those in the Zynq UltraScale+ series. This module is specifically engineered to enhance the capabilities of development systems by integrating additional features that facilitate advanced applications in areas such as embedded computing, IoT, and AI.
Key Features of the AES-ACC-DPEMMC-G:
- 32 GB eMMC Memory: Provides substantial onboard storage capacity, enabling the module to host operating systems, applications, and data. This makes it ideal for systems that require fast, reliable non-volatile storage.
- DisplayPort Interface: Equipped with 2 lanes capable of outputting video at resolutions up to 4K x 2K @ 30 fps. This feature is essential for applications requiring high-definition video outputs and makes the module suitable for advanced multimedia applications, digital signage, and more.
- GPIO LEDs: Includes general-purpose input/output LEDs that can be used for basic user interface functions, status indicators, or debugging purposes.
Applications:
The AES-ACC-DPEMMC-G is particularly useful for developers working on FPGA-based prototypes and projects that require high-speed data storage and video output capabilities. Its integration of DisplayPort and eMMC storage on a single module simplifies the design and development of embedded systems, particularly in fields like IoT and AI where both high-resolution video output and substantial data storage are often necessary.
This module is a crucial tool for developers looking to leverage the advanced processing power of the ZU board, providing it with the necessary interfaces and storage options to create robust, multimedia-rich applications
Steps of the Project:
The project is divided into 2 main parts:
- Downloading and flashing PetaLinux image on a Micro SD Card.
- Loading Petalinux image from USB drive to the AES-ACC-DPEMMC-G.
A quick explanation of the Process:
The primary objective of this project is to display an image on the screen while enabling the Zynq UltraScale+ (ZU) board to boot from the AES-ACC-DPEMMC-G module. The process involves several key steps:
- Initial Boot from SD Card: Start by booting the ZU board from an SD card that contains the PetaLinux operating system.
- Prepare the USB Flash Drive: Connect a USB flash drive to the ZU board, which holds the root files necessary for PetaLinux.
- Transfer Root Files: Copy the root files from the USB flash drive to the AES-ACC-DPEMMC-G module. This step is crucial for preparing the module to serve as the new boot device.
- Configure the Module: Properly configure the AES-ACC-DPEMMC-G module to ensure it can function as the primary boot device.
- Adjust Boot Settings: Finally, modify the boot settings on the ZU board to switch the boot source from the SD card to the AES-ACC-DPEMMC-G module.
By following these steps, the ZU board will be able to boot from the AES-ACC-DPEMMC-G module, enabling enhanced performance and functionality for your applications.
Downloading and flashing PetaLinux image on a Micro SD Card.
- Download and unzip the ZUB1CG-specific base BSP folder for the 2022.2 version of PetaLinux in the desired directory.
2022.2 > BSP > zub1cg_sbc_base_2022_2.bsp
Use the following link address: 2022.2 Petalinux Image BSP
- Flash the PetaLinux image to the Micro SD Card using burning software such as “Balena Etcher”.
- From the extracted BSP folder navigate to: pre-built > linux > images. Then copy both “rootfs.wic”, and “rootfs.tar.gz” to a USB Flash Drive.
- Plug into the ZUB1CG:
- Micro SD card (to boot PetaLinux)
- Micro USB (JTAG)
- USB type C (Power)
- AES-ACC-DPEMMC-G
- Mini display port cable
- USB Flash Drive (containing the root files)
- Set the boot mode switches on the ZUBoard to SD card mode. (SW1-4; 0x5; off-on-off-on)
- Turn on the FPGA board by pressing SW7.
7. Disconnect the Micro USB cable open the terminal and run the following command (dmesg -w) then reconnect the ZU Board 1CG USB cable to your PC to check through which USB-to-serial port is used:
FTDI-based JTAG and USB to Serial are used on ZU Board 1CG, which has 4 USB to serial ports. use the second port for the Linux terminal i.e. if /dev/ttyUSB0 is the first port, you use /dev/ttyUSB1 as the Linux terminal from ZU Board 1CG.
8. Open a new terminal and use minicom, run the following command:
“sudo minicom -D /dev/ttyUSB1”
Note: change the number at the end respectively to the one your board is connected through.
9. You will be asked to enter the login username; type in "root" (no password is needed)
Now the FPGA will start displaying on the screen:
Loading Petalinux image from USB drive to the AES-ACC-DPEMMC-G.
Now that we are on the board itself, we need to extract root files from the USB flash drive to the eMMC Storage.
- Run the following command to check where each thing is loaded: “lsblk”
In my case, the USB flash drive on which I have the root files is on “sda1”, and the eMMC module is on “mmcblk1”
2. run the following command to extract the file from the USB flash drive to the eMMC module:
“dd if=/run/media/sda1/rootfs.wic of=/dev/mmcblk1 bs=1M conv=fsync status=progress”
Note: make sure to change the number next to the “sda” according to where your USB is loaded.
- After the process is done, type “sync”
Now we need to resize the new EXT4 Partition, execute the following commands:
- umount /dev/mmcblk1*
- parted /dev/mmcblk1 resizepart 2 100%
- e2fsck -f /dev/mmcblk1p2 -y
- resize2fs /dev/mmcblk1p2
- turn of the board by typing “shutdown now”.
- Unplug:
- USB flash drive.
- Micro SD Card
3. Change the boot mode switches to eMMC boot (SW1-4; 0x9; on-off-off-on).
4. Power on the board
5. When you see the prompt "Hit any key to stop autoboot," please press any key. After stopping the autoboot, proceed by entering the following commands:
- “setenv bootargs "console=ttyPS0,115200 earlycon root=/dev/mmcblk1p2 rw rootwait cma=1500M"” This command will fetch the “rootfs” from the eMMC.
- “saveenv” This command saves the changes on the u-boot to be used with every boot
- “fatload mmc 1:1 0x4000000 image.ub” This command will load the PetaLinux kernel image from the eMMC
- “bootm 0x04000000” This command will boot the board.
Conclusion:
This review successfully demonstrated the capabilities of the AES-ACC-DPEMMC-G module, showcasing its utility in both display output and as memory storage. We explored the board's specifications, installed PetaLinux, and utilized its high-speed I/O capabilities.
The project involved setting up the necessary hardware and software, executing detailed steps from flashing PetaLinux on an SD card to booting the ZU board from the eMMC on the AES-ACC-DPEMMC-G. Each phase was designed to ensure ease of understanding and execution.
The AES-ACC-DPEMMC-G has proven essential for developers working on FPGA-based systems, especially in applications that require robust multimedia handling and substantial data storage. Its integration with the ZUB1CG enhances system capabilities, facilitating advancements in embedded computing, IoT, and AI.
In summary, the project not only highlighted the AES-ACC-DPEMMC-G's functionality but also provided a clear framework for using this technology to boost system performance, proving it to be a valuable component for modern FPGA development tasks.