sorear changed the topic of #riscv to: RISC-V instruction set architecture | https://riscv.org | Logs: https://libera.irclog.whitequark.org/riscv | Matrix: #riscv:catircservices.org
alexghiti has quit [Ping timeout: 260 seconds]
cousteau has quit [Quit: ♫ I can't forget the day I shot that network down ♫]
mfny1 has joined #riscv
mfny has quit [Ping timeout: 245 seconds]
esv has joined #riscv
Tenkawa has quit [Quit: Was I really ever here?]
BootLayer has joined #riscv
theruran has quit [Quit: Connection closed for inactivity]
jacklsw has joined #riscv
<clever> anybody here familiar with how irq's work on rv32? linux is throwing an odd error that is getting in my way: [ 0.276729] WARNING: CPU: 0 PID: 1 at kernel/irq/manage.c:2183 request_threaded_irq+0x114/0x204
sakman has joined #riscv
<clever> i think its due to IRQ_PER_CPU_DEVID being set on the irq, but i'm not sure why its fine with the other irq's
davidlt has joined #riscv
<sorear> nothing interrupt related is different beyond surface details between rv32 and rv64, at least architecturally
<sorear> I'm not sure offhand what could be causing linux to behave differently
<clever> sorear: so far, the only big difference ive discovered, is that the hw timer never calls request_threaded_irq
<clever> so its avoiding the error, by just not calling the function that throws errors
<clever> for context, the riscv,clint0 irq's work fine, but a virtio,mmio irq instantly fails upon request
<clever> ah, because the timer is using request_percpu_irq
<clever> which makes sense, you want timers to be core-local
davidlt has quit [Remote host closed the connection]
<clever> sorear: do you have any examples of a non core-local irq that works?
<sorear> I've never touched the linux core irq code, but I don't remember having difficulty with irqs on rv32 in 2020
<sorear> when I did fairly extensive testing of the recently merged musl port in qemu
<clever> has anybody ever gotten virtio-mmio to work in risc-v?
<sorear> yes
<clever> sorear: its ugly, but i "fixed" it by just editing virtio-mmio, to use per-cpu irqs!, do you have an example dts of where it works normally? qemu i'm guessing?
<sorear> yes, qemu. I presume you only have one cpu if there's no functional difference?
<clever> yeah, i would assume the same
<sorear> wait, you were working on a custom simulator for some reason - do you have anything to actually deliver global interrupts?
<clever> but its weird that the driver is "broken" like this
<clever> ahh, good question!
<clever> sorear: the only irq controller i have, is a child of the cpu 0 node!
<clever> that smells like a per-cpu irq controller
<sorear> Core Local INTerrruptor
<clever> ah, thats what happens when i charge in blindly, and write code without knowing the shorthand!
<clever> from what i can see, clint is a timer, that generates core-local ints at a defined time, and riscv,cpu-intc is a core-local interrupt controller?
<clever> and the dts just lacks a global interrupt controller?
<sorear> you need a PLIC, APLIC, or MSIs to support routing global interrupts to specific cores. I'm not sure if linux supports hooking up general hardware to core-local interrupts (it seems like it should be possible, but the hardware on which it makes sense tends to be too low-spec for linux so I wouldn't personally have prioritized making it work)
<sorear> virtio-mmio doesn't support MSI but virtio-pci does
<clever> i guess i can temporarily charge on with it configured as a core-local irq, and when the main dev wakes up, can then look into getting global irq's
<clever> i dont have a pci bus either, so virtio-pci would be even more work
<sorear> is there a version of the dts with the virtio-mmio or other device you were trying to use?
<sorear> virtio-mmio is a "slot" which can be empty, qemu does or did just create 8 of them at fixed addresses regardless of the command line
<clever> let me pastebin the new dts
<sorear> I'm wondering how you tried to specify the cpu-intc as an interrupt target
<clever> i basically just copied what the clint was doing, but youll also see i cleaned up how interrupts are handled, vs what was in github
<sorear> I'm looking up what <8> means right now but custom core-local interrupts start at a minimum of 16
<clever> ah
<clever> i initially tried 42, then noticed that linux seemed to only allocate 32 irq's
<clever> so i tried 30, and then 8
<clever> and all of them failed equally
<sorear> Documentation/devicetree/bindings/interrupt-controller/riscv,cpu-intc.txt says that custom core-local interrupts (those other than the standard timer, standard IPI, and standard chaining point for a PLIC or APLIC) are not supported at all, but this is incompatible with the functionality of CONFIG_RISCV_M_MODE and also doesn't seem to be checked anywhere
<sorear> I take it you're not actually delivering interupts in rv32ima yet
<clever> no new interrupts, just the existing clint ones
<clever> `sleep 10` still delays for 10 seconds, so i havent broken those
<sorear> I mean your virtio emulator code doesn't generate hw interrupts
<clever> correct
<clever> it doesnt even check the virtio rings
<clever> its just barely responding to the MMIO
<clever> HandleControlLoad(0x10010102) == 0x0
<clever> i can also see what is kinda a bug in linux, it didnt respect the size specified in the dts
<clever> i claimed that the virtio_input was 0x100 in size (incorrect as well), and then the driver wrote to offset 0x102!
BootLayer_ has joined #riscv
BootLayer has quit [Ping timeout: 268 seconds]
BootLayer_ has quit [Client Quit]
jacklsw has quit [Ping timeout: 268 seconds]
KREYREN has quit [Remote host closed the connection]
KREYREN has joined #riscv
mlw has joined #riscv
dh` has quit [Read error: Connection reset by peer]
dh` has joined #riscv
jacklsw has joined #riscv
naoki1 has joined #riscv
naoki has quit [Ping timeout: 245 seconds]
naoki1 is now known as naoki
naoki1 has joined #riscv
naoki has quit [Ping timeout: 245 seconds]
naoki1 is now known as naoki
jacklsw has quit [Ping timeout: 255 seconds]
fuwei has quit [Remote host closed the connection]
jacklsw has joined #riscv
jacklsw has quit [Quit: Back to the real world]
Noisytoot has quit [Excess Flood]
Noisytoot has joined #riscv
fuwei has joined #riscv
fuwei has quit [Quit: Konversation terminated!]
Nixkernal has joined #riscv
KREYREN has quit [Remote host closed the connection]
KREYREN has joined #riscv
Nixkernal has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
Nixkernal has joined #riscv
KREYREN has quit [Remote host closed the connection]
KREYREN has joined #riscv
KREYREN has quit [Remote host closed the connection]
KREYREN has joined #riscv
Nixkernal has quit [Read error: Connection reset by peer]
Nixkernal has joined #riscv
Noisytoot has quit [Ping timeout: 256 seconds]
Noisytoot has joined #riscv
KREYREN has quit [Remote host closed the connection]
mlw has quit [Read error: Connection reset by peer]
mlw has joined #riscv
coldfeet has joined #riscv
coldfeet has quit [Remote host closed the connection]
<clever> sorear: adding a `enable_percpu_irq(irq, 0);` to `virtio_mmio.c`, and improving the emulators irq support, i can now get the virtio-mmio irq handler to fire on demand
Maylay has quit [Read error: Connection reset by peer]
naoki has quit [Quit: naoki]
Tenkawa has joined #riscv
Stat_headcrabed has joined #riscv
Stat_headcrabed has quit [Quit: Stat_headcrabed]
Stat_headcrabed has joined #riscv
jfsimon1981 has joined #riscv
luca_ has joined #riscv
luca_ is now known as OwlWizard
OwlWizard has quit [Quit: OwlWizard]
pbsds has quit [Ping timeout: 252 seconds]
pbsds3 has joined #riscv
luca_ has joined #riscv
luca_ is now known as OwlWizard
OwlWizard has quit [Client Quit]
josuah has quit [Remote host closed the connection]
BootLayer has joined #riscv
jfsimon1981 has quit [Remote host closed the connection]
jfsimon1981 has joined #riscv
jfsimon1981 has quit [Remote host closed the connection]
jfsimon1981 has joined #riscv
Stat_headcrabed has quit [Quit: Stat_headcrabed]
josuah has joined #riscv
Noisytoot has quit [Quit: ZNC 1.8.2 - https://znc.in]
Noisytoot has joined #riscv
danilogondolfo has quit [Remote host closed the connection]
danilogondolfo has joined #riscv
Noisytoot has quit [Remote host closed the connection]
Noisytoot has joined #riscv
<jrtc27> is there a reason for you to not just add a PLIC?
<jrtc27> you'll be fighting the OS every step of the way if you try and have external interrupts that aren't external...
khem has joined #riscv
vagrantc has joined #riscv
hightower4 has joined #riscv
hightower3 has quit [Ping timeout: 268 seconds]
<mfny1> So ive looked around and cant find anything else like the Unmatched at same price point or lower that's available now so guess if i want RISC-V with Desktop/GPU support its the only game in town ?
danilogondolfo has quit [Remote host closed the connection]
Stat_headcrabed has joined #riscv
khem has quit [Quit: WeeChat 4.2.2]
khem has joined #riscv
vagrantc has quit [Ping timeout: 268 seconds]
lzrd has joined #riscv
vagrantc has joined #riscv
Stat_headcrabed has quit [Quit: Stat_headcrabed]
eightthree has quit [Ping timeout: 268 seconds]
eightthree has joined #riscv
BootLayer has quit [Quit: Leaving]
<mfny1> Anyone have any recommendations for a miTX case for the Unmatched ?
<vagrantc> i've used these, but also requires very tiny power supplies https://www.mini-box.com/M350-universal-mini-itx-enclosure
<vagrantc> though i'm also running mostly off of solar, so a DC-DC power supply is ideal, and they have some nice ones
<mfny1> that seems to be a case without space for a GPU
<mfny1> i need one with PCIE
<mfny1> would a case with a PCIE riser work with the Unmatched ?
coldfeet has joined #riscv
pecastro has joined #riscv
mlw has quit [Ping timeout: 256 seconds]
<palmer> Stove has one that fits a bunch of stuff, it's a glass/acrylic sandwich with long standoffs.
Nixkernal has quit [Ping timeout: 255 seconds]
Nixkernal has joined #riscv
Orac has joined #riscv
Starfoxxes has quit [Ping timeout: 255 seconds]
Tenkawa has quit [Ping timeout: 268 seconds]
Tenkawa has joined #riscv
Orac has quit [Ping timeout: 268 seconds]
zBeeble has quit [Read error: Connection reset by peer]
pecastro has quit [Quit: Lost terminal]
zBeeble has joined #riscv
Starfoxxes has joined #riscv
<smaeul> mfny1: "space for a GPU" can mean anything from a single half-height slot to multiple full height slots. I currently have my Unmatched + Radeon RX 6400 in a Mini-ITX TFX pizza box case. But you'll need something bigger with a more powerful GPU.
coldfeet has quit [Remote host closed the connection]
<Tenkawa> Anyone know an effective way to force a SPI hardware erase on a VF2?
<Tenkawa> I'm taking one last look at this board before I call it unusable and it just seems if I could get the SPI/NOR emptied it might get past where it hangs up
<Tenkawa> Since nothing else will allow interaction though its going to require a board level (grounding/chp level) I imagine if there is any hope at all..
<clever> Tenkawa: what about the option of just unsoldering the spi flash entirely?
<Tenkawa> clever: not an option for me
<Tenkawa> (dexterity)
<clever> borrow some hands?
<Tenkawa> I'd rather "not" go that route
<Tenkawa> The OpenSBI shouldn't be unflashable
Noisytoot has quit [Remote host closed the connection]
<clever> are you able to compile the opensbi? printf debugging?
<clever> figure out when and where its hanging?
<Tenkawa> Yeah... thats easy... but I can't interact with it
crabbedhaloablut has quit []
<Tenkawa> Its locked up solid and I've posted the info any noone has any idea so far
Noisytoot has joined #riscv
<Tenkawa> Always locks up at:
<Tenkawa> Boot HART MHPM Count : 2
<Tenkawa> Boot HART MIDELEG : 0x0000000000000222
<Tenkawa> Boot HART MEDELEG : 0x000000000000b109
crabbedhaloablut has joined #riscv
<clever> and where in the source did that last line come from?
<Tenkawa> No idea... I don't have that enabled.. thats vendor...
<clever> you need to edit that source, and add more printf's
<clever> to narrow down where the problem is
<Tenkawa> I can't flash it....
<Tenkawa> its locked up solid
<clever> if the jumpers are working the way i expect, it should be running the copy from the sd card
<Tenkawa> sd card wont boot
<Tenkawa> "nothing" runs
<clever> does it hang in the same way?
<Tenkawa> no
<Tenkawa> U-Boot SPL 2024.01+dfsg-1ubuntu5 (Apr 04 2024 - 16:22:45 +0000)
<Tenkawa> SPL: failed to boot from all boot devices
<Tenkawa> Trying to boot from MMC2
<Tenkawa> DDR version: dc2e84f0.
<Tenkawa> spl: partition error
<Tenkawa> ### ERROR ### Please RESET the board ###
<Tenkawa> and thats from several sd cards
<clever> that sounds like it got past the opensbi problem, and its just u-boot not liking the partition table, so same solution, printf debugging!
<clever> add printf's to u-boot's partition code, and see why its upset
<Tenkawa> won't help if I can't get the right combination of vendor/mainline code
<clever> i think this is where your 3 lines of paste came from
<Tenkawa> Its a combo right now
<clever> yep, and thats the 2nd and 3rd line
<clever> so when booting from spi, it fails after calling sbi_boot_print_hart()
<Tenkawa> better q is why
<clever> Tenkawa: this is what happens after
<clever> it tries to wake the other cpu cores, and doesnt appear to print anything during that
<Tenkawa> yeah it appears locked for sure
<clever> then it switches cpu modes
<clever> the problem, is that its doing a lot of things, and not printing anything
<clever> so you dont actually know where it hung
<clever> it might be finishing this code entirely successfully, and passing control off to the next stage
<Tenkawa> I need to see a screenshot of the rest of the OpenSBI opening list... see how much more is in that initial list
<Tenkawa> That might give me some info too
<Tenkawa> A fair amount scrolls by initially but then hits hat
<Tenkawa> er that
<Tenkawa> Now the fun part will be figuring out how to build a debug build of this to try.....
<Tenkawa> (on a bootable sdcard)
<clever> my rough understanding, is that opensbi will initialize the system some, and then run u-boot
<Tenkawa> yes
<clever> so if your getting u-boot errors, then it booted opensbi from the sd card just fine
<clever> and the spi isnt causing problems there
<Tenkawa> no.. but I can't interrupt it to get to the CLI so something is broke
<Tenkawa> that usually works fine
<clever> re-reading the error, i can see why
<clever> u-boot SPL is kind of like the bootloader for uboot
<clever> the SPL is rather dumb, and lacks a CLI
<clever> so you just cant get a CLI until the SPL has booted the real u-boot
<Tenkawa> yeah
<Tenkawa> guess I'll have to try adding debug
<Tenkawa> before giving up completely
<Tenkawa> busy weekend so not sure if it will be this weekend heheh
<Tenkawa> thanks for the ideas
<drmpeg> "Boot HART MEDELEG : 0x000000000000b109" is the last line of the OpenSBI banner.
Noisytoot has quit [Ping timeout: 272 seconds]
<Tenkawa> ok so it looks like it did just not handoff
<Tenkawa> That might be easier to fix
<Tenkawa> I did notice that u-boot version looks way too new
<Tenkawa> I'll revert it back a bit
DesRoin has quit [Ping timeout: 255 seconds]
<Tenkawa> (this is a 1.2a rev board so its still a bit fickle)
<Tenkawa> cheers for now all... thanks for all the info
Tenkawa has quit [Quit: Was I really ever here?]
DesRoin has joined #riscv
Noisytoot has joined #riscv
KREYREN has joined #riscv