<feed xmlns='http://www.w3.org/2005/Atom'>
<title>threadx.git/ports/risc-v64/gnu/example_build/erbium/plic.c, branch dev</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/threadx.git/atom/ports/risc-v64/gnu/example_build/erbium/plic.c?h=dev</id>
<link rel='self' href='http://cgit.235523.xyz/threadx.git/atom/ports/risc-v64/gnu/example_build/erbium/plic.c?h=dev'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/threadx.git/'/>
<updated>2026-09-30T14:49:55Z</updated>
<entry>
<title>Fixed Erbium interrupt masking and PLIC update races</title>
<updated>2026-09-30T14:49:55Z</updated>
<author>
<name>Frédéric Desbiens</name>
<email>frederic.desbiens@eclipse-foundation.org</email>
</author>
<published>2026-09-30T13:55:51Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/threadx.git/commit/?id=fb4a8761fc04cad7d259f6563c85460f8aeb6a7a'/>
<id>urn:sha1:fb4a8761fc04cad7d259f6563c85460f8aeb6a7a</id>
<content type='text'>
Polling UART output held machine interrupts off for an entire string, which
could lose ThreadX ticks. PLIC enable-word changes could overwrite an update
made by an interrupt handler.

The UART now polls with interrupts enabled and protects only the final status
check and byte write. PLIC enable and disable changes are protected across
their read-modify-write. The README explains the new simulator tests.

Both simulator tests failed on the original code and passed with these fixes.
The 100-million-cycle demo run reported all eight threads and five thread 0
wakeups. AI disclosure and port consistency checks passed. No silicon run.

Assisted-by: Codex (GPT-6-Sol) &lt;noreply@openai.com&gt;
</content>
</entry>
<entry>
<title>Added an Erbium example to the RISC-V64 GNU port</title>
<updated>2026-09-30T14:49:55Z</updated>
<author>
<name>Afonso Oliveira</name>
<email>afonso.oliveira707@gmail.com</email>
</author>
<published>2026-09-30T11:13:03Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/threadx.git/commit/?id=7212b366aeb0e02eae4cc1cdc6f9787b19bfd79e'/>
<id>urn:sha1:7212b366aeb0e02eae4cc1cdc6f9787b19bfd79e</id>
<content type='text'>
ThreadX had no board support for Erbium, the OpenHW Foundation CORE-ET RISC-V platform
that Zephyr and NuttX support. Its hart implements only part of the F extension, needs a
4 KiB aligned mtvec and uses the original Shakti UART.

The example runs the standard demo on hart 0 in machine mode. It builds the library and
the demo for rv64imc_zicsr_zifencei with the soft-float lp64 ABI and links without libc
or libgcc, so the pinned riscv64-unknown-elf toolchain can build it. It programs the
machine timer, a polling UART console and the PLIC, writing the source priorities and
threshold that silicon hardwires because the simulator resets them to 0. No shared file
changes.

The demo built without warnings and ran on erbium_emu from et-platform 836a4ab, with all
eight threads reporting and five thread 0 wakeups in 100M cycles, which matches the 2
MHz tick. Separate test images took five PLIC UART interrupts through the ThreadX ISR
path and halted with mcause 2 on an illegal instruction. check_ai_disclosure.sh and
check_ports.sh passed.

Assisted-by: Claude Code (Opus 5.5) &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
