# AMR Management Interface userguide (ami\_tool)
## Overview
The AMR Management Interface (AMI) provides an interface to an AMR device and control of the AMR management controller (AMC) firmware deployed on it.
AMI is provided as 3 parts - the kernel driver (as a **.ko** file), the API, and a command line tool - **ami\_tool**.
The **ami\_tool** application provides a command line interface (CLI) to the user.
---
## Dependencies
### Libraries and OSs
- See [AMR Overview](../overview/amr-overview.md#AMROverview-SupportedKernelsandDistributions) for full list of supported OSs.
- Lib dependencies:
- *Ubuntu*: libc6, libidn12, gcc, make, dkms, grep, gawk, linux-header
- *Redhat*: glibc, gccmake, dkms, grep, gawk, kernel-devel, kernel-header
---
## Notes
1. Ensure that the AMI API and AMI Driver versions are the same. Behaviour is undefined when the versions do not match.
## Usage - Options
- [help](#help)
- [version](#version)
---
### help
#### Description
Displays the available ami\_tool commands.
When used after a command (e.g. **ami\_tool sensors –help**), it displays the available options and expected usage of that specific command.
#### Example output
~$ ami_tool --help
Usage:
ami_tool {command} [arguments]
ami_tool {command} -h | --help
ami_tool -h | --help
ami_tool --version
Options:
-h --help Show this screen
--version Show version
Commands:
sensors Show sensors details
cfgmem_program Program a device
cfgmem_copy Copy one partition to another
cfgmem_info Show partition details
cfgmem_flags_rd Read partition flags
cfgmem_flags_wr Write partition flags
pdi_program Program pdi
bar_rd Read from PCI BAR memory
bar_wr Write to PCI BAR memory
overview Show basic AMI/device details
pcieinfo View PCI-related details
reload Reload a device/devices
device_boot Set boot partition
mfg_info View manufacturing details
eeprom_rd Read data from the device EEPROM
eeprom_wr Write data to the device EEPROM
cfgmem_fpt Program a device and update the FPT
module_byte_rd Read data from a QSFP module
module_byte_wr Write data to a QSFP module
debug_verbosity Set the AMC debug level
~$
#### Notes
- For commands which accept a -d (device) option, all parts of the string are optional except the device bus number. The following are all valid inputs and refer to the same device:
- 0000:21:00.0
- 0000:21
- 21:00.0
- 21:00
- 21
---
### version
#### Description
Displays the version information of the currently installed AMI API and AMI Driver.
#### Example output
~$ ami_tool --version
API Version | 3.0.0 (0)
API Branch |
API Hash | b3851ec2d223e6c35e567e245dc380049d2ba139
API Hash Date | 20260226
Driver Version | 3.0.0 (0)
~$
#### Notes
- If the API Version and Driver Version do not match, behavior is undefined and may result in unexpected results.
---
## Usage - Commands
- [overview](#overview-command)
- [pcieinfo](#amrmanagementinterfaceuserguide-ami-tool-pcieinfo)
- [reload](#amrmanagementinterfaceuserguide-ami-tool-reload)
- [sensors](#amrmanagementinterfaceuserguide-ami-tool-sensors)
- [cfgmem_info](#amrmanagementinterfaceuserguide-ami-tool-cfgmem-info)
- [cfgmem_program](#amrmanagementinterfaceuserguide-ami-tool-cfgmem-program)
- [cfgmem_fpt](#amrmanagementinterfaceuserguide-ami-tool-cfgmem-fpt)
- [cfgmem_copy](#amrmanagementinterfaceuserguide-ami-tool-cfgmem-copy)
- [cfgmem_flags_rd](#amrmanagementinterfaceuserguide-ami-tool-cfgmem-flags-rd)
- [cfgmem_flags_wr](#amrmanagementinterfaceuserguide-ami-tool-cfgmem-flags-wr)
- [pdi_program](#amrmanagementinterfaceuserguide-ami-tool-pdi-program)
- [bar_wr](#amrmanagementinterfaceuserguide-ami-tool-bar-wr)
- [bar_rd](#amrmanagementinterfaceuserguide-ami-tool-bar-rd)
- [device_boot](#amrmanagementinterfaceuserguide-ami-tool-device-boot)
- [mfg_info](#amrmanagementinterfaceuserguide-ami-tool-mfg-info)
- [eeprom_rd](#amrmanagementinterfaceuserguide-ami-tool-eeprom-rd)
- [eeprom_wr](#amrmanagementinterfaceuserguide-ami-tool-eeprom-wr)
- [module_byte_rd](#amrmanagementinterfaceuserguide-ami-tool-module-byte-rd)
- [module_byte_wr](#amrmanagementinterfaceuserguide-ami-tool-module-byte-wr)
- [debug_verbosity](#amrmanagementinterfaceuserguide-ami-tool-debug-verbosity)
---
### overview
#### Description
Displays an overview of the current AMI and associated devices setup. This includes the same version information as is shown in the **ami\_tool –version** command.
Each detected and supported card will be displayed below. Note the UUID, Hash, Hash date shown is just for example.
This output can be logged to a file using the **-o** option, and the logged format specified by the **-f** option.
~% ami_tool overview --help
overview - show basic AMI/device information
Usage:
ami_tool overview [options...]
Options:
-h --help Show this screen
-f
Set the output format
-o Specify output file
-v Print verbose information
~%
#### Example output
~$ ami_tool overview
AMI
---------------------------------------------------------
Version | 3.0.0 (0)
Branch |
Hash | 15a98eb71fdee61c662ff155227c0525dc3cbbd7
Hash Date | 20260317
Driver Version | 3.0.0 (0)
BDF | Device | Serial Number | UUID | AMC | State
-----------------------------------------------------------------------------------------------
21:00.0 | ALVEO V80 PQ | XFL1GF4VJ1KW | 00000000000000000000000032314bde | 3.0.0 (0) | READY
#### Notes
- The version value is the version of the AMI command line tool (and associated API) installed.
- The driver version value is the version of the AMI Driver (ami.ko) installed.
- **In cases where either the AMI tool/API or driver has been replaced with a different version, and the “Version” and “Driver Version” values do not match, behaviour is undefined.**
- A row is appended to the table for each supported card discovered:
- BDF - the ID to use when selecting this device for subsequent commands.
- Device - the type of device detected (e.g. V80, etc.).
- Serial Number - Unique board identifier assigned during manufacturing and stored in the device EEPROM.
- UUID - the ID of the hardware build loaded on the card.
- AMC - the version of AMC running on the card (if applicable).
- State - the state of the AMC running on the card (if applicable).
- INIT: Device is initialising.
- READY: Device is fully initialised and ready to use.
- MISSING\_INFO: AMC setup and device may be used, but some of the necessary data that AMC sends to AMI during initialisation is missing (e.g. sensors cannot be accessed, the FPT or MFG EEPROM is unavailable or corrupt, etc).
- NO\_AMC: Device may be used but has no AMC instance.
- INIT\_ERROR: AMC setup and device may be used but with no data.
- SHUTDOWN: All services have been shutdown.
- COMPAT: Compatibility mode - most functions unavailable.
- When using the verbose options, the following additional fields are appended:
- HWMON - the ID of the hwmon directory entry for this device
- CDEV - the number of the corresponding /dev/ami character device
---
### pcieinfo
#### Description
Displays the PCI information.
This output can be logged to a file using the **-o** option, and the logged format specified by the **-f** option.
~% ami_tool pcieinfo --help
pcieinfo - view PCI-related information
Usage:
ami_tool pcieinfo -d [options...]
Options:
-h --help Show this screen
-d :[d].[f] Specify the device BDF
-f
Set the output format
-o Specify output file
~%
#### Example output
~$ ami_tool pcieinfo -d 21:00.0
PCIe Info
------------------------------
Vendor | 0x10ee
Device | 0x50b4
Link Speed | Gen5 (max Gen5)
Link Width | x8 (max x8)
NUMA Node | 1
CPU Affinity | 16-31,48-63
~$
---
### reload
#### Description
Reloads the AMI installation.
~% sudo ami_tool reload --help
reload - reload a device/devices
This command requires root/sudo permissions.
Usage:
ami_tool reload -t [-d ]
Options:
-h --help Show this screen
-d :[d].[f] Specify the device BDF
-t Specify reload type
Possible values are:
driver=reload the entire driver
pci=force a pci removal and bus rescan
sbr=trigger a secondary bus reset
~%
#### Example output
~% sudo ami_tool reload -d 21:00.0 -t pci
Removing PCI device and rescanning bus...
Done.
~%
#### Notes
- This command requires root/sudo privileges.
- The ‘pci’ reload type may be used with devices which are not attached to the AMI driver (i.e., devices which do not show up when running the ‘overview’ command). This allows recovery of broken devices.
- The ‘driver’ reload type does not accept a device (-d) argument.
- The ‘sbr’ reload type will trigger a reset on the device (the image on the device will reload).
---
### sensors
#### Description
Retrieves and displays sensor information from the AMC (if available).
This output can be logged to a file using the **-o** option, and the logged format specified by the **-f** option.
~% ami_tool sensors --help
sensors - view device sensor information
Usage:
ami_tool sensors [-d ] [options...]
Options:
-h --help Show this screen.
-d :[d].[f] Specify the device BDF
-f
Set the output format
-o Specify output file
-n Fetch specific sensor
-x Print extra fields
Possible values are:
{max, average}
-v Print all extra fields
~%
#### Example output
~$ ami_tool sensors -d 21:00.0
Name | Value | Status
--------------------------------------------------
1V2_GTXAVTT | 25.000 C | valid
| 2.000 A | valid
| 1.200 V | valid
--------------------------------------------------
0V88_VCC_CPM5 | 25.000 C | valid*
| 3.000 A | valid*
| 0.879 V | valid*
--------------------------------------------------
PCB | 22.000 C | valid*
--------------------------------------------------
Device | 31.000 C | valid*
--------------------------------------------------
VCCINT | 28.000 C | valid*
| 13.000 A | valid*
| 0.800 V | valid*
--------------------------------------------------
Module_0 | 0.000 C | invalid
--------------------------------------------------
Module_1 | 0.000 C | invalid
--------------------------------------------------
Module_2 | 0.000 C | invalid
--------------------------------------------------
Module_3 | 0.000 C | invalid
--------------------------------------------------
DIMM | 25.000 C | valid*
--------------------------------------------------
1V2_VCC_HBM | 28.000 C | valid*
| 4.000 A | valid*
| 1.199 V | valid*
--------------------------------------------------
Total_Power | 33.150 W | valid
--------------------------------------------------
# of 12V_AUX cables connected | 2 | valid*
--------------------------------------------------
12V_AUX1 | 0.580 A | valid*
| 12.216 V | valid*
--------------------------------------------------
12V_AUX2 | 0.720 A | valid*
| 12.208 V | valid*
--------------------------------------------------
1V2_VCCO_DIMM | 1.060 A | valid*
| 1.200 V | valid*
--------------------------------------------------
3V3_PEX | 0.720 A | valid*
| 3.304 V | valid*
--------------------------------------------------
12V_PEX | 1.199 A | valid*
| 12.208 V | valid*
--------------------------------------------------
3V3_QSFP | 0.020 A | valid*
| 3.312 V | valid*
--------------------------------------------------
1V5_VCCAUX | 1.501 V | valid*
~$
#### Notes
- The **\*** displayed after a sensor status indicates that the value retrieved was from a cached store (i.e., the value had been previously updated within the refresh timeframe (1 second)).
- A status of invalid indicates that no value could be read for that sensor. For removable sensors (such as QSFP devices), this usually indicates that no devices is inserted.
- If the **-d** option was not selected, AMI will enumerate each available device.
---
### cfgmem\_info
#### Description
Displays the file partition table (FPT) currently available on the selected card.
On a cold boot, partition 0 is the default boot location.
Partition 2 is user partition. Use user partition flags to autoload user pdi on power up. Power-up Load flag can be set to On. The flag is stored persistently and AMC will load user partial PDI (stored in OSPI) if the auto-load flag is ON.
~% ami_tool cfgmem_info --help
cfgmem_info - get fpt information
Usage:
ami_tool cfgmem_info -d -t [options...]
Options:
-h --help Show this screen
-d :[d].[f] Specify the device BDF
-t Specify the boot device type (primary or secondary)
-f
Set the output format
-o Specify output file
~%
#### Example output
~% ami_tool cfgmem_info -d 21:00.0 -t primary
Primary FPT:
FPT
-----------------
Version | 2
Header Size | 128
Entry Size | 128
Entries | 3
Partition | Type | Address | Size | PDI Size | PDI MD5 | Power-up Load | Status
---------------------------------------------------------------------------------------------------------------------------
0 | PDI_BOOT | 0x00080000 | 0x07400000 | 0x003ec160 | 360874e0d8a584c09afde073c0ff403a | N/A | Active
1 | PDI_BOOT | 0x07480000 | 0x07400000 | 0x003ec160 | 360874e0d8a584c09afde073c0ff403a | N/A | In-Active
2 | PDI_USER | 0x0e880000 | 0x01000000 | 0x00000000 | 00000000000000000000000000000000 | Off | Not Loaded
~%
---
### cfgmem\_program
#### Description
Uploads a PDI for AMC to program onto the card.
~% sudo ami_tool cfgmem_program --help
cfgmem_program - program a bitstream onto a device
This command requires root/sudo permissions.
Usage:
ami_tool cfgmem_program -d -t -i -p
Options:
-h --help Show this screen
-d :[d].[f] Specify the device BDF
-t Specify the boot device type (primary or secondary)
-i Path to image file
-p Partition to flash
-y Skip confirmation
-q Quit after programming
~%
#### Example output
~% sudo ami_tool cfgmem_program -d 21:00.0 -i -p 1 -t primary
----------------
Device | 21:00.0
----------------
Current Configuration
----------------
UUID | 718e6aa12177bd6fda0ea8f4e32614a1
----------------
Incoming Configuration
----------------
UUID | 709c2688cb801825929d52552b83354b
Path |
Partition | 1
----------------
Are you sure you wish to proceed? [Y/n]: Y
Updating base flash image...
[####################################################################################################] 100% |
Image programming complete.
Will do a hot reset to boot into partition 1. This may take a minute...
OK. Image has been programmed successfully.
***********************************************
Hot reset has been performed into partition 1.
***********************************************
~%
#### Notes
- **If this command reports a failure or an error, the card’s storage device is in an unknown state and the card should not be reset or rebooted. It is advised to reattempt this command.**
- This command requires root/sudo privileges.
- If the \ is specified as **primary**, and the **-q** option is **NOT** used, the card will be automatically rebooted into the selected partition (as shown in the example above).
- The path (provided with the **-i** option) must be the absolute path, not the relative path.
- The incoming UUID may be reported as “N/A” if no UUID metadata is provided with the PDI. This is normal behaviour and does not affect the programming.
- The provided file will be broken into chunks; each chunk will be submitted individually with a timeout of 30s.
---
### cfgmem\_fpt
#### Description
Uploads a PDI containing a valid FPT (file partition table) for AMC to program onto the card. The PDI is always programmed to location 0x00 on the flash.
~% sudo ami_tool cfgmem_fpt --help
cfgmem_fpt - program a device and update the fpt
This command requires root/sudo permissions.
Usage:
ami_tool cfgmem_fpt -d -i
Options:
-h --help Show this screen
-d :[d].[f] Specify the device BDF
-t Specify the boot device type (primary or secondary)
-i Path to image file
-y Skip confirmation
~%
#### Example output
~% sudo ami_tool cfgmem_fpt -d 21:00.0 -i -t primary
----------------
Device | 21:00.0
----------------
Current Configuration
----------------
UUID | 7574dae0cea793ae3b0503b136a3bfd0
----------------
Incoming Configuration
----------------
UUID | 7574dae0cea793ae3b0503b136a3bfd0
Path |
----------------
Will update FPT!
Are you sure you wish to proceed? [Y/n]: Y
Updating FPT...
[####################################################################################################] 100% |
OK. Image has been programmed successfully.
****************************************************
Cold reboot machine to load the new image on device.
****************************************************
~%
#### Notes
- **If this command reports a failure or an error, the card’s storage device is in an unknown state and the card should not be reset or rebooted. It is advised to reattempt this command.**
- This command requires root/sudo privileges.
- The provided image must contain a valid FPT.
- The path (provided with the **-i** option) must be the absolute path, not the relative path.
- The incoming UUID may be reported as “N/A” if no UUID metadata is provided with the PDI. This is normal behaviour and does not affect the programming.
- The provided file will be broken into chunks and each chunk will be submitted individually with a timeout of 30s.
---
### cfgmem\_copy
#### Description
Copies the contents of one partition on the card to another.
~% sudo ami_tool cfgmem_copy --help
cfgmem_copy - copy one partition to another
This command requires root/sudo permissions.
Usage:
ami_tool cfgmem_copy -d -i -p
Options:
-h --help Show this screen
-d :[d].[f] Specify the device BDF
-i Device (primary or secondary):Partition to copy from (source)
-p Device (primary or secondary):Partition to copy to (destination)
~%
#### Example output
~% sudo ami_tool cfgmem_copy -d 21:00.0 -i primary:0 -p primary:1
Copying partition 0 to partition 1
Estimated time to copy partition: 302 (seconds)
.........................................
Done. Partition copied successfully.
~%
#### Notes
- This command requires root/sudo privileges.
- The source partition must be smaller than or equal in size to the destination partition.
---
### cfgmem\_flags\_rd
#### Description
To Read FPT partition flags. Flag setting is applicable to partition 2(user partition) only.
~% sudo ami_tool cfgmem_flags_rd --help
cfgmem_flags_rd - Read partition flags
Usage:
ami_tool cfgmem_flags_rd -d -t -p
Options:
-h --help Show this screen
-d :[d].[f] Specify the device BDF
-t Specify the boot device type (primary or secondary)
-p Partition number to read
~%
#### Example output
~% sudo ami_tool cfgmem_flags_rd -d c1 -t primary -p 2
Reading partition flags from (device c1:00.0, partition 2)
Flags: 0x00020001
Power-up load: On
Power-up load status: Loaded
~%
#### Notes
- Flags: 0x00020001 in this bit 0 indicates power up( 1: on, 0: off). The status bits 17-16 indicates the status( 0: Not Loaded, 1: Loaded, 2/3: Error)
- Power-up load status can have values: Loaded, Not Loaded, Error.
---
### cfgmem\_flags\_wr
#### Description
To Write to FPT partition flags. This is applicable to partition 2(user partition).
Once the autoload flag is on then on power up AMC will load the user PDI from user partition.
~% sudo ami_tool cfgmem_flags_wr --help
cfgmem_flags_wr - Write partition flags
Usage:
ami_tool cfgmem_flags_wr -d -t -p -i
Options:
-h --help Show this screen
-d :[d].[f] Specify the device BDF
-t Specify the boot device type (primary or secondary)
-p Partition number to write
-i Powerup autoload flag to write
Possible values are:
on=power on load user partition
off=do not power on load user partition
~%
#### Example output
~% sudo ami_tool cfgmem_flags_wr -d c1 -t primary -p 2 -i on
Writing partition flags to (device c1:00.0, partition 2 flags 0x00000001)
OK - Partition flags written successfullys
~%
---
### pdi\_program
#### Description
pdi_program - live-load a PDI bitstream onto a device
~% sudo ami_tool pdi_program --help
pdi_program - live-load a PDI bitstream onto a device
This command requires root/sudo permissions.
Usage:
ami_tool pdi_program -d -i [-a | -r]
Options:
-h --help Show this screen
-d :[d].[f] Specify the device BDF
-i Path to PDI image file
-a APU image (load targeting APU subsystem only)
-r RPU image (load targeting RPU subsystem only)
-y Skip confirmation
-q Quit after programming
~%
#### Example output for Partial PL pdi load
~% sudo ami_tool pdi_program -d 21 -i
----------------------------------------------
Device | 21:00.0
----------------------------------------------
Current Configuration
----------------------------------------------
UUID | 00000000000000000000000014862935
----------------------------------------------
Parent UUID | 00000000000000000000000014862935
Path |
----------------------------------------------
Are you sure you wish to proceed? [Y/n]: Y
Updating image...
[####################################################################################################] 100% |
PDI programming complete.
OK. PDI has been programmed successfully.
#### Example output for APU image download
~% sudo ami_tool pdi_program -d 21 -i -a
----------------------------------------------
Device | 21:00.0
----------------------------------------------
Current Configuration
----------------------------------------------
UUID | 00000000000000000000000014862935
----------------------------------------------
Parent UUID | 00000000000000000000000014862935
Path |
----------------------------------------------
Are you sure you wish to proceed? [Y/n]: Y
Updating image...
[####################################################################################################] 100% |
PDI programming complete.
OK. PDI has been programmed successfully.
#### Example output for RPU1 image download
~% sudo ami_tool pdi_program -d 21 -i -r
----------------------------------------------
Device | 21:00.0
----------------------------------------------
Current Configuration
----------------------------------------------
UUID | 00000000000000000000000014862935
----------------------------------------------
Parent UUID | 00000000000000000000000014862935
Path |
----------------------------------------------
Are you sure you wish to proceed? [Y/n]: Y
Updating image...
[####################################################################################################] 100% |
PDI programming complete.
OK. PDI has been programmed successfully.
~%
---
### bar\_wr
#### Description
Writes a value to the PCI BAR memory.
~% sudo ami_tool bar_wr --help
bar_wr - Write to PCI BAR memory
This command requires root/sudo permissions.
Usage:
ami_tool bar_wr -d -b -a (-i|-I)
Options:
-h --help Show this screen
-d :[d].[f] Specify the device BDF
-b Specify the BAR to write
-a Specify the offset to write to
-i Register value to write
-I File to write
~%
#### Example output
~% sudo ami_tool bar_wr -d 21:00.0 -b 0 -a 0x1000 -i 0x22
Writing the following data to device 21:00.0 and BAR 0 at offset 0x0000000000001000
[ 0x0000000000001000 ] 00000022
Are you sure you wish to proceed? [Y/n]: Y
Successfully wrote to 1 register(s)
~%
#### Notes
- This command requires root/sudo privileges.
- If **-i** is selected, the following variable is the value you wish to write.
- If **-I** is selected, the following variable is the path to the file you wish to write from.
- The file must be of the format of a single 4-byte hexadecimal value per line, e.g.:
- 0x00112233
- 0xaabbccdd
---
### bar\_rd
#### Description
Reads a value from the PCI BAR memory.
~% sudo ami_tool bar_rd --help
bar_rd - Read from PCI BAR memory
This command requires root/sudo permissions.
Usage:
ami_tool bar_rd -d -b -a
Options:
-h --help Show this screen
-d :[d].[f] Specify the device BDF
-b Specify the BAR to read
-a Specify the offset to read from
-l Number of registers to read (default=1)
-o Output file
~%
#### Example output
~% sudo ami_tool bar_rd -d 21:00.0 -b 0 -a 0x1000 -l 10
Reading 10 register(s) from device c1:00.0 and BAR 0 at offset 0x0000000000001000
[ 0x0000000000001000 ] 564d5230 00001000 00001000 00002000
[ 0x0000000000001010 ] 00000004 00002004 00000010 00000015
[ 0x0000000000001020 ] 00002014 000012c0
~%
Notes
- This command requires root/sudo privileges.
- If **-o** is selected, the data read will be written to the file path provided.
- The output file will be of the format of a single 4-byte hexadecimal value per line, e.g.:
- 0x00112233
- 0xaabbccdd
---
### device\_boot
#### Description
Selects the boot partition for the card to reboot from.
~% sudo ami_tool device_boot --help
device_boot - set device boot partition
This command requires root/sudo permissions.
Usage:
ami_tool device_boot -d -p
Options:
-h --help Show this screen
-d :[d].[f] Specify the device BDF
-p Partition to select
~%
#### Example output
~% sudo ami_tool device_boot -d 21:00.0 -p 0
Will do a hot reset to boot into partition 0. This may take a minute...
OK. Partition selected (0) - quitting.
***********************************************
Hot reset has been performed into partition 0.
***********************************************
~%
#### Notes
- This command requires root/sudo privileges.
- This causes a software-based device reboot from the selected partition.
---
### mfg\_info
#### Description
Displays the manufacturing information for a selected card.
This output can be logged to a file using the **-o** option and the logged format specified by the **-f** option.
~% ami_tool mfg_info --help
mfg_info - view manufacturing information
Options:
-h --help Show this screen
-d :[d].[f] Specify the device BDF
-f
Set the output format
-o Specify output file
~%
#### Example output
~% ami_tool mfg_info -d c1:00.0
Manufacturing Information
----------------------------------------------------------------
Eeprom Version | 4.0
Product Name | ALVEO V80 PQ
Board Revision | B
Serial Number | XFL1F4ZZBHNY
Mac Address 1 | 00:0a:35:16:57:80
Mac Address N | 00:0a:35:16:57:8f
Manufacturing Date | Sun Dec 24 23:08:00 2023
UUID | c03f60a9-4ed9-77b0-604d-fda13994c847
Board Part Num | A-V80-P64G-PQ-G
Mfg Part Num | 043-05113-01
~%
---
### eeprom\_rd
#### Description
Allows performing a raw data read of the device EEPROM.
This output can be logged to a file using the **-o** option.
~% ami_tool eeprom_rd --help
eeprom_rd - Read the device EEPROM
Usage:
ami_tool eeprom_rd -d -a
Options:
-h --help Show this screen
-d :[d].[f] Specify the device BDF
-a Specify the offset to read from
-l Number of registers to read (default=1)
-o Output file
~%
#### Example output
~% ami_tool eeprom_rd -d 21:00.0 -a 0 -l 128
Reading 128 byte(s) from device 21:00.0 at offset 0x00
[ 0x0000000000000000 ] 34 2e 30 ff 71 c3 41 6c 76 65 6f 20 56 38 30 20
[ 0x0000000000000010 ] 45 53 33 ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 0x0000000000000020 ] ff ff ff ff ff ff ff ff ff ff 41 2d 56 38 30 2d
[ 0x0000000000000030 ] 50 36 34 47 2d 45 53 33 2d 47 ff ff ff ff ff ff
[ 0x0000000000000040 ] ff ff 30 34 33 2d 30 35 31 31 33 2d 30 31 45 53
[ 0x0000000000000050 ] ff ff 42 30 31 ff ff 35 31 31 33 31 42 31 33 39
[ 0x0000000000000060 ] 50 34 4f ff ff 15 c1 de 00 10 00 0a 35 18 8b 21
[ 0x0000000000000070 ] 19 16 f5 04 5b 73 ff 4b bf 39 e7 20 e9 71 03 97
~%
#### Notes
- The **-l \** option specifies the number of bytes to read from the EEPROM.
- If **-o** is selected, the data read will be written to the file path provided.
- The output file will be of the format of a single 1-byte hexadecimal value per line, e.g.:
- 0x00
- 0x11
---
### eeprom\_wr
#### Description
Allows performing a raw data write to the device EEPROM.
~% ami_tool eeprom_wr --help
eeprom_wr - Write to the device EEPROM
Usage:
ami_tool eeprom_wr -d -a (-i|-I)
Options:
-h --help Show this screen
-d :[d].[f] Specify the device BDF
-a Specify the offset to write to
-i Register value to write
-I File to write
~%
#### Example output
~% ami_tool eeprom_wr -d 21 -a 0x80 -i 0x33
Writing the following data to device 21:00.0 at offset 0x80
[ 0x0000000000000080 ] 33
Are you sure you wish to proceed? [Y/n]: Y
Successfully wrote to 1 register(s)
~%
#### Notes
- If **-i** is selected, the following variable is the value you wish to write.
- If **-I** is selected, the following variable is the path to the file you wish to write from.
- The file must be of the format of a single 1-byte hexadecimal value per line, e.g.:
- 0x00
- 0x11
---
### module\_byte\_rd
#### Description
Allows performing a raw data read of a device QSFP module.
~% ami_tool module_byte_rd --help
module_byte_rd - Read from a QSFP module
Usage:
ami_tool module_byte_rd -d -c -p -b
Options:
-h --help Show this screen
-d :[d].[f] Specify the device BDF
-c Module ID to read from
-p Page number to read
-b Specify the offset to read from
~%
#### Example output
~% ami_tool module_byte_rd -d 21 -c 1 -p 0 -b 5
Reading byte 0x05 from page 0 (device 21:00.0, cage 1)
Value 0x00
~%
#### Notes
- The cage numbers are 1-indexed (i.e. 0 is invalid).
---
### module\_byte\_wr
#### Description
Allows performing a raw data write to a device QSFP module.
~% ami_tool eeprom_wr --help
module_byte_wr - Write to PCI BAR memory
Usage:
ami_tool module_byte_wr -d -c -p -b -i
Options:
-h --help Show this screen
-d :[d].[f] Specify the device BDF
-c Module ID to write to
-p Page number to write
-b Specify the offset to write to
-i Byte value to write
~%
#### Example output
~% ami_tool module_byte_wr -d 21 -c 1 -p 0 -b 5 -i 0x01
Writing value 0x01 to page 0, byte 0x05 (device 21:00.0, cage 1)
OK - value written successfully
~%
#### Notes
- The cage numbers are 1-indexed (i.e. 0 is invalid).
---
### debug\_verbosity
#### Description
Sets the verbosity level of the AMC output.
~% ami_tool debug_verbosity --help
debug_verbosity - set the AMC debug level
Usage:
ami_tool debug_verbosity -d -l
Options:
-h --help Show this screen
-d :[d].[f] Specify the device BDF
-l Debug level
Possible values are:
{log, info, error, warning, debug}
~%
#### Example output
~% ami_tool debug_verbosity -d 21 -l debug
Setting AMC debug level to 'debug'.
OK. debug level updated!
~%
#### Notes
- Debug levels are “up to and including”, i.e. a debug level of WARNING will include LOG, INFO, ERROR, and WARNING messages.
- The default debug level is LOG.
- The output can be viewed in dmesg.