Skip to main content

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

Metadata

Release files for mmcterm 0.2.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mmcterm 0.2.4
File Size Uploaded
mmcterm-0.2.4.tar.gz 11.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mmcterm 0.2.4
File Interpreter ABI Platform
mmcterm-0.2.4-py3-none-any.whl Python 3 none any Details

Total release size: 22.2 kB

Release files / mmcterm-0.2.4.tar.gz

Download URL mmcterm-0.2.4.tar.gz
Size 11.2 kB
Tags Source
SHA-256 checksum
How to use checksums
8b11e7bd38f3473ffe97d5dccc469668cac5ea9d216f941dc920d86fa7156541
BLAKE2b-256 checksum
How to use checksums
673311b8637ea6c5d81f9eddc01764e65355311479e67f57b791aa13b71549a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / mmcterm-0.2.4-py3-none-any.whl

Download URL mmcterm-0.2.4-py3-none-any.whl
Size 11.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ecc9a0fc4fdf29744fec4f1c982095a95331faf5b302a6d2b76dd72956c95c14
BLAKE2b-256 checksum
How to use checksums
ee090e41e8150b401c9073aa948eddcbb8eb07eec57a2fdef91575e3c5ab5238
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.2.4 This release

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.2

2 release files

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page