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] 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)

optional arguments:
  -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)

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.1.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

mmcterm-0.2.1-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mmcterm-0.2.1.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for mmcterm-0.2.1.tar.gz
Algorithm Hash digest
SHA256 abf5c84d51d82d62d3b9c947f8b9cb22ce92a626b89cd6f932a579ddb97ce05f
MD5 3049ffeb575fa4e948cdbe25e753decb
BLAKE2b-256 0afb42629bace7923326cd1b7be63ab093f4a7d056f4f9deeef0a97a32750252

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mmcterm-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for mmcterm-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c3cb266a8412bd3d411d3cf01886e8ae486d9af46975b7000fe87c518c743fdb
MD5 3028ba183acd8a9025983cc6b37ed068
BLAKE2b-256 d48f8243da21e1875c95354053f401c3a6f9f99a15b8da41a45618e4f0005d12

See more details on using hashes here.

Supported by

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