<tpw_rules>
you have to read the peripheral register in its entirety from low to high addresses for everything to work right
<cr1901>
Right, I forgot about that. Don't have the branch checked out, but presumably if I do 8-bit reads to r0 except for the byte that I want, it has the same effect as doing a one byte read
<tpw_rules>
i don't quite understand. i think the read of the lowest byte latches the remaining bytes into an internal register
<cr1901>
Then I don't need to read the reg in its entirety? Just the low byte and the byte I actually want?
<tpw_rules>
that's an implementation detaio
<zyp[m]>
probably, but that sounds silly
<tpw_rules>
detail
<zyp[m]>
why would you spend logic resources on getting atomic registers, and then write software that works around it?
<cr1901>
(I don't want actually want atomic registers; non-atomic ones won't be added)
<zyp[m]>
«don't make registers wider than the bus» is a straight forward way to avoid the whole issue
<cr1901>
Yea, so that's back to the "make a second GPIO peripheral", which is non-ideal for "reasons that only apply to the attosoc example in Sentinel", but is otherwise a good idea :)
<cr1901>
(I allow the demo to select between a completely-wishbone or wishbone-plus-CSR SoC. The same firmware works unmodified on both. Requiring a second GPIO peripheral breaks that.)
<cr1901>
But anyway, the demo hasn't worked on icestick/fit into 1280 LUTs for months, so maybe I should just give up on that.
<zyp[m]>
how does a 32b CSR bus work out? you save the width conversion logic, but lose more than the savings elsewhere?
<cr1901>
Never tried it, actually
<cr1901>
The bigger-than-bus-width thing didn't rear its head until yesterday, so I set it to 8 and forgot about it
<cr1901>
>the demo hasn't worked on icestick/fit into 1280 LUTs for months <-- finally figured out an easy way to fix this; increase UART speed. Decreases divisor width significantly
frgo has quit [Read error: Connection reset by peer]
frgo has joined #amaranth-lang
jorolf[m] has quit [Quit: Idle timeout reached: 172800s]
eigenform[m] has quit [Quit: Idle timeout reached: 172800s]
<zyp[m]>
I guess the «remote SSH strategy» won't work against a windows machine?
<zyp[m]>
I'd like to try out some stuff on the certuspro-nx-evn I've had collecting dust on a shelf for a couple of years, and the easiest place I could install radiant is a windows box…
<zyp[m]>
any linux boxes I've got are both headless and less beefy…
<whitequark[cis]>
<zyp[m]> "I guess the «remote SSH strategy..." <- not unless you use WSL i think
<zyp[m]>
can WSL call windows .exes?
Hoernchen has quit [Ping timeout: 248 seconds]
<zyp[m]>
ah, yeah, seems worth a try then
Hoernchen has joined #amaranth-lang
<cr1901>
The MSYS2 SSHD also _might_ work, but requires a bit of setup