<feed xmlns='http://www.w3.org/2005/Atom'>
<title>esp32p4.git/src/io, branch main</title>
<subtitle>ESP32-P4</subtitle>
<id>https://git.0x4200.cafe/esp32p4.git/atom?h=main</id>
<link rel='self' href='https://git.0x4200.cafe/esp32p4.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/esp32p4.git/'/>
<updated>2026-08-25T15:46:51Z</updated>
<entry>
<title>zig-p4: pure-Zig ESP32-P4 toolchain</title>
<updated>2026-08-25T15:46:51Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-08-25T15:40:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/esp32p4.git/commit/?id=f5f8068fac59b4f16046c2022c2fc7c7e447ef4c'/>
<id>urn:sha1:f5f8068fac59b4f16046c2022c2fc7c7e447ef4c</id>
<content type='text'>
build.zig generates the linker script and drives Zig's own LLD; tools/image.zig
turns the ELF into a flashable image and tools/{rom,serial}.zig speak the mask
ROM loader over the UART. No CMake, ninja, idf.py, esptool, or external linker.

src/soc.zig is a comptime register model over ESP-IDF's own *_reg.h headers;
src/hal/ adds peripheral sequences; src/io/ implements std.Io for the chip;
src/oracle/ diffs this HAL against ESP-IDF's on the die.
</content>
</entry>
</feed>
