Skip to main content

Serial over IPMB terminal for DESY MMCs

Project description

mmcterm

Terminal for the custom "serial over IPMB" protocol used by DMMC-STAMP.

Installation

pip3 install mmcterm

Usage

mmcterm [-h] [-v] [-c CHANNEL] [-t INTERVAL] [-l] [-d] [-i] [-m MAX_PKT_SIZE] [--vadatech-quirk] mch_addr mmc_addr

DESY MMC Serial over IPMB console

positional arguments:
  mch_addr              IP address or hostname of MCH
  mmc_addr              IPMB-L address of MMC or "AMCn" (n=1..12)

options:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  -c CHANNEL, --channel CHANNEL
                        console channel (default 0)
  -t INTERVAL, --interval INTERVAL
                        polling interval in ms (default 10)
  -l, --list            list available channels
  -d, --debug           pyipmi debug mode
  -i, --ipmitool        make pyipmi use ipmitool instead of native rmcp
  -m MAX_PKT_SIZE, --max-pkt-size MAX_PKT_SIZE
                        max IPMB packet size to use (Higher numbers give better performance, but can break depending on MCH model)
  --vadatech-quirk      Enable ipmi library quirk for Vadatech support (ignore req seq numbers)

Channels

The DMMC-STAMP always provides channel 0 for the MMC console. This is also the default channel, if the -c argument is not given to mmcterm. Depending on the board implementation, there can be up to 2 additional channels for UARTs of payload FPGAs. The presence and names of those channels can be queried with the -l argument.

Note that only one channel can be opened to a MMC at the same time.

Example

Open a console on AMC board at IPMB address 0x7a connected to the MCH mskmchhvf1.tech.lab:

mmcterm mskmchhvf1.tech.lab 0x7a

Max packet size

Without the -m option, mmcterm uses the standard maximum IPMB packet size of 32 bytes. Due to the limitations of the IPMI protocol, this can quickly become a bottleneck, esp. when used with a SoC running Linux. To mitigate this bottleneck, bigger packet sizes can be set with -m. For NAT MCHs, -m 100 was found to be working, even though it is more than 3 times the standard packet size.

Protocol description

"Serial over IPMB" is a lightweight "serial data forwarding" protocol using custom IPMI messages.

Get channel info

NetFn 0x30, Command 0xf0

Request:

Byte Contents
0 Channel Number

Response:

Byte Contents
0..n Channel Name

Start/stop SOI session

NetFn 0x30, Command 0xf1

Request:

Byte Contents
0 Channel Number
1 1 = start, 0 = stop
2 Max packet size (optional)

Poll/exchange data

NetFn 0x30, Command 0xf2

Request:

Byte Contents
0..n Send data from terminal to MMC

Response:

Byte Contents
0..n Receive data from MMC to terminal

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mmcterm-0.2.4.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mmcterm-0.2.4-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file mmcterm-0.2.4.tar.gz.

File metadata

  • Download URL: mmcterm-0.2.4.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mmcterm-0.2.4.tar.gz
Algorithm Hash digest
SHA256 8b11e7bd38f3473ffe97d5dccc469668cac5ea9d216f941dc920d86fa7156541
MD5 37014811f00fb0e1d6a49e409ed1529a
BLAKE2b-256 673311b8637ea6c5d81f9eddc01764e65355311479e67f57b791aa13b71549a1

See more details on using hashes here.

File details

Details for the file mmcterm-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: mmcterm-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 11.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mmcterm-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ecc9a0fc4fdf29744fec4f1c982095a95331faf5b302a6d2b76dd72956c95c14
MD5 9ec75c58f58379cf28634a94a7c30401
BLAKE2b-256 ee090e41e8150b401c9073aa948eddcbb8eb07eec57a2fdef91575e3c5ab5238

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page