A curious creature, sw engineer, casual hockey player, roller and long distance runner. Free software addict.

Sunnyvale, CA
Joined August 2008
xtensa gcc gets double precision FPU support.
73
Linux gave me an unexpected choice: either be able to use UBIFS or be able to erase a 4KB block on an spi nor FLASH, but not both. Even when I want to erase in one partition and use UBIFS on another.
1
107
Linus Torvalds on bad hardware architectures: lore.kernel.org/all/CAHk-=wj… xtensa scores a lot of points in that list with confidence and a few more as optional features.
1
3
91
A couple new changes in the esp32-linux-build scripts: - update to linux-6.11 and buildroot-2024.08 - new configuration for the Espressif Box-3 supporting SPI display and USB host controller
1
1
4
471
xtensa FDPIC toolchain gets initial TLS and NPTL support with uClibc-ng. New linux builds for esp32s3 and esp32 will have it enabled by default. xtensa FDPIC support in musl libc is next.
1
5
633
xtensa gcc switches from reload to LRA thanks to Takayuki 'January June' Suwa.
236
On esp32 as long as DPORT_{PRO,APP}_CACHE_CTRL1_REG bits DPORT_{PRO,APP}_CACHE_MASK_IRAM1 are set, reads from the region 0x4040_0000..0x407F_FFFF (VAddr2 in esp32 TRM terminology) return 0xbad00bad. Clearing these bits makes the VAddr2 mappings work.
2
3
348
And as long as bits DPORT_{PRO,APP}_CACHE_MASK_IROM0 are set, reads from the region 0x4080_0000..0x40BF_FFFF (VAddr3) return 0xbad00bad. Clearing these bits makes the VAddr3 mappings work.
150
Got linux-6.7-rc8 + userspace running on esp32 with 4M FLASH and 4M PSRAM. It took some time to find a workaround for the unfortunate default FLASH mapping. Build script: github.com/jcmvbkbc/esp32-li…
2
5
2
28
2,631
c++ exceptions and c cleanup routines are now working in the xtensa FDPIC toolchain. TLS and NPTL are next.
4
244
Got GPIO kernel driver working in esp32s3 xtensa linux, and with that bitbanged SPI and I2C. Can scan i2c bus with i2cdetect. Got an example i2c accelerometer working in the kernel iio framework.
1
1
13
666
xtensa gcc compiler port is nicely parameterized by the WINDOW_SIZE macro, that specifies the size of a register window used for function calls. It's fixed as 8 right now, so I thought that changing it to 4 might be a quick way to get gcc to use call4 instead. Ha-ha, what a fool
3
4
537
Turns out xtensa windowed ABI assignment of hard frame pointer to a7 messes up gcc idea of call-clobbered registers with WINDOW_SIZE of 4, even when the frame pointer is not in use.
1
224
xtensa windowed ABI is somewhat vague about it and says that the frame pointer "may (but is not required to) be allocated in register a7". If I squint hard enough I can read it as "for functions that use call4 the frame pointer may be allocated in a3".
205
iperf3 on xtensa linux on esp32s3 shows ~2Mbits/s for TCP in both client and server modes.
3
1
4
966
on the loopback interface it shows ~14Mbits/s, so 2Mbits/s on wireless doesn't look that bad
1
2
290
and now an interesting thing: on a different module I see 5Mbits/s on wireless and 30Mbits/s on local interface.
2
245