lowRISC / lowRISC/opentitan

[qemu] Pinmux/pad support

Open
#28,368 0 comments 0 reactions 0 assignees View on GitHub
Component:QEMU
Dominant language
SystemVerilog
Stars
3.6k
Forks
1.1k
Avg merge
2d 22h
Merged PRs (30d)
141

Description

QEMU currently exposes the GPIO block directly via a chardev. The pins can seemingly be influenced by pinmux attributes, but their mappings are not visible.

Specifically, it's not currently possible to write to, for example, "IOR13" and have it go to the correct GPIO. This is necessary for bootstrapping and GPIO tests.

We will need a pinmux chardev that routes to the correct GPIOs and should probably error out if connected to a peripheral like SPI or UART where we don't support bitbanging.

Contributor guide

Open the contributing guide

Research direction

Start by tracing QEMU's existing GPIO chardev and how pinmux attributes affect pin mappings. Define the pinmux chardev behavior for routing names such as IOR13 to the correct GPIO, including the requested error case for SPI or UART connections, then verify it supports bootstrapping and GPIO tests.

Written by the indexing model from the issue text.

Assessment

Domain
embedded-iot
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.