| Beagle-V Fire |
| ============== |
| |
| BeagleV Fire is a low-cost RISC-V 64-bit based platform, powered by |
| Microchip's PolarFire SoC. This file describes how to use the |
| pre-defined Buildroot configuration for the Beagle-V Fire board. |
| |
| Further information about the Beagle-V Fire can be found at |
| https://docs.beagleboard.org/latest/boards/beaglev/fire/index.html. |
| |
| |
| Building |
| ======== |
| |
| Configure Buildroot using the default board configuration: |
| |
| '$ make beaglev_fire_defconfig' |
| |
| Customise the build as necessary: |
| |
| '$ make menuconfig' |
| |
| Start the build: |
| |
| '$ make' |
| |
| |
| Result of the build |
| =================== |
| |
| Once the build has finished you will have the following files: |
| |
| output/images/ |
| +-- boot.scr |
| +-- boot.vfat |
| +-- Image |
| +-- Image.gz |
| +-- beaglev_fire.itb |
| +-- beaglev_fire.its |
| +-- mpfs-beaglev-fire.dtb |
| +-- payload.bin |
| +-- rootfs.ext2 |
| +-- rootfs.ext4 |
| +-- rootfs.tar |
| +-- sdcard.img |
| +-- u-boot.bin |
| |
| |
| Flashing the image to your eMMC |
| =============================== |
| |
| By default Buildroot builds an image suitable for the eMMC. The first partition |
| of this image contains a U-Boot binary, embedded in a Hart Software Services |
| (HSS) payload. The second partition contains a FAT filesystem with a U-Boot env |
| and an ITB file containing the kernel and the device tree. The third partition |
| contains the file system. This image can be written directly to the eMMC. |
| |
| To do so, follow the below steps: |
| |
| 1. Connect to BeagleV-Fire UART debug port using a 3.3v USB to UART bridge. |
| |
| 2. Now you can run `tio <port>` in a terminal window to access the UART debug |
| port connection. |
| e.g `tio /dev/ttyUSB4` |
| |
| 3. Once you are connected properly, you can press the Reset button which will |
| show you a progress bar. |
| |
| 4. Press any key in the terminal application to stop the HSS from booting. This |
| will give you access to the HSS command line interface and a ">>" for input |
| will be displayed in the terminal. |
| |
| 5. Type `usbdmsc` in the HSS command line interface. The HSS `usbdmsc` command |
| exposes the eMMC as a USB mass storage device using the USB type C connector. |
| If successful, a message saying "USB Host connected" will be displayed. |
| |
| 6. The eMMC should now appear as mass storage device/drive on your host PC, as |
| it is mounted through your USB type C connector. |
| |
| 7. Now, all you need to do is dd the image to the eMMC, which can be done with |
| the following command on your development host: |
| |
| '$ sudo dd if=output/images/sdcard.img of=/dev/sdX bs=1M' |
| |
| You will have to replace /dev/sdX by the actual device name of your eMMC. |
| Please, be especially cautious not to overwrite the wrong drive as this cannot |
| be undone. |
| |
| 8. Once the image transfer has completed you can type `CTRL+C` to disconnect |
| your device. |
| |
| 9. Finally, type `boot` or reset your board to boot your new Linux image. |
| |
| Customize BeagleV-Fire Cape Gateware Using Verilog (Optional) |
| ============================================================= |
| |
| To customize your Beagle-V Fire gateware please follow the guide below to |
| create your custom bitstream (steps 1 - 6): |
| https://docs.beagleboard.org/latest/boards/beaglev/fire/demos-and-tutorials/gateware/customize-cape-gateware-verilog.html |
| |
| |
| Program BeagleV-Fire With Your Custom Bitstream with Buildroot |
| ============================================================== |
| |
| After following the steps 1-6 from the above tutorial, you should now have a |
| artifacts.zip file on your local host. |
| |
| Unzip the downloaded artifacts.zip file. |
| |
| Go to the custom FPGA design directory: |
| 'cd artifacts/bitstreams/my_custom_fpga_design' |
| |
| On your Linux host development computer, copy the bitstream to BeagleV-Fire |
| board, replacing </path/to/your/> with the path to your BeagleV-Fire root file |
| system. |
| 'cp -r ./LinuxProgramming /path/to/your/buildroot/board/beagleboard/beaglev_fire/rootfs-overlay/etc/' |
| |
| To apply these changes to your image, make sure to re-build it with: |
| `make` |
| |
| Then, re-flash your image - to ensure you have the necessary firmware files - by |
| following the above section "Flashing the image to your eMMC". |
| |
| On BeagleV-Fire, |
| 1. Make your update gateware script executable |
| 'chmod +x /usr/share/microchip/update-gateware.sh' |
| 2. Create a firmware directory |
| 'mkdir /lib/firmware' |
| 3. Change to the directory of your gateware script |
| `cd /usr/share/microchip/` |
| 3. initiate the reprogramming of the FPGA with your gateware bitstream: |
| './update-gateware.sh /etc/LinuxProgramming/' |
| |
| Wait for a couple of minutes for the BeagleV-Fire to reprogram itself. |