diff --git a/docs/howto/install-from-packages.rst b/docs/howto/install-from-packages.rst index 8e98dc32..efb72cb1 100644 --- a/docs/howto/install-from-packages.rst +++ b/docs/howto/install-from-packages.rst @@ -233,6 +233,12 @@ normally the build machine, or the cluster nodes when :ref:`offloading to a cluster `, in which case the build machine does not require them. +You also need the following licenses: + +1. SMBus IP license. See :ref:`smbus-ip` below for instructions on obtaining the IP and license. +2. DCMAC IP license. See :ref:`dcmac-license` below for instructions on obtaining the license. + + Source both before building: .. code-block:: bash @@ -252,6 +258,10 @@ binary and exits if it is absent. license administrator if you are unsure how licenses are served at your site. + See `Managing Licenses with the Vivado License Manager `_. + +.. _smbus-ip: + SMBus IP -------- @@ -266,8 +276,9 @@ local IP repository before building: ``linker/slashkit/resources/base/common/iprepo/`` so that Vivado can locate it during synthesis. The directory name must begin with ``smbus``; a release-date suffix is permitted. +3. Generate the SMBus license from the `AMD License Center `_ + and add it to your Vivado license configuration. -Confirm the result before starting the build: .. code-block:: bash @@ -279,6 +290,25 @@ performing any work. See the `AVED rebuild guide `_ for additional details. + +.. _dcmac-license: + +DCMAC IP License +---------------- + +The `Versalâ„¢ Adaptive SoC 600G Channelized Multirate Ethernet Subsystem (DCMAC) +`_ +drives the 200 Gb/s network interfaces in the static shell and requires a Vivado +license to build. The license is free but must be generated and registered before +building. + +1. Open the `DCMAC IP product page `_ + and click **Get License**. +2. Follow the steps to generate the license. +3. Add the license to your Vivado license configuration. + +Confirm the result before starting the build: + .. _build-the-packages: Build the Packages diff --git a/docs/howto/use-dcmac.rst b/docs/howto/use-dcmac.rst index d5fb68e9..6f345bea 100644 --- a/docs/howto/use-dcmac.rst +++ b/docs/howto/use-dcmac.rst @@ -19,6 +19,8 @@ Prerequisites - A V80 with two QSFP56 cages externally wired to DCMAC0 port 0 (``eth_0``) and DCMAC1 port 0 (``eth_2``). - Vivado and Vitis HLS **2025.1** or newer, sourced in your shell. +- A **DCMAC IP license** added to your Vivado license configuration. See + :ref:`dcmac-license` in the install guide. - Building from a source checkout, the ``Versal-DCMAC`` submodule, which supplies the DCMAC block design and its RTL: diff --git a/scripts/package-deb.sh b/scripts/package-deb.sh index 6cea3e61..79b0baa8 100755 --- a/scripts/package-deb.sh +++ b/scripts/package-deb.sh @@ -88,6 +88,31 @@ if [[ -z "${SLASH_PKG_SKIP_ROOT_DESIGN_BUILD:-}" ]]; then echo "See docs/howto/install-from-packages.rst for details." >&2 _prereq_ok=0 fi + _license_report=/tmp/slash-licenses.txt + _license_tcl=/tmp/slash-licenses.tcl + echo "report_environment -file {${_license_report}} -format text" > "${_license_tcl}" + vivado -mode batch -nolog -nojournal -source "${_license_tcl}" 2>/dev/null + rm -f "${_license_tcl}" + + if [[ ! -s "${_license_report}" ]]; then + echo "ERROR: Vivado failed to generate the license report. Check that Vivado" >&2 + echo " starts correctly and the license server is reachable." >&2 + _prereq_ok=0 + else + if [[ "$(grep -i 'dcmac' "${_license_report}" | grep -c 'IP:Bought')" -eq 0 ]]; then + echo "ERROR: DCMAC IP license not found in Vivado license configuration." >&2 + echo "See docs/howto/install-from-packages.rst for details." >&2 + _prereq_ok=0 + fi + + if [[ "$(grep -i 'smbus' "${_license_report}" | grep -c 'IP:Bought')" -eq 0 ]]; then + echo "ERROR: SMBus IP license not found in Vivado license configuration." >&2 + echo "See docs/howto/install-from-packages.rst for details." >&2 + _prereq_ok=0 + fi + fi + + rm -f "${_license_report}" fi if [[ "${_prereq_ok}" -eq 0 ]]; then