Aquantia DASH Tools for Linux (Pre-release version bundle 31.0.7)
==============================================================

Contents
========

1. Components available in this package
2. Supported OS
3. Using the Dash utilities
4. Known issues

1. Components available in this package
========================================

This package contains Aquantia DASH tools for Linux. The package
comes with a Linux driver with DASH support.
The package contains:
a. Aquantia DASH Configuration Tool (AqDashConfig v0.15.7)
b. Aquantia DASH Agent Tool (AqDashAgent v0.15.7)
c. Aquantia Linux driver (source)

The package also contains common components from the latest DASH release
(4.2.46) for ease of access:
a. Atlantic Firmware v4.2.46
b. atlflashupdate_1.8.0_4.2.46_dash

2. Supported OS/Future support
===============================

Dash utilities/driver are tested on:
a. Ubuntu 20.04.2 LTS
b. Debian Bullseye
c. Fedora 34
d. Rocky Linux 8.8
e. Rocky Linux 9.1
f. Rocky Linux 9.2
g. Ubuntu 22.04.2 LTS
h. RHEL 9.1
i. RHEL 9.2
j. RHEL 8.4
k. CentOS 7.9


3. Using the Dash utilities
============================

The Dash functionality requires support in the firmware, driver and the Dash
tools.

- If the current firmare does not support dash, please make sure to update
the firmware to a Dash firmware (available in this package).

- Make sure to update the "atlantic" driver (available in this package). The
driver available in this package supports Dash commands.

- Configure the Dash firmware:
    ./AqDashConfig shared <login> <password> <crt_file> <key_file> -d <network_interface>
    ./AqDashConfig exclusive <login> <password> <crt_file> <key_file> --mac <mac> --ip <IP> -d <network_interface>

- Start the Dash Agent:
    ./AqDashAgent

    The AqDashAgent can be run as a service (aqdashagent). Follow the below steps:
    Install the package aqdashagent-xx.xx.xx.deb.
        sudo apt install ./aqdashagent-xx.xx.xx.deb
    Start the service
        sudo systemctl start aqdashagent
    Check the status of the aqdashagent service
        systemctl status aqdashagent

- Use the Dash CLI commands or AMD Management Console to discover the target
machine.

Updating Dash firmware using AMC and AqDashAgent

- Copy the linux firmware update bundle to C:\AMC-ISO on the Dash Client machine (Where AMC is installed).
- Configure the Dash firmware using AqDashConfig and run AqDashAgent.
- Click "FIRMWARE UPGRADE" in the AMC and select the linux firmware upgrade bundle.
- Click "Apply" button.
- Firmware upgrade may take few seconds to complete.

Signing the "atlantic" driver on secure boot enabled machines

- Enable the secure boot in BIOS Security tab, if its not enabled.
- Check whether secure boot is enabled
      sudo mokutil --sb-state
- Check if the key already exists. Key files exist in "/var/lib/shim-signed/mok/"
- Create the key if it does not exist
      sudo openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -days 36500 -subj "/CN=TestKey/"
- Enroll the key
      sudo mokutil --import MOK.der
- Restart machine to enter the MOKManager EFI tool. Follow instructions to enroll the key.
- Sign the "atlantic.ko" with the new key
      kmodsign sha512 MOK.priv MOK.der atlantic.ko

- Refer following pages for more information:
      https://ubuntu.com/blog/how-to-sign-things-for-secure-boot
      https://wiki.debian.org/SecureBoot
	  https://www.kernel.org/doc/html/v4.15/admin-guide/module-signing.html

4. Known issues/Features supported
===================================

- AqDashConfig can be used to configure shared or exclusive mode.
- AqDashAgent can be run as an application or as a service.
- AqDashAgent supports follwing profiles:
    - Operating System information
    - PCI device information
    - Software information
    - Network information
- Other profiles are under development.
- Dash firmware update via AMC is supported
- Power operations via AMC is supported
- The Dash utilities can be used on secure boot enabled machines
