Skip to main content

PyUARTSI

A standalone implementation of the Tethered Serial Interface (TSI) in Python.

Installation

Install from PyPI

pip install barstools.uartsi

Install from repo

git clone https://github.com/ucb-bar/pyuartsi.git
cd ./pyuartsi/
pip install .

Usage

usage: python -m barstools.uartsi [-h] --port PORT [--baudrate BAUDRATE] [--init_write INIT_WRITE] [--init_read INIT_READ]
                   [--elf ELF] [--load] [--selfcheck] [--hart0_msip] [--fesvr] [--cflush_addr CFLUSH_ADDR]
examples: python -m barstools.uartsi --port COM20 --elf <program.elf> --load --hart0_msip
          python -m barstools.uartsi --port /dev/ttyxx --init_read 0x02000000
          python -m barstools.uartsi --port /dev/ttyxx --init_write 0x80000000:0xdeadbeef --init_read 0x80000000
          python -m barstools.uartsi --port /dev/ttyxx --elf <program.elf> --load --hart0_msip --fesvr
          python -m barstools.uartsi --port /dev/ttyxx --baudrate 921600 --elf <program.elf> --load --selfcheck --hart0_msip --fesvr --cflush_addr 0x02010200

Python port of UART-based TSI

options:
  -h, --help            show this help message and exit
  --port PORT           Serial port to connect to
  --baudrate BAUDRATE   Baudrate to use
  --init_write INIT_WRITE
                        Write an initial value to an address
  --init_read INIT_READ
                        Read an initial value from an address
  --elf ELF             Specify ELF file to load
  --load                Load the ELF file to target
  --selfcheck           Run self-check to verify the loaded ELF program
  --hart0_msip          Hart0 MSIP register
  --fesvr               Run the FESVR interface
  --cflush_addr CFLUSH_ADDR
                        Cache control base address

Errata

  • The last printf() syscall on the DUT program will be printed twice for some reason.

  • Always reset DUT before launching new program.

  • The Proxy FESVR currently only supports _write() and _exit() syscall.

See Also

C++ implementation uart_tsi

Rust implementation TSI

Release files for barstools.uartsi 2024.8.14

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

Source distribution (sdist)

Source distribution for barstools.uartsi 2024.8.14
File Size Uploaded
barstools_uartsi-2024.8.14.tar.gz 2.2 kB Details

Built distribution (wheel)

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

Total release size: 4.3 kB

Release files / barstools_uartsi-2024.8.14.tar.gz

Download URL barstools_uartsi-2024.8.14.tar.gz
Size 2.2 kB
Tags Source
SHA-256 checksum
How to use checksums
0e01b0ca31759b3f887f324d7923bc11608c9b3bbba1cb3b83f5ac20bc7173ba
BLAKE2b-256 checksum
How to use checksums
428028b057c29388d3262d3f2f64d77d06b5d219d03c7c720188dbd46a364bd4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.5

Release files / barstools.uartsi-2024.8.14-py3-none-any.whl

Download URL barstools.uartsi-2024.8.14-py3-none-any.whl
Size 2.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
db208778a4d236ad51432b71f972cb74a2153f8d0b423c87f08ab1ae844f2482
BLAKE2b-256 checksum
How to use checksums
31dc59997fd28312b18d776d2247c6193f63475e2887b438bb0bc8ebfb6608aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.5

Release history Release notifications | RSS feed

This release

2024.8.14 This release

2 release files

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