pg12_ has quit [Remote host closed the connection]
pg12_ has joined #asahi-dev
doggkruse has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
doggkruse has joined #asahi-dev
kov has quit [Quit: Coyote finally caught me]
abilash1994[m] has joined #asahi-dev
ah-[m] has joined #asahi-dev
psykose has quit [Read error: Connection reset by peer]
psykose has joined #asahi-dev
al3xtjames0 has joined #asahi-dev
al3xtjames has quit [Remote host closed the connection]
al3xtjames0 is now known as al3xtjames
spot[m] has joined #asahi-dev
alexanderwillner[m] has joined #asahi-dev
chadmed has quit [Quit: Konversation terminated!]
h_ro[m] has joined #asahi-dev
chadmed has joined #asahi-dev
chadmed has quit [Quit: Konversation terminated!]
chadmed has joined #asahi-dev
tophevich[m] has joined #asahi-dev
Amey has joined #asahi-dev
rethematrix[m] has joined #asahi-dev
Eighth_Doctor has joined #asahi-dev
msmith12[m] has joined #asahi-dev
TellowKrinkle[m] has joined #asahi-dev
chadmed has quit [Remote host closed the connection]
chadmed has joined #asahi-dev
aleasto has joined #asahi-dev
<arnd>
alyssa: I'd try to avoid the ## concatenation. While that does involve passing both (almost identical) identifiers in the DCP_THUNK_*() call, it does become possible to grep afterwards, which helps readers understand where the calls actually go.
<sven>
usual disclaimer: no idea if that ever worked, probably doesn't work anymore these days
<marcan>
ack, thanks
<sven>
let's see if i can still find my notes
doggkruse has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<sven>
but IIRC it had fields like sid mask, some flags, start, end
<sven>
(or maybe sid instead of sid mask, don't remember)
<marcan>
povik: it's just the page after the DART regs, and it's a little table with from/to/size type mappings, and some magic flags, some of which seem related to whether the mapping gets used for the DART PTs themselves
<marcan>
that's as much as you'd see on the stream anyway
<povik>
ah okay
<marcan>
if you dump a DAPF that is properly configured you'll see it
<povik>
let
<marcan>
I think DCP had it? or another one? I forget
<sven>
and you may or may not need to set the DART stream 15 to bypass mode
<povik>
*let's look into this then
<marcan>
and yeah, 15 to bypass seems to be a thing
<sven>
the sio dart which is used for the aes engine and apparently also audio
<sven>
i guess macos configures that one at some point
<sven>
maybe
<sven>
or maybe setting stream 15 to bypass is enough
<povik>
okay, first step: try to put iovas in poc driver as high as they are in linux
<sven>
so apparently the aperture given in the ADT is 0x0021c000 with a size of 0xfbde4000
<kettenis>
which dart is this (in the ADT)?
<sven>
but for other darts that was a lie
<povik>
kettenis: dart-sio
<povik>
high iovas still work
<sven>
okay. so the aperture is also a lie for that dart :D
<povik>
strange
<povik>
i rebooted and now speaker emits sounds
<povik>
from linux!
<povik>
(although not the correct sounds)
<sven>
uhhh....
<alyssa>
povik: do not disregard "it's faulting nonstop in m1n1 but there's no IRQ handler checking" as a possibility ;-p
<alyssa>
OB(for the PoC)
<povik>
but that would a fault with data still going through
<povik>
*would be a fault
<povik>
i dont know what changed between the two tries
<povik>
i run the poc driver a few times and then booted linux in hypervisor again
<povik>
maybe that's it
<povik>
i didnt reboot before starting the hypervisor
<sven>
doesn't make much sense though :/
<povik>
could be there's some left-over state from poc driver that makes it work
<sven>
in the DART?
<povik>
i dont know, somewhere
<povik>
let me reproduce
<sven>
if it works again, do you do anything special when setting up the DART?
<povik>
not at all
<povik>
dart.initialize and that's it
<povik>
okay, ran linux hypervisor after fresh reboot and am back to dart faults and no sound
<povik>
let's try running poc driver, then linux with no reboot
<sven>
hm... dart_initialize does self.regs.ENABLED_STREAMS.val = 0 and then later self.regs.ENABLED_STREAMS.val |= self.enabled_streams which my driver doesn't do
<povik>
no faults and sound now
<sven>
unless not all streams are enabled after a fresh boot
<povik>
let me put a comma in there
<povik>
no faults, and sound now
<sven>
ugh
<sven>
can you try write32(u.adt["/arm-io/dart-sio"].get_reg(0)[0] + 0xfc, 0xffff) before booting linux?
<povik>
whatever the m1n1 dart driver does, it has a positive influence
<povik>
sure
<sven>
it looks like the sio dart starts with the first three streams disabled *sigh*
<povik>
it does seem to do the trick
<povik>
let me try again with no interference from other things i did
<sven>
lol
<sven>
so for some reason something (iboot?) disabled streams 0,1 and 2 in the sio dart
<povik>
that beats at the beginning, clipped, confused me at first
<povik>
thought it is underflowing periodically
doggkruse has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
povik has quit [Remote host closed the connection]
___nick___ has quit [Ping timeout: 480 seconds]
yuyichao_ has quit [Ping timeout: 480 seconds]
doggkruse has joined #asahi-dev
<marcan>
02:51:37 < sven> hm... dart_initialize does self.regs.ENABLED_STREAMS.val = 0 and then later self.regs.ENABLED_STREAMS.val |= self.enabled_streams which my driver doesn't do
<marcan>
ah yes, I noticed that while making PMP work
<marcan>
that's when I added that code
<marcan>
it's definitely required for a bunch of DARTs :)
<marcan>
(PMP is funny btw, the reg property in the adt is actually a pile of MMIO ranges you're supposed to map *for* it in the DART, then on startup you give it a table of DVAs and some other stuff from the ADT)