104 lines
1.9 KiB
Markdown
104 lines
1.9 KiB
Markdown
# Overview
|
|
|
|
Jack is a CLI tool that implements the CXL 2.0 Fabric Management API
|
|
specification. It is intended to be used to configure and monitor CXL
|
|
compliant hardware devices such as switches, accelerators or memory controllers.
|
|
|
|
# Supported Operating System Versions
|
|
|
|
- Ubuntu 23.10
|
|
- Fedora 38, 39
|
|
|
|
> Note: Ubuntu 22.04 is not supported. This is due to some newer PCI features that
|
|
> are missing from the 5.15 Linux kernel that ships with Ubuntu 22.04.
|
|
|
|
# Building
|
|
|
|
1. Install OS libraries
|
|
|
|
Install the following build packages to compile the software on the following
|
|
operating systems.
|
|
|
|
**Ubuntu:**
|
|
|
|
```bash
|
|
apt install build-essential libglib2.0-dev libyaml-dev libpci-dev
|
|
```
|
|
|
|
**Fedora:**
|
|
|
|
```bash
|
|
```
|
|
|
|
2. Build Dependencies
|
|
|
|
To clone and build dependencies run:
|
|
|
|
```bash
|
|
./builddeps.bash
|
|
```
|
|
|
|
3. Build
|
|
|
|
After building the required dependencies run:
|
|
|
|
```bash
|
|
make
|
|
```
|
|
|
|
# Usage
|
|
|
|
Jack connects to a target device using MCTP over TCP. When using Jack with an
|
|
endpoint such as
|
|
[CSE (CXL Switch Emulator)](https://github.com/JackrabbitLabs/cse), the user
|
|
first starts the CSE application using a config file that defines a
|
|
virtualized CXL switch environment with the following command.
|
|
|
|
```bash
|
|
cse -lc config.yaml
|
|
```
|
|
|
|
Once the target endpoint is running, Jack can be used to query or configure
|
|
the CXL endpoint.
|
|
|
|
# Example Commands
|
|
|
|
To obtain identity information about the endpoint:
|
|
|
|
```bash
|
|
jack show id
|
|
```
|
|
|
|
To obtain information about the capabilities of the endpoint:
|
|
|
|
```bash
|
|
jack show switch
|
|
```
|
|
|
|
To show the status of the ports of the endpoint use `show port`. This displays
|
|
the devices that are connected to the endpoint.
|
|
|
|
```bash
|
|
jack show port
|
|
```
|
|
|
|
To show information about what ports are connected to a Virtual CXL Switch
|
|
(VCS).
|
|
|
|
```bash
|
|
jack show vcs 0
|
|
```
|
|
|
|
To unbind a port (or a Logical Device) from a VCS:
|
|
|
|
```bash
|
|
jack port unbind -c 0 -b 4
|
|
```
|
|
|
|
To bind a port (or a Logical Device) to a VCS:
|
|
|
|
```bash
|
|
jack port bind -p 4 -l 0 -c 0 -b 4
|
|
```
|
|
|