MUP1 Protocol Configuration

1. Introduction

This document describes configuration options for the MUP1 (Management UART Protocol version 1) serial communication protocol.

2. Checksum Configuration

The MUP1 protocol supports configurable checksum types for frame integrity verification. Two checksum algorithms are available:

Checksum Type Value Description

internet-checksum

1

16-bit Internet checksum (RFC 1071). This is the default.

crc32

2

32-bit CRC32 Ethernet polynomial checksum.

The checksum configuration takes effect only after saving and rebooting. The device continues using the current checksum type until the next boot.
Both the host and device must use the same checksum type to communicate successfully. When changing the checksum type, update the MUP1 client tool configuration to match before rebooting.

2.1. Get Current Checksum Configuration

To retrieve the current MUP1 checksum configuration:

FETCH request message

- "/mchp-velocitysp-system:mup1-config"

FETCH response message

- ? "/mchp-velocitysp-system:mup1-config"
  : mup1-checksum: internet-checksum

2.2. Set Checksum Type to CRC32

To change the checksum type to CRC32:

IPATCH request message

- ? "/mchp-velocitysp-system:mup1-config"
  : mup1-checksum: crc32

Verify the change:

FETCH request message

- "/mchp-velocitysp-system:mup1-config"

FETCH response message

- ? "/mchp-velocitysp-system:mup1-config"
  : mup1-checksum: crc32

2.3. Set Checksum Type to Internet (Default)

To change the checksum type back to Internet checksum:

IPATCH request message

- ? "/mchp-velocitysp-system:mup1-config"
  : mup1-checksum: internet-checksum

Verify the change:

FETCH request message

- "/mchp-velocitysp-system:mup1-config"

FETCH response message

- ? "/mchp-velocitysp-system:mup1-config"
  : mup1-checksum: internet-checksum

2.4. Save Configuration

To persist the checksum configuration across reboots, save the running configuration to startup configuration:

POST request message

- ? "/mchp-velocitysp-system:save-config"
  :

3. Feature Configuration

Individual MUP1 protocol features can be enabled or disabled via the mup1-features configuration leaf. This uses a bits type where each named bit controls both RX and TX for the corresponding feature.

Feature Bit Description

announce

0

MUP1 announce messages (TX at startup)

coap

1

MUP1 CoAP frames (RX/TX)

dtls

2

MUP1 DTLS frames (RX/TX)

ping

3

MUP1 ping/pong (RX/TX)

trace

4

MUP1 trace messages (TX)

Feature changes take effect immediately without requiring a reboot. By default, all features are enabled.
Disabling the coap feature will prevent all CoAP management access over MUP1. Disabling dtls will prevent secure CoAP (CoAPS) access. Ensure alternative management access is available before disabling these features.

3.1. Get Current Feature Configuration

To retrieve the current MUP1 feature configuration:

FETCH request message

- "/mchp-velocitysp-system:mup1-config"

FETCH response message

- ? "/mchp-velocitysp-system:mup1-config"
  : mup1-checksum: internet-checksum
    mup1-features: announce coap dtls ping trace

3.2. Disable a Feature (Ping)

To disable the ping feature while keeping all other features enabled:

IPATCH request message

- ? "/mchp-velocitysp-system:mup1-config"
  : mup1-features: announce coap dtls trace

Verify the change:

FETCH request message

- "/mchp-velocitysp-system:mup1-config"

FETCH response message

- ? "/mchp-velocitysp-system:mup1-config"
  : mup1-checksum: internet-checksum
    mup1-features: announce coap dtls trace

3.3. Re-enable All Features

To re-enable all features:

IPATCH request message

- ? "/mchp-velocitysp-system:mup1-config"
  : mup1-features: announce coap dtls ping trace

Verify the change:

FETCH request message

- "/mchp-velocitysp-system:mup1-config"

FETCH response message

- ? "/mchp-velocitysp-system:mup1-config"
  : mup1-checksum: internet-checksum
    mup1-features: announce coap dtls ping trace

3.4. Save Feature Configuration

To persist the feature configuration across reboots:

POST request message

- ? "/mchp-velocitysp-system:save-config"
  :

4. Baud Rate Configuration

The MUP1 UART baud rate can be configured via the mup1-baudrate leaf. The following standard UART baud rates are supported:

Baud Rate Value Description

baud-9600

1

9600 bps

baud-19200

2

19200 bps

baud-38400

3

38400 bps

baud-57600

4

57600 bps

baud-115200

5

115200 bps. This is the default.

baud-230400

6

230400 bps

baud-460800

7

460800 bps

baud-921600

8

921600 bps

The baud rate configuration takes effect only after saving and rebooting. The device continues using the current baud rate until the next boot.
When changing the baud rate, ensure the MUP1 client tool (mup1ct, mup1cc) is configured to use the matching baud rate via the --baudrate option.

4.1. Get Current Baud Rate

To retrieve the current MUP1 baud rate configuration:

FETCH request message

- "/mchp-velocitysp-system:mup1-config"

FETCH response message (default)

- ? "/mchp-velocitysp-system:mup1-config"
  : mup1-checksum: internet-checksum
    mup1-features: announce coap dtls ping trace

When the baud rate is at the default value (baud-115200), it is not included in the response unless the d=a query flag is used.

4.2. Set Baud Rate

To change the baud rate to 921600:

iPATCH request message

- ? "/mchp-velocitysp-system:mup1-config"
  : mup1-baudrate: baud-921600

4.3. Save Configuration

To persist the baud rate configuration across reboots:

POST request message

- ? "/mchp-velocitysp-system:save-config"
  :

5. MUP1 Protocol Status

The MUP1 receive state machine maintains a set of operational counters that can be read via the mup1-status container. These counters are useful for diagnosing framing, escaping, and checksum problems on the UART link.

All counters are read-only (config false) and are reset to zero when the device restarts.

Counter Type Description

rx-frames

uint32

Number of valid MUP1 frames accepted into the receive buffer.

rx-checksum-err

uint32

Number of frames dropped because of a checksum mismatch.

rx-buffer-full

uint32

Number of received bytes dropped because the receive buffer was full.

rx-unexpected-eof

uint32

Number of EOF symbols received while the parser was in a state that did not expect an EOF.

rx-unexpected-data

uint32

Number of data bytes received while the parser was in a state that did not expect data.

rx-invalid-esc

uint32

Number of ESC symbols received in a state where escaping is not allowed.

rx-invalid-escape

uint32

Number of invalid bytes received immediately after an ESC symbol (not one of the values that may be escaped).

rx-data-overflow

uint32

Number of data bytes received beyond the maximum frame data size; such frames cannot be delivered to the application.

On a healthy link with no protocol errors, all rx-* error counters remain zero while rx-frames increments for every received frame.

5.1. Get MUP1 Status Counters

To retrieve the current MUP1 status counters:

FETCH request message

- "/mchp-velocitysp-system:mup1-status"

FETCH response message

- ? "/mchp-velocitysp-system:mup1-status"
  : rx-frames: 21
    rx-checksum-err: 0
    rx-buffer-full: 0
    rx-unexpected-eof: 0
    rx-unexpected-data: 0
    rx-invalid-esc: 0
    rx-invalid-escape: 0
    rx-data-overflow: 0

Counters that are at their default value (0) may be omitted from the response unless the d=a query flag is used.

6. Board Configuration Default

The default MUP1 settings can also be set in the board configuration YAML file. This allows different boards to use different defaults at boot time.

Example board configuration:

mchp-velocitysp-system:mup1-config:
  mup1-checksum: crc32
  mup1-features: announce coap dtls ping trace
  mup1-baudrate: baud-921600

See Board Configuration for more details on configuring factory defaults.