This repository is originated from plutosdr-fw, version 0.38.
The original README from ADI is here.
This repository contains firmware of Pluto-Net hardware, the software and hardware contains ABSOLUTLY NO warrenty. There is no guarantee that the hardware and firmware would perform as normal.
Legal info contained in build artifacts.
Ubuntu 20.04
Xilinx Vivado 2022.2
Xilinx Vitis 2022.2
git build-essential fakeroot libncurses5-dev libssl-dev ccache dfu-util u-boot-tools
device-tree-compiler libssl1.0-dev mtools bc python cpio zip unzip rsync file
wget cpio file device-tree-compiler flex bison libgmp-dev libmpc-dev build-essential
The Ubuntu 20.04 official repository has deprecated libssl-dev, use dpkg install deb package dependency/libssl1.0.2_1.0.2u-1~deb9u7_amd64.deb
to meet the requirements by this project.
Only tested under ubuntu 20.04 and Vivado 2022.2, gcc 9.4.0.
Clone this repository with git clone https://github.com/DCZYewen/plutonet-fw
.
Init the submodule of git repo, git submodule update --init --recursive
.
Edit the Makefile and setupenv to specify your custom Xilinx Design Tool Kit path.
Generate a serial by script generate_serial.sh random
or generate_serial.sh your_costom_serial
. (The original design uses micron's api flash, the old ways to read unique id is not valid on Winbond/GigaDevice products.)
Do make clean && make $$ bash collect_artifacts.sh
, check the build/firmware.zip
.
If you wanted to flash the firmware, run bash flash_firmware_dfu.sh
. If your hardware is blank, or bootloader is corrupted, use Vivado to program the boot.bin with fsbl.elf from the firmware.zip.
You can customize the device's network MAC address by edit the dts in linux/arch/arm/boot/dts/zynq-pluto-sdr-revb.dts
.
Edited the original xc7z0101clg225 to xc7z0101clg400, which provides more MIOs to achieve SD card and ethernet capabilities.
Edited linux kernel dts to make the Broadcom BCM54612E PHY work.
Edited the some scripts to make the compile and collect work easier.
Edited the uboot to let the ethernet work and dual core cpu support.
Edited buildroot to add some more utilities to better evaluate the performance of the board.
Edited buildroot to support hardware serial num to support single host multiple devices.
Edited the firmware version cuz MATLAB extension refuses to work under dirty builds.
File | Comment |
---|---|
pluto.frm | Main PlutoSDR firmware file used with the USB Mass Storage Device |
pluto.dfu | Main PlutoSDR firmware file used in DFU mode |
boot.frm | First and Second Stage Bootloader (u-boot + fsbl + uEnv) used with the USB Mass Storage Device |
boot.dfu | First and Second Stage Bootloader (u-boot + fsbl) used in DFU mode |
uboot-env.dfu | u-boot default environment used in DFU mode |
plutosdr-fw-vX.XX.zip | ZIP archive containg all of the files above |
plutosdr-jtag-bootstrap-vX.XX.zip | ZIP archive containg u-boot and Vivao TCL used for JATG bootstrapping |
firmware.zip | ZIOP archive containg all arrtifacts to flash a Pluto-Net from scrach. |