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.2.tar.gz (11.0 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.2-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mmcterm-0.2.2.tar.gz
  • Upload date:
  • Size: 11.0 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.2.tar.gz
Algorithm Hash digest
SHA256 1f39c397ca081f8d062114457460e65af1304fb1e19b40e48759f0bffd7e3a6a
MD5 114f73c2a88d88862b36b21715aaf44a
BLAKE2b-256 22ae88a99c074388832cbccfceea0a9edd6ebc5a18244e049885f1f1465717c2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mmcterm-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 10.7 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 79094f68289fa7927c8f527a1aa15d0c185de3d5b31b03f9440e8e9ad4bc9c36
MD5 04fffdc860a671f232bbce1c0b44ce31
BLAKE2b-256 a7f151c6dc9d94c5bb360d507612777b8922b2f2adf6628a091111c8b79c1fa0

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