Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Removed xbutil executable completely and renamed xbutil to xrt-smi in the documentation and comments #8654

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .github/workflows/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -106,23 +106,23 @@ jobs:
timeout-minutes: 5
run: |
source /opt/xilinx/xrt/setup.sh
echo "Y" | xbutil reset -d
echo "Y" | xrt-smi reset -d
- name: Examine card
timeout-minutes: 5
run: |
source /opt/xilinx/xrt/setup.sh
xbutil examine -d
xrt-smi examine -d
- name: Validate card
timeout-minutes: 5
run: |
source /opt/xilinx/xrt/setup.sh
xbutil validate -d --verbose --batch
xbutil examine -d
xrt-smi validate -d --verbose --batch
xrt-smi examine -d
- name: Verify kernel
run: |
source /opt/xilinx/xrt/setup.sh
echo "Running 'Verify Kernel' testcase"
xbutil validate --batch -r 'Verify kernel' -d --verbose
xrt-smi validate --batch -r 'Verify kernel' -d --verbose
- name: Drivers reloading
timeout-minutes: 10
run: |
Expand Down
34 changes: 17 additions & 17 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -75,17 +75,17 @@ Removed
Added
.....

**xbutil/xbmgmt**
**xrt-smi/xbmgmt**

* Added ``xball`` helper script to execute a common set of utility commands (e.g., ``xbutil`` & ``xbmgmt``) across a filtered set of devices. More information can be found using ``--help`` or in the XRT documents.
* Added ``xball`` helper script to execute a common set of utility commands (e.g., ``xrt-smi`` & ``xbmgmt``) across a filtered set of devices. More information can be found using ``--help`` or in the XRT documents.
* Auto-selecting a device if only one device exits. If the option ``--device`` or ``-d`` is specified and there is only one device installed, it will be automatically selected and used.
* All failing operations will now return an error code. Note: An error will also be returned if there are validation failures.
* Improved error reporting.
* Legacy commands have been deprecated.
* Various report output improvements.
* ``xbutil configure`` *root* level command introduced. Added ``host_mem`` and ``p2p`` as commands to configure.
* ``xrt-smi configure`` *root* level command introduced. Added ``host_mem`` and ``p2p`` as commands to configure.
* ``--force`` option support for all operations.
* ``xbutil validate`` now supports alternative platform validation directories.
* ``xrt-smi validate`` now supports alternative platform validation directories.

**xclbin**

Expand Down Expand Up @@ -134,7 +134,7 @@ Added
* API errors are now propagated up the stack as ``std::system_error`` exceptions with POSIX error code.
* Added C++ APIs for AIE graph control and execution.
* XRT driver debug trace support through debugfs ``/sys/kernel/debug/xclmgmt/...`` and ``/sys/kernel/debug/xocl/...``
* Greatly improved and feature full next generation xbutil and xbmgmt utilities are now the default. The legacy version of the tools can be invoked by passing *--legacy* as the first switch to xbutil or xbmgmt invocation.
* Greatly improved and feature full next generation xrt-smi and xbmgmt utilities are now the default. The legacy version of the tools can be invoked by passing *--legacy* as the first switch to xrt-smi or xbmgmt invocation.
* KDS scheduler in xocl has been refactored to significantly improve the throughput across hundreds of processes exercising multiple compute units across multiple devices concurrently.
* Initial support for PS Kernel -- where a helper application running on APU on platforms like U30 and VCK5000 can be controlled from PCIe host -- has been added.
* Initial pybind11 bindings for XRT C++ APIs. See ``tests/python/22_verify/22_verify.py`` for an example.
Expand Down Expand Up @@ -186,12 +186,12 @@ Added
* Support for data driven *two stage* platforms have been added.
* Slimmed down XRT RPM/DEB package dependencies. XRT package does not depend on other **dev/devel** packages anymore.
* Enabled LPDDR for edge platforms
* xbutil for edge platforms (use xbutil --new)
* xrt-smi for edge platforms (use xrt-smi --new)

Removed
.......

* xbsak, please use xbutil
* xbsak, please use xrt-smi


2.7.0 (202010.2.7.x)
Expand Down Expand Up @@ -221,16 +221,16 @@ Added
* Support for data-driven platforms have been added. XRT uses PCIe VSEC to identify data-driven platforms. For these class of platforms XRT uses device tree to discover IPs in the shell and then initialize them.
* Experimental APIs have been added for AIE control for edge platforms. The APIs are defined in header file ``xrt_aie.h``.
* Support for U30 video acceleration offload device has been added.
* Early access versions of next generation utilities, *xbutil* and *xbmgmt* are available. They can be invoked via *--new* switch as ``xbutil --new``.
* Utilties xbutil and xbmgmt now give a warning when they detect an unsupported Linux distribution version and kernel version.
* Early access versions of next generation utilities, *xrt-smi* and *xbmgmt* are available. They can be invoked via *--new* switch as ``xrt-smi --new``.
* Utilties xrt-smi and xbmgmt now give a warning when they detect an unsupported Linux distribution version and kernel version.
* Error code paths for clPollStreams() API has been improved.


Removed
.......

* Deprecated utilties xclbincat and xclbinsplit have been removed. Please use xclbinutil to work with xclbin files.
* ``xclResetDevice()`` has been marked as deprecated in this release and will be removed in a future release. Please use xbutil reset to reset device.
* ``xclResetDevice()`` has been marked as deprecated in this release and will be removed in a future release. Please use xrt-smi reset to reset device.
* ``xclUpgradeFirmware()``, ``xclUpgradeFirmware2()`` and ``xclUpgradeFirmwareXSpi()`` have been marked as deprecated in this release and will be removed in a future release. Please use xbmgmt utility to flash device.
* ``xclBootFPGA()``, ``xclRemoveAndScanFPGA()`` and ``xclRegisterInterruptNotify()`` have been marked as deprecated in this release and will be removed in a future release. These functionalities are no longer supported.
* ``xclLockDevice()`` and ``xclUnlockDevice()`` have been marked as deprecated in this release and will be removed in a future release. These functionalities are no longer supported.
Expand Down Expand Up @@ -263,13 +263,13 @@ Added
* Edge platforms based on MPSoC now support M2M feature via **Zynqmp built-in DMA engine**. M2M for both PCIe and edge platforms can be performed using ``xclCopyBO()`` XRT API or ``clEnqueueCopyBuffers()`` OCL API. Note that the same APIs can also be used to copy buffers between two devices using PCIe peer-to-peer transfer.
* For edge platforms XRT now supports ACC (adapter execution model).
* XRT documentation has been reorganized and significantly updated.
* XRT now natively supports fully virtualized environments where management physical function (PF0) is completely hidden in host and only user physical function (PF1) is exported to the guest. End-user applications based on libxrt_core and xbutil command line utility do not need directly interact with xclmgmt driver. Communication between xocl driver and xclmgmt driver is done over hardware mailbox and MPD/MSD framework. For more information refer to MPD/MSD and Mailbox sections in XRT documentation.
* Management Physical Function (PF0) should now be managed using ``xbmgmt`` utility which is geared towards system adminstrators. ``xbutil`` continues to be end-user facing utility.
* XRT now natively supports fully virtualized environments where management physical function (PF0) is completely hidden in host and only user physical function (PF1) is exported to the guest. End-user applications based on libxrt_core and xrt-smi command line utility do not need directly interact with xclmgmt driver. Communication between xocl driver and xclmgmt driver is done over hardware mailbox and MPD/MSD framework. For more information refer to MPD/MSD and Mailbox sections in XRT documentation.
* Management Physical Function (PF0) should now be managed using ``xbmgmt`` utility which is geared towards system adminstrators. ``xrt-smi`` continues to be end-user facing utility.
* Support has been added for device memory only buffer with no backing shadow buffer in host on PCIe platforms. To allocate such buffers use ``XCL_BO_FLAGS_DEV_ONLY`` in flags field of xclAllocBO() or ``CL_MEM_HOST_NO_ACCESS`` in flags field of OCL API.
* XRT now has integrated support for Linux hwmon. Run Linux sensors utility to see all the sensor values exported by Alveo/XRT.
* XRT now has production support for edge platforms. The following non DFX platforms edge platforms are supported: zcu102_base, zcu104_base, zc702, zc706. In addition zcu102_base_dfx platform has DFX support.
* Emulation and HW profiling support has been enabled for all the above mentioned edge platforms. Zynq MPSoC platforms: zcu102_base, zcu104_base and zcu102_base_dfx also has emulation profiling enabled.
* Improved handling of PCIe reset via ``xbutil reset`` which resolves system crash observed on some servers.
* Improved handling of PCIe reset via ``xrt-smi reset`` which resolves system crash observed on some servers.
* Resource management has been moved out of XMA library.
* Only signed xclbins can be loaded on systems running in UEFI secure boot mode. You can use DKMS key used to sign XRT drivers to sign xclbins as well. As root please use the following command to sign xclbin with DKMS UEFI key--
``xclbinutil --private-key /var/lib/shim-signed/mok/MOK.priv --certificate /var/lib/shim-signed/mok/MOK.der --input a.xclbin --output signed.xclbin``
Expand All @@ -281,7 +281,7 @@ Known Issue
* On U280 Platform, downloading XCLBIN is going to reset P2P BAR size back to 256M internally. XRT workaround this issue by reading BAR size register and writing back the same value. This sets the P2P BAR size back to the value before downloading XCLBIN.
* On edge platforms intermittent hang is observed when downloading different xclbins multiple times while CU interrupt is enabled.
* Dynamic clock scaling is not enabled for edge platforms.
* On PPC64LE ``xbutil reset`` uses PCIe fundamental reset effectively reloading the platform from PROM. Note on x86_64 ``xbutil reset`` continues to use PCIe warm reset which just resets the shell and the dynamic region without reloading the platform from PROM.
* On PPC64LE ``xrt-smi reset`` uses PCIe fundamental reset effectively reloading the platform from PROM. Note on x86_64 ``xrt-smi reset`` continues to use PCIe warm reset which just resets the shell and the dynamic region without reloading the platform from PROM.

2.2.0 (201910.2.2)
~~~~~~~~~~~~~~~~~~
Expand All @@ -303,7 +303,7 @@ Added
* OCL can perform automatic binding of cl_mem to DDR bank by using several heuristics like kernel argument index and kernel instance information. The API ``clCreateKernel`` is enhanced to accept annotated CU name(s) to fetch asymmetrical compute units (If all the CUs of a kernel have exact same port maps or port connections they are symmetrical compute units, otherwise CUs are asymmetrical) and streaming compute units.
* XRT will give error if it cannot identify the buffer location (in earlier releases it used to assume a default location). Remedies: a) Check kernel XCLBIN to make sure kernel argument corresponding to the buffer is mapped to device memory properly b) Use ``clSetKernelArg`` before any enqueue operation on buffer
* Host applications directly linking with libxilinxopencl.so must use ``-Wl,-rpath-link,$(XILINX_XRT)/lib`` in the linker line. Host applications linking with ICD loader, libOpenCL.so do not need to change.
* ``xbutil top`` now reports live CU usage metric.
* ``xrt-smi top`` now reports live CU usage metric.
* ``xclbincat`` and ``xclbinsplit`` are deprecated by ``xclbinutil``. These deprecated tools are currently scheduled to be obsoleted in the next release.
* Profiling subsystem has been enhanced to show dataflow, PCIe peer to peer transfers, M2M transfers and kernel to kernel streaming information.
* XRT has switched to new header file ``xrt.h`` in place of ``xclhal2.h``. The latter is still around for backwards compatibility but hash includes xrt.h for all definitions. A new file ``xrt-next.h`` has been added for experimental features.
Expand All @@ -315,7 +315,7 @@ Added
Added
.....

* xbutil can now generate output in JSON format for easy parsing by other tools. Use ``xbutil dump`` to generate JSON output on stdout.
* xrt-smi can now generate output in JSON format for easy parsing by other tools. Use ``xrt-smi dump`` to generate JSON output on stdout.
* Initial support for PCIe peer-to-peer transactions has been added. Please consult https://xilinx.github.io/XRT/2018.3/html/p2p.html for details.
* 64-bit BARs in Alveo shells are natively supported.
* Initial implementation of XRT logging API, xclLogMsg() for use by XRT clients.
Expand All @@ -326,7 +326,7 @@ Added
Fixed
.....

* ``xbutil flash -a`` PROM corruption issue with multiple Alveo boards.
* ``xrt-smi flash -a`` PROM corruption issue with multiple Alveo boards.
* XRT scheduling bug with multiple boards on AWS F1 when scheduler was serializing board access.
* xocl kernel driver bugs in handling multiple processes accessing the same device.
* PPC64LE build failure.
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ When reporting issues on GitHub please include the following:

1. XRT version including git hash
2. Alveo platform name and version
3. Output of ``xbutil query``
3. Output of ``xrt-smi query``
4. Output of ``xbmgmt scan``
5. ``dmesg``
6. gdb stack trace of host application
Expand Down
2 changes: 1 addition & 1 deletion build/board.sh
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ if [[ "X$xrt" != "X" && -d "$xrt" ]] ; then
export OCL_ICD_VENDORS=$XILINX_XRT/lib/libxilinxopencl.so
fi

export DSA=`${XILINX_XRT}/bin/xbutil scan | grep '\[0\]' | cut -d':' -f5 | cut -d'(' -f1`
export DSA=`${XILINX_XRT}/bin/xrt-smi scan | grep '\[0\]' | cut -d':' -f5 | cut -d'(' -f1`

echo "XILINX_XRT = $XILINX_XRT"
echo "LD_LIBRARY_PATH = $LD_LIBRARY_PATH"
Expand Down
2 changes: 1 addition & 1 deletion build/debian/copyright
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ License: Apache-2.0 and/or GPL-2
FIXME

Files: src/runtime_src/core/pcie/linux/LICENSE
src/runtime_src/core/pcie/tools/xbutil/LICENSE
src/runtime_src/core/pcie/tools/xrt-smi/LICENSE
Copyright: [yyyy] [name of copyright owner]
License: Apache-2.0
FIXME
Expand Down
4 changes: 2 additions & 2 deletions src/runtime_src/core/common/debug_ip.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ std::vector<uint64_t>
get_am_counter_result(const xrt_core::device* device, debug_ip_data* dbg_ip_data)
{
// read counter values
// These are in "xbutil" order
// These are in "xrt-smi" order
static const uint64_t am_offsets[] = {
xdp::IP::AM::AXI_LITE::EXECUTION_COUNT,
xdp::IP::AM::AXI_LITE::EXECUTION_CYCLES,
Expand All @@ -109,7 +109,7 @@ get_am_counter_result(const xrt_core::device* device, debug_ip_data* dbg_ip_data
xdp::IP::AM::AXI_LITE::TOTAL_CU_START
};

// These are in "xbutil" order
// These are in "xrt-smi" order
static const uint64_t am_upper_offsets[] = {
xdp::IP::AM::AXI_LITE::EXECUTION_COUNT_UPPER,
xdp::IP::AM::AXI_LITE::EXECUTION_CYCLES_UPPER,
Expand Down
2 changes: 1 addition & 1 deletion src/runtime_src/core/common/drv/kds_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ int store_kds_echo(struct kds_sched *kds, const char *buf, size_t count,
/* Ideally, KDS should be locked to reject new client.
* But, this node is hidden for internal test purpose.
* Let's refine it after new KDS is the default and
* user is allow to configure it through xbutil.
* user is allow to configure it through xrt-smi.
*/
if (live_clients > 0)
return -EBUSY;
Expand Down
2 changes: 1 addition & 1 deletion src/runtime_src/core/common/sensor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -542,7 +542,7 @@ read_mechanical(const xrt_core::device * device)
}} // sensor,xrt


// The following namespace is only used by legacy xbutil dump
// The following namespace is only used by legacy xrt-smi dump
namespace sensor_tree {

// Singleton
Expand Down
2 changes: 1 addition & 1 deletion src/runtime_src/core/common/sensor.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ read_mechanical(const xrt_core::device * device);
}} // sensor, xrt_core


// The following namespace is only used by legacy xbutil dump
// The following namespace is only used by legacy xrt-smi dump
namespace sensor_tree {

boost::property_tree::ptree&
Expand Down
2 changes: 1 addition & 1 deletion src/runtime_src/core/edge/user/shim.h
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,7 @@ class shim {
int xclIPName2Index(const char *name);
int xclIPSetReadRange(uint32_t ipIndex, uint32_t start, uint32_t size);

// Application debug path functionality for xbutil
// Application debug path functionality for xrt-smi
size_t xclDebugReadCheckers(xdp::LAPCCounterResults* aCheckerResults);
size_t xclDebugReadCounters(xdp::AIMCounterResults* aCounterResults);
size_t xclDebugReadAccelMonitorCounters(xdp::AMCounterResults* samResult);
Expand Down
2 changes: 1 addition & 1 deletion src/runtime_src/core/include/deprecated/xrt.h
Original file line number Diff line number Diff line change
Expand Up @@ -710,7 +710,7 @@ XCL_DRIVER_DLLHIDDEN
const struct axlf_section_header*
wrap_get_axlf_section(const struct axlf* top, enum axlf_section_kind kind);

/* Use xbutil to reset device */
/* Use xrt-smi to reset device */
XRT_DEPRECATED
XCL_DRIVER_DLLHIDDEN
int
Expand Down
2 changes: 1 addition & 1 deletion src/runtime_src/core/include/xclerr_int.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
/**
* DOC: Device last / latest error status related structs and defines
* This file is used by both userspace and kernel driver.
* This file is used by xbutil, xocl, zocl and xbmgmt.
* This file is used by xrt-smi, xocl, zocl and xbmgmt.
*/

#ifndef XCLERR_INT_H_
Expand Down
6 changes: 3 additions & 3 deletions src/runtime_src/core/include/xdp/aim.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

// This file captures all the constants used to access the
// AXI Interface Monitor cores that may exist in the design.
// These values are shared between xbutil and the XDP library.
// These values are shared between xrt-smi and the XDP library.

#ifndef AIM_DOT_H
#define AIM_DOT_H
Expand All @@ -25,7 +25,7 @@ namespace xdp::IP::AIM {

// The total number of 64-bit counters accessible on the IP
constexpr int NUM_COUNTERS = 13;
// The number of 64-bit counters displayed (as when accessed via xbutil)
// The number of 64-bit counters displayed (as when accessed via xrt-smi)
constexpr int NUM_COUNTERS_REPORT = 9;

namespace AXI_LITE {
Expand Down Expand Up @@ -94,7 +94,7 @@ namespace report {
// When we are reporting the status of this IP, we
// strip away the write latency, write busy, read latency, and
// read busy cycle information. The numbers here represent the
// index into the array used by xbutil and XDP to access the register value
// index into the array used by xrt-smi and XDP to access the register value
constexpr int WRITE_BYTES = 0;
constexpr int WRITE_TRANX = 1;
constexpr int READ_BYTES = 2;
Expand Down
4 changes: 2 additions & 2 deletions src/runtime_src/core/include/xdp/am.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

// This file captures all the constants used to access the
// Accelerator Monitor cores that may exist in the design. These
// values are shared between xbutil and the XDP library.
// values are shared between xrt-smi and the XDP library.

#ifndef AM_DOT_H
#define AM_DOT_H
Expand All @@ -25,7 +25,7 @@ namespace xdp::IP::AM {

// The total number of 64-bit counters accessible on the IP
constexpr int NUM_COUNTERS = 10;
// The number of 64-bit counters displayed (as when accessed via xbutil)
// The number of 64-bit counters displayed (as when accessed via xrt-smi)
constexpr int NUM_COUNTERS_REPORT = 8;

namespace AXI_LITE {
Expand Down
2 changes: 1 addition & 1 deletion src/runtime_src/core/include/xdp/app_debug.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@

namespace xdp {

// The structs declared in this file are used in xbutil and application
// The structs declared in this file are used in xrt-smi and application
// debug in order to read all the debug counter values from the
// debug/profile IP.

Expand Down
2 changes: 1 addition & 1 deletion src/runtime_src/core/include/xdp/asm.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

// This file captures all the constants used to access the AXI Stream Monitor
// cores that may exist in the design. These values are shared between
// the xbutil code base and the XDP library
// the xrt-smi code base and the XDP library

#ifndef ASM_DOT_H
#define ASM_DOT_H
Expand Down
2 changes: 1 addition & 1 deletion src/runtime_src/core/include/xdp/axi_checker_codes.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* under the License.
*/

// These AXI error codes are used in both xbutil and the gdb application
// These AXI error codes are used in both xrt-smi and the gdb application
// debug extensions

#ifndef AXI_CHECKER_CODES_H
Expand Down
2 changes: 1 addition & 1 deletion src/runtime_src/core/include/xdp/lapc.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

// This file captures all the constants used to access the
// Lightweight AXI Protocol Checker cores that may exist in the design.
// These values are shared between xbutil and the XDP library.
// These values are shared between xrt-smi and the XDP library.

#ifndef LAPC_DOT_H
#define LAPC_DOT_H
Expand Down
2 changes: 1 addition & 1 deletion src/runtime_src/core/include/xdp/spc.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

// This file captures all the constants used to access the
// AXI Stream Protocol Checker cores that may exist in the design.
// These values are shared between xbutil and the XDP library.
// These values are shared between xrt-smi and the XDP library.

#ifndef SPC_DOT_H
#define SPC_DOT_H
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2284,7 +2284,7 @@ static int icap_calib_and_check(struct platform_device *pdev, uint32_t slot_id)
BUG_ON(!mutex_is_locked(&icap->icap_lock));

if (icap->data_retention)
ICAP_WARN(icap, "xbutil reclock may not retain data");
ICAP_WARN(icap, "xrt-smi reclock may not retain data");

icap_calib(icap, slot_id, false);

Expand Down
Loading
Loading