dramforever__ has quit [Remote host closed the connection]
dramforever__ has joined #riscv
BootLayer has quit [Quit: Leaving]
dramforever_ has joined #riscv
dramforever__ has quit [Read error: Connection reset by peer]
BootLayer has joined #riscv
dramforever__ has joined #riscv
dramforever_ has quit [Ping timeout: 268 seconds]
aerkiaga has joined #riscv
dramforever_ has joined #riscv
dramforever__ has quit [Ping timeout: 255 seconds]
cousteau has joined #riscv
ffcc has joined #riscv
cousteau has quit [Quit: ♫ I can't forget the day I shot that network down ♫]
Andre_H has joined #riscv
dor has joined #riscv
dramforever__ has joined #riscv
dramforever_ has quit [Ping timeout: 268 seconds]
dramforever__ is now known as dramforever
<dramforever>
I've been going down the SiFive errata CIP-453 rabbit hole, and I have a *lot* of questions. So if you have any comments please share them. I mostly just want to know I'm not going insane. That being said...
<dramforever>
2. SiFive says in their errata docs to use ((mepc + mepc ^ mtval) & 2) for the actual mtval for instruction faults. But I think they meant (mepc + ((mepc ^ mtval) & 2)), right? https://www.sifive.com/boards/hifive-unmatched 'Freedom U740-C000 Errata'. They ask for contact information but you can just put anything
<dramforever>
3. This code looks like it would harmlessly work on anything that only has 16- and 32-bit instructions. But no it doesn't work on QEMU. I acknowledge that I was probably doing some weird stuff at the time, but I think I managed to get SIGSEGV with pc hundreds of bytes before si_addr.
jmdaemon has quit [Ping timeout: 244 seconds]
<dramforever>
I unfortunately forgot how to reproduce it because it was last year and just shrug it off because it didn't seem to matter, but I think I managed to reproduce basically the same thing by just running KVM: https://gitlab.com/qemu-project/qemu/-/issues/1155
<dramforever>
Is this something that's known to occur? It seems to be related to a string of straight line code that crosses page boundaries, but I've otherwise been unable to figure it out.
dramforever__ has quit [Ping timeout: 264 seconds]
matt__ has joined #riscv
frkzoid has quit [Ping timeout: 268 seconds]
frkzoid has joined #riscv
Andre_H has quit [Ping timeout: 252 seconds]
matt__ has quit [Ping timeout: 268 seconds]
bob has quit [Ping timeout: 268 seconds]
geranim0 has quit [Ping timeout: 268 seconds]
davidlt has joined #riscv
rvalles has quit [Ping timeout: 252 seconds]
BootLayer has quit [Quit: Leaving]
rvalles has joined #riscv
davidlt has quit [Ping timeout: 252 seconds]
matt__ has joined #riscv
frkzoid has quit [Ping timeout: 244 seconds]
matt__ is now known as freakazoid333
aburgess has quit [Remote host closed the connection]
aburgess has joined #riscv
___nick___ has quit [Ping timeout: 268 seconds]
unlord has quit [Changing host]
unlord has joined #riscv
dramforever__ has joined #riscv
justache has joined #riscv
dramforever_ has quit [Ping timeout: 268 seconds]
dramforever_ has joined #riscv
ffcc has joined #riscv
dramforever__ has quit [Ping timeout: 252 seconds]
dramforever__ has joined #riscv
dramforever_ has quit [Ping timeout: 252 seconds]
<conchuod>
mmind00: what's the name of the program/webserver you use to access the serial terminals on your boards?
<mmind00>
conchuod: at the base it's just ser2net nodejs and an nginx ;-) ... + a lot of homegrown javascript voodoo: https://github.com/mmind/boardfarm-mgmt
<conchuod>
Cool, thanks!
* mmind00
was a webdeveloper for 12 years before going into the kernel
<conchuod>
I think -12 years is before I even wrote my first program.
<mmind00>
conchuod: tanks for making me feel old :-P ;-)
<conchuod>
Sorry!
<mmind00>
conchuod: hehe no worries
* mmind00
notes that this year also marks like 12 years of poking kernel things - what a coincidence
<conchuod>
I might've bought a couple ykush things
<conchuod>
Some relay ones and some of the usb
<conchuod>
Wrote some wrapper stuff for them to integrate with my build scripts so next up is automating the serial terminal side of it
<mmind00>
once you have automated some part of board development, you will never be able to work with a board on your desk again ;-)
<conchuod>
Yeah.. I need to get it setup for work too - some of the lad have fancy netio setups but that's always seemed overkill to me
<mmind00>
oh yeah, that really looks like overkill having like 230V outputs when you actually want 12V or 5V on your board :-)
<conchuod>
Yup... I have a PSU on my desk at work so I'm just gonna do what I did for my Icicle at home & get a breakout for the 24 pin
<mmind00>
my boardfarm is 19in hardware in a modified Ikea shelf, so one case holds the main unit + an flexATX power supply to gives me a number of 5V + 12V lines easily
<conchuod>
then I can slot a ykush relay thing in the middle & use that to switch it on and off rather than have a netio -> kettle lead -> regular icicle external psu
<mmind00>
yep ... so much easier
<conchuod>
I already need the PSU for other boards that only take a 6pin so may as well reuse it :)
<conchuod>
Ye I recently got some 19" rack hw, but I need to rebuild my machine into the case etc but it's too hot right now to want to
<dh`>
dramforever: regarding what you posted a while back, my *guess* would be that the qemu behavior you've observed represents (a) it compiled a block beginning at address X, which crosses a page boundary at address Y; (b) it executes this compiled block, which likely happens as a unit; (c) the second page is not present; (d) it throws a trap with X as the restart address (so as to rerun the whole compiled block) and Y as the fault a
<dh`>
whether this is allowable or correct, fiik
<conchuod>
"fiik"
<conchuod>
i like that one
<dh`>
FIIK is a traditional internet acronym :-p
ffcc has quit [Quit: Leaving]
<dh`>
anyway, if that analysis is correct not doing it will slow qemu down for what I'm sure they'll argue is no good reason
<jrtc27>
that shouldn't happen
<jrtc27>
a fetch page fault should result in the QEMU TB containing code to generate an exception at that exact PC, and terminate the TB
<dh`>
possibly someone thought it was a good idea to prefault the page before executing the block?
dramforever_ has joined #riscv
dramforever__ has quit [Read error: Connection reset by peer]
dramforever__ has joined #riscv
dramforever_ has quit [Read error: Connection reset by peer]
dramforever_ has joined #riscv
dramforever__ has quit [Ping timeout: 268 seconds]