diff --git a/boards/beaglev/fire/02-quick-start.rst b/boards/beaglev/fire/02-quick-start.rst index 6aa989a3ba39cfe34819e7b6ca2f3676611ae955..443a1e3d98fc19a4e24751455062dfcdc81d9c59 100644 --- a/boards/beaglev/fire/02-quick-start.rst +++ b/boards/beaglev/fire/02-quick-start.rst @@ -75,5 +75,8 @@ It will be different for Mac and Windows operatig systems. To find serial port f Demos and Tutorials ******************* -:ref:`beaglev-fire-flashing-board` +* :ref:`beaglev-fire-gateware-version` +* :ref:`beaglev-fire-flashing-board` +* :ref:`beaglev-fire-gateware-design` +* :ref:`beaglev-fire-mchp-fpga-tools-installation-guide` diff --git a/boards/beaglev/fire/05-demos.rst b/boards/beaglev/fire/05-demos.rst index f110bfd105784a8accfb447006d28156b48abbf9..ad003fa2421b6a35b6beb8ca5f34e62ec61daac1 100644 --- a/boards/beaglev/fire/05-demos.rst +++ b/boards/beaglev/fire/05-demos.rst @@ -15,4 +15,6 @@ Demos :maxdepth: 1 demos-and-tutorials/flashing-board - demos-and-tutorials/mchp-fpga-tools-installation-guide \ No newline at end of file + demos-and-tutorials/mchp-fpga-tools-installation-guide + demos-and-tutorials/gateware/index + demos-and-tutorials/gateware/how-to-find-out-whats-on-the-board diff --git a/boards/beaglev/fire/demos-and-tutorials/flashing-board.rst b/boards/beaglev/fire/demos-and-tutorials/flashing-board.rst index ae933e477b7f080eef059568f5f663574bdc9ab8..52d52f6aa550c78705dcd3aa4f22beadf8adcaf4 100644 --- a/boards/beaglev/fire/demos-and-tutorials/flashing-board.rst +++ b/boards/beaglev/fire/demos-and-tutorials/flashing-board.rst @@ -3,6 +3,12 @@ Flashing gateware and Linux image ################################## +.. todo:: + + This is the *hard* way! Special cables and FlashPros are not required when using the firmware we initially ship on the board. This tutorial should be + rescripted as how to _unbrick_ your board. Also, we have other work-arounds using software and GPIOs rather than FlashPros. Let's not put this in user's + face as *the* experience when it is far more painful than using the `change-gateware.sh` script and "hold BOOT button when applying power" solutions we've created! + In this tutorial we are going to learn to flash the gateware image to FPGA and ``sdcard.image`` to eMMC storage. diff --git a/boards/beaglev/fire/demos-and-tutorials/gateware/how-to-find-out-whats-on-the-board.rst b/boards/beaglev/fire/demos-and-tutorials/gateware/how-to-find-out-whats-on-the-board.rst new file mode 100644 index 0000000000000000000000000000000000000000..9c09856e92c274cb36cb2efeff0925857e0a9c90 --- /dev/null +++ b/boards/beaglev/fire/demos-and-tutorials/gateware/how-to-find-out-whats-on-the-board.rst @@ -0,0 +1,56 @@ +.. _beaglev-fire-gateware-version: + +How to retrieve BeagleV-Fire's gateware version +############################################### + +There are two methods to find out what gateware is programmed on a board. + +Device Tree +=========== +The device tree overlays contains the list of gateware blocks included in the overall gateware design. +You can retrieve that information using the following command: + +.. code-block:: + + tree /proc/device-tree/chosen/overlays/ + +This should give an output similar to the one below. + +.. figure:: media/dts-design-info.png + :align: center + +The gateware version can be retrieve by reading one of the overlay files. For example, the command: + +.. code-block:: + + cat /proc/device-tree/chosen/overlays/ROBOTICS-CAPE-GATEWARE + + +should result in: + +.. figure:: media/dts-design-version.png + :align: center + +where the result of a "git describe" command on the gateware repository is displayed. This provides the +most recent tag on the gateware repository followed by information about additionanl commits if some +exist. In the example above, the gateware was created from a gateware repository hash 3e0d338 which is +5 commits more recent than tag BVF-0.3.0. + +Bootloader messages +=================== +The Hart Software Services display the gateware design name and design version retrieve from the FPGA +at system start-up. + +.. figure:: media/hss-design-info.png + :align: center + +The design name is the name of the build option selected when using the bitstream-builder to generate +the bitstream. The number at the end of the design name is the hash of the gateware repository used +to build the bitstream. + +The design version is specified as part of the bitstream-builder build configuration option. + +Please note that design name "BVF_GATEWARE" indicates that the bitstream used to program the board was +generated directly from the gateware repositories scripts and not the bitstream-builder. You might +see this when customizing the gateware. Seeing "BVF_GATEWARE" as the design name should be a warning +sign that there is a disconnect between the hardware and software on your board. diff --git a/boards/beaglev/fire/demos-and-tutorials/gateware/index.rst b/boards/beaglev/fire/demos-and-tutorials/gateware/index.rst new file mode 100644 index 0000000000000000000000000000000000000000..601861654618ccb0df0fd8f9c24269600052f086 --- /dev/null +++ b/boards/beaglev/fire/demos-and-tutorials/gateware/index.rst @@ -0,0 +1,82 @@ +.. _beaglev-fire-gateware-design: + +Gateware Design Introduction +############################ + +The PolarFire SoC device used on BeagleV-Fire is an SoC FPGA which includes a RISC-V processors +subsystem and a PolarFire FPGA on the same die. The gateware configures the Microcprosessor +subsystem's hardware and programs the FPGA with digital logic allowing customization of the use of +BeagleV-Fire connectors. + +Gateware Architecture +===================== + +The diagram below is a simplified overview of the gateware's structure. + +.. figure:: media/Gateware-Flow-simplified-overview.png + :align: center + :alt: BeagleV-Fire Simplified Gateware + + +The overall gateware is made-up of several blocks, some of them interchangeable. These blocks are +all clocked and reset by another "Clock and Resets" block not showed in the diagram for clarity. + +Each gateware block is associated with one of BeagleV-Fire's connectors. + +All gateware blocks have an AMBA APB target interface for software to access control and status registers +defined by the gateware to operate digital logic defined by the gateware block. This is the +software's control path into the gateware block. + +Some gateware blocks also have an AMBA AXI target and/or source interfaces. The AXI interfaces are +typically used to move high volume of data at high throughput in and out of DDR memory. For example, +the M.2 gateware uses these interfaces to transfer data in and out of its PCIe root port. + +Cape Gateware +------------- +The cape gateware handles the P8 and P9 connectors signals. This is where support for specific capes is +implemented. + +This is a very good place to start learning about FPGA and how to customize gateware. + + +SYZYGY Gateware +--------------- +The SYZYGY gateware handles the high-speed connector signals. This connector includes: + - up to three transceivers capable of 12.7Gbps communications + - One SGMII interface + - 10 high-speed I/Os + - Clock inputs + +There is a lot of fun that can be had with this interface given its high-speed capabilities. + +Please note that only two tranceivers can be used when the M.2 interface is enabled. + +MIPI-CSI Gateware +----------------- +The MIPI gateware handles the signals coming from the camera interface. + +Gateware for the MIPI-CSI interface is Work-In-Progress. + + +M.2 Gateware +------------ +The M.2 gateware implements the PCIe interface used for Wi-Fi modules. It connects the processor subsystem +to the PCIe controller associated with the tranceivers bank. + +There is limited fun to have here. You either include this block or not in your bitstream. + +The M.2 gateware uses one of the four available 12.7 Gbps transceivers. Only two out of the three SYZYGY +tranceivers can be used when the M.2 is included in the bitstream. This gateware needs to omited from +the bitstream if you want to use all three 12.7Gbps transceivers on the SYZYGY high-speed connector. + +RISC-V Processors subsystem +--------------------------- +The RISC-V Processors Subsystem also includes some gateware mostly dealing with exposing AMBA bus interfaces +for the other gateware blocks to attach to. It also handles immutable aspects of the gateware related to how +some PolarFire-SoC signals are used to connect BeagleV-Fire peripherals such as the ADC and EEPROM. +As such the RISC-V Processors Subsystem gateware is not intended to be customized. + + + + + diff --git a/boards/beaglev/fire/demos-and-tutorials/gateware/media/Gateware-Flow-bitstream-builder-full-picture.png b/boards/beaglev/fire/demos-and-tutorials/gateware/media/Gateware-Flow-bitstream-builder-full-picture.png new file mode 100644 index 0000000000000000000000000000000000000000..7d37d3d8d7cb97d37cbe908ac39f4fae7c068d55 Binary files /dev/null and b/boards/beaglev/fire/demos-and-tutorials/gateware/media/Gateware-Flow-bitstream-builder-full-picture.png differ diff --git a/boards/beaglev/fire/demos-and-tutorials/gateware/media/Gateware-Flow-simplified-overview.png b/boards/beaglev/fire/demos-and-tutorials/gateware/media/Gateware-Flow-simplified-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..b9d513bf5957f258ea7232558409e74672f48181 Binary files /dev/null and b/boards/beaglev/fire/demos-and-tutorials/gateware/media/Gateware-Flow-simplified-overview.png differ diff --git a/boards/beaglev/fire/demos-and-tutorials/gateware/media/dts-design-info.png b/boards/beaglev/fire/demos-and-tutorials/gateware/media/dts-design-info.png new file mode 100644 index 0000000000000000000000000000000000000000..a97eb3351c3dc6496f99821f4da5bd0128e50b91 Binary files /dev/null and b/boards/beaglev/fire/demos-and-tutorials/gateware/media/dts-design-info.png differ diff --git a/boards/beaglev/fire/demos-and-tutorials/gateware/media/dts-design-version.png b/boards/beaglev/fire/demos-and-tutorials/gateware/media/dts-design-version.png new file mode 100644 index 0000000000000000000000000000000000000000..a848d98bf719372ae1a1e9e7dceee8026b88e038 Binary files /dev/null and b/boards/beaglev/fire/demos-and-tutorials/gateware/media/dts-design-version.png differ diff --git a/boards/beaglev/fire/demos-and-tutorials/gateware/media/hss-design-info.png b/boards/beaglev/fire/demos-and-tutorials/gateware/media/hss-design-info.png new file mode 100644 index 0000000000000000000000000000000000000000..723a8f4b15f708c30e601defa56748c48c375cd6 Binary files /dev/null and b/boards/beaglev/fire/demos-and-tutorials/gateware/media/hss-design-info.png differ diff --git a/boards/beaglev/fire/demos-and-tutorials/mchp-fpga-tools-installation-guide.rst b/boards/beaglev/fire/demos-and-tutorials/mchp-fpga-tools-installation-guide.rst index a0bfe8c1c4d4ee158497dd6650d0584c5d362088..eafcae5f56bd02f77cf7f3f86d19cc2f514767f1 100644 --- a/boards/beaglev/fire/demos-and-tutorials/mchp-fpga-tools-installation-guide.rst +++ b/boards/beaglev/fire/demos-and-tutorials/mchp-fpga-tools-installation-guide.rst @@ -5,6 +5,15 @@ Microchip FPGA Tools Installation Guide Instructions for installing the Microchip FPGA tools on a Ubuntu 20.04 desktop. +.. important:: + + We will be providing instances of Libero that you can run from git.beagleboard.org's gitlab-runners such that you do not need to install the tools on + your local machine. + +.. todo:: + + Make sure people know about the alternative and we provide links to details on that before we send them down this process. + Install Libero 2022.3 ************************ diff --git a/boards/beaglev/fire/index.rst b/boards/beaglev/fire/index.rst index f5428ff9b929ecec795bf9cd486fbafd43fa3e77..9f9fa9956a042e19e924ed82f30bf6777965c3a3 100644 --- a/boards/beaglev/fire/index.rst +++ b/boards/beaglev/fire/index.rst @@ -3,6 +3,21 @@ BeagleV-Fire ################### +BeagleV®-Fire is a revolutionary SBC powered by the Microchip's PolarFire® MPFS025T RISC-V System on Chip +(SoC) with FPGA fabric. BeagleV®-Fire opens up new horizons for developers, tinkerers, and the open-source community to explore the vast potential +of RISC-V architecture and FPGA technology. It has the same P8 & P9 cape header pins as BeagleBone Black allowing you to stack your favorite BeagleBone +cape on top to expand it's capability. Built around the powerful and energy-efficient RISC-V instruction set architecture (ISA) along with its versatile FPGA fabric, +BeagleV®-Fire SBC offers unparalleled opportunities for developers, hobbyists, and researchers to explore and experiment with RISC-V technology. + +.. admonition:: License Terms + + * This documentation is licensed under a `Creative Commons Attribution-ShareAlike 4.0 International License <http://creativecommons.org/licenses/by-sa/4.0/>`__ + * Design materials and license can be found in the `git repository <https://git.beagleboard.org/beaglev-fire/beaglev-fire>`__ + * Use of the boards or design materials constitutes an agreement to the :ref:`boards-terms-and-conditions` + * Software images and purchase links available on the `board page <https://www.beagleboard.org/boards/beaglev-fire>`__ + * For export, emissions and other compliance, see :ref:`beaglev-fire-support` + + .. image:: media/BeagleV-Fire-hero.* :align: center :alt: BeagleV-Fire hero image @@ -11,17 +26,6 @@ BeagleV-Fire This is a work in progress, for latest documentation please visit https://docs.beagleboard.org/latest/ -.. admonition:: Contributors - - This work is licensed under a `Creative Commons Attribution-ShareAlike - 4.0 International License <http://creativecommons.org/licenses/by-sa/4.0/>`__ - -.. note:: - Make sure to read and accept all the terms & condition provided in the :ref:`boards-terms-and-conditions` page. - - Use of either the boards or the design materials constitutes agreement to the T&C including any - modifications done to the hardware or software solutions provided by beagleboard.org foundation. - .. only:: html .. grid:: 1 1 2 3