marcan changed the topic of #asahi to: Asahi Linux: porting Linux to Apple Silicon macs | General project discussion | GitHub: https://alx.sh/g | Wiki: https://alx.sh/w | Topics: #asahi-dev #asahi-re #asahi-gpu #asahi-offtopic | Keep things on topic | Logs: https://alx.sh/l/asahi
bpye has quit [Ping timeout: 240 seconds]
bpye has joined #asahi
choozy has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
anarsoul has quit [Quit: ZNC 1.8.2 - https://znc.in]
anarsoul has joined #asahi
odmir_ has joined #asahi
furkan has quit [Ping timeout: 252 seconds]
odmir has quit [Ping timeout: 240 seconds]
furkan has joined #asahi
arcsor5 has quit [Ping timeout: 260 seconds]
odmir_ has quit [Remote host closed the connection]
odmir has joined #asahi
odmir has quit [Ping timeout: 260 seconds]
furkan has quit [Ping timeout: 240 seconds]
JusticeEX has joined #asahi
Emantor has quit [Quit: ZNC - http://znc.in]
Emantor has joined #asahi
riker77_ has joined #asahi
riker77 has quit [Ping timeout: 245 seconds]
riker77_ is now known as riker77
<amw> svenpeter: I've updated the Developer-Quickstart Wiki page with a brief description of using your m1n1 to get normal USB CDC-ACM link going. Hope it's reasonable
phiologe has quit [Ping timeout: 250 seconds]
phiologe has joined #asahi
odmir has joined #asahi
marvin24 has quit [Ping timeout: 250 seconds]
marvin24 has joined #asahi
odmir has quit [Ping timeout: 265 seconds]
rwhitby has quit [Ping timeout: 258 seconds]
_rjeffman has joined #asahi
VinDuv has joined #asahi
rjeffman has quit [Ping timeout: 240 seconds]
TheJollyRoger has quit [Remote host closed the connection]
TheJollyRoger has joined #asahi
brandas has quit [Quit: quit]
brandas has joined #asahi
TheJollyRoger has quit [Remote host closed the connection]
TheJollyRoger has joined #asahi
brandas has quit [Quit: quit]
brandas has joined #asahi
<sven> amw: nice, thanks!
dibas has quit [Remote host closed the connection]
dibas has joined #asahi
dibas has quit [Changing host]
dibas has joined #asahi
jeffmiw has joined #asahi
rwhitby has joined #asahi
jeffmiw has quit [Ping timeout: 246 seconds]
hir0 has joined #asahi
ephe_meral1 has joined #asahi
klaus has joined #asahi
<sven> kettenis: did you try what happens with the PCIe dart when you just ignore that vm-base/vm-size and allow "invalid" regions?
raster has joined #asahi
<kettenis> I thought I tried this at some point; maybe I messed it up
<kettenis> the DART seems to work fine outside the vm-base/vm-size range
<kettenis> I suspect that we do have to avoid the MSI address though
<sven> interesting. so that vm-base might actually be a software thing sometimes
<kettenis> I suppose this means we could shelve the dma window issue for later?
<sven> i guess so
<sven> s/guess/hope/ :)
<sven> i've also seen "allow-subpage-mapping" in these "strange" DART device nodes
<sven> maybe they are even another DART variant with more mysteries
<sven> (there is something called "SMMU" which is ofc unrelated to the ARM SMMU under the display dart device node)
<kettenis> so I played around a bit with the boundaries
<kettenis> starting at 0 causes no issues
<kettenis> and putting the window between 0xe0000000 and 0xf0000000 works as well
<sven> i wonder why the reserve some space at the beginning then
<kettenis> my guess would be to catch bugs
<sven> oh.. good point
<kettenis> a bit like not mapping the page at virtual address zero in normal user space
<sven> maybe that's also the reason for the empty space between the pio and "normal" region arnd observed
<kettenis> could be
<sven> hm... there's an AES engine behind that dart-sio which is one the "strange" ones. i wonder if i can get that one up and running easily
<sven> that would allow some easy tests
furkan has joined #asahi
zkrx has quit [Ping timeout: 265 seconds]
zkrx has joined #asahi
bisko has joined #asahi
rwhitby has quit [Ping timeout: 258 seconds]
vimal has quit [Quit: Leaving]
brandas_ has joined #asahi
brandas has quit [Read error: Connection reset by peer]
JusticeEX has quit [Ping timeout: 240 seconds]
<Necrosporus> It seems RMS support letter is signed by more people that RMS defamation letter
choozy has joined #asahi
hir0 has quit [Quit: hir0]
<sven> heh, so it looks the aes engine works in bypass mode when i set yet another bit in the TCR
<sven> i can't seem to setup pagetables for it though. something's certainly strange there
vimal has joined #asahi
<sven> it complains that my TTBR is invalid but also sets another bit I don't know about in the error stage register
<kettenis> how do you test the AES engine?
<sven> i just reverse engineered the kext. i won't ever write any aes code for linux anyway :)
<Necrosporus> sven, do you make keyboards?
<sven> uh, no
<maz> marcan: as expected, the v4 branch broke KVM. and that's where things become interesting again...
<maz> marcan: as you found out, mask/unmask of the guest timer wasn't working, which means I was running with the guest interrupts notionally disabled.
<sven> kettenis: i always gets fault no matter what pagetables i setup in the DART. might be something rather dumb on my side.
<sven> kettenis: but if this worked we could essentially pretend the AES engine is a DMA engine and actually figure out which addresses are good and what this pio stuff is all about
<maz> marcan: but as it appears, I am still getting interrupts from these timers, despite the "disabled" state.
<maz> marcan: conclusion: SYS_IMP_APL_VM_TMR_FIQ_ENA_EL1 doesn't do what we think it does.
<maz> marcan: I have gutted out all the masking/unmasking code frop the AIC driver, leaving the two enable bits to 0.
<maz> marcan: interrupts still fire just fine and my guests are happy.
<maz> marcan: what I *think* this does is to turn the level interrupt into an edge.
<marcan> what acks the edge in that case?
<marcan> I do remember we need an isb after doing things like flipping TGE
<marcan> to make that register work properly
<maz> marcan: there is plenty of ISBs when flipping TGE. and I'm tegging the interrupt at EL2, not EL1.
<maz> getting*
<marcan> I'll have to do some more tests in m1n1, this is interesting
<maz> yup. I've completely gutted the mask/unmask code from the driver, and I can still run guests, and getting interrupts on the host side.
<maz> marcan: regarding your nVHE question: yes, the kernel runs at EL1 in that mode.
<maz> it uses HVC to call into EL2 as required.
<maz> kettenis: do you know if the DART translates the MSI doorbell? or does it let it through untranslated, a la x86?
<marcan> maz: so that wouldn't work on M1 anyway, until I fix AIC to work in EL1
<marcan> (I mean even without using KVM)
<marcan> maz: if I had to guess, the PCIe endpoint handles the doorbell internally, but that's a guess
<marcan> i.e. it never hits the SoC bus
<maz> marcan: OK, so it is captured upstream of the DART. oddly similar to what Huawei did for their servers.
<marcan> since the doorbell addr is the same for every endpoint, but they should have different MSI ranges
<marcan> (I think)
<marcan> and there's no reason to run that through DART
<maz> marcan: as long as you don't have a two-stage translation on the IOMMU side, you're probably OK. once you start doing device assignment, things become really funny with untranslated doorbells.
<maz> you have to make sure the guest IPA space doesn't overlap with the physical doorbell, which is a fixed point.
<maz> anyway, not something we need to worry for the M1.
troseman has joined #asahi
<marcan> heh, yeah
Bodzioslaw has quit [Remote host closed the connection]
Bodzioslaw has joined #asahi
troseman has quit [Ping timeout: 265 seconds]
<kettenis> maz: the MSI doorbell address is programmed into the per-port host bridge registers
<kettenis> and it isn't translated by the DART
choozy has quit [Remote host closed the connection]
<kettenis> apple seems to uniformly use 0xffff000 as the doorbell address
<kettenis> but programming a different address works
choozy has joined #asahi
bisko has quit [Read error: Connection reset by peer]
<marcan> maz: I'm not seeing edge-triggered behavior in m1n1
<marcan> turning off the mask bits, resetting the timer registers and scheduling them to fire, nothing happens
<marcan> doesn't matter if I go into el0 or el1, still nothing
<marcan> < sven> kettenis: but if this worked we could essentially pretend the AES engine is a DMA engine <- I wonder where you got that idea from :-)
ephe_meral1 has quit [Ping timeout: 240 seconds]
choozy has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
<sven> marcan: totally not the wii days, i swear! :P
<sven> i don't think you can just not set encrypt/decrypt here though. so it's not that great for memcpying stuff around
<sven> but once i figure out why that dart doesn't like my pagetables it should be good enough to get simple view into the iova space :)
<marcan> yeah :)
<marcan> (one of the first things I did with what became mini and the same proxyclient stuff in m1n1 was try control bits on the Wii AES engine and discover that if you don't set encrypt/decrypt, it just does a plain copy)
<sven> didn't you also use that to figure out that weird paddr ^ 0x40 quirk? or was that just the nand hw?
<marcan> that was the nand ECC syndrome calculation
<sven> ah, right.
<marcan> funny thing is after the "official" docs leaked a decade later, it was documented as + 0x40
<marcan> so our docs are better :-)
<sven> hah :)
andi[m] has quit [Quit: Idle for 30+ days]
Necrosporus has quit [Read error: Connection reset by peer]
Necrosporus has joined #asahi
<kettenis> sven: I would avoid including a dma-ranges dt-binding tweak if you're not going to rely in dma-ranges in your DART driver
VinDuv1 has joined #asahi
VinDuv has quit [Ping timeout: 240 seconds]
<sven> the way i understand it is that dma-ranges is done completely outside of the DART driver anyway. this domain->geometry.force_aperture is on top of that and can just further limit the dma window.
<sven> so essentially dma-ranges would be empty because in bypass mode 0x811112222 is a completely valid iova there. but once the iommu is switched to translate mode it's suddenly invalid
<sven> this won't be another property in the device tree. it's really just if (domain->mode != BYPASS) force_aperture_to_32bit()
<sven> but i can also leave it out if you think that's a bad idea as well
VinDuv1 has quit [Ping timeout: 240 seconds]
<kettenis> my point is that the clarification of dma-ranges isn't really related to the DART driver
<kettenis> and potentially controversial since folks have different ideas about how it should be interpreted when there is an IOMMU
<svenpeter> Ah, good point.
<svenpeter> I’ll leave it out of the series then
ephe_meral has joined #asahi
Baughn has quit [Read error: Connection reset by peer]
Necrosporus is now known as Guest59740
Guest59740 has quit [Killed (barjavel.freenode.net (Nickname regained by services))]
Necrosporus has joined #asahi
Baughn has joined #asahi
odmir has joined #asahi
JusticeEX has joined #asahi
bishopdynamics has joined #asahi
<sven> huh. i think the dart even has some kind of feature to protect a range *within* a page
<sven> or maybe i'm just doing something very dumb again :)
<marcan> that would make sense for subpages
odmir has quit [Remote host closed the connection]
odmir has joined #asahi
odmir has quit [Ping timeout: 268 seconds]
phiologe has quit [Ping timeout: 250 seconds]
phiologe has joined #asahi
klaus has quit [Quit: Textual IRC Client: www.textualapp.com]
odmir has joined #asahi
Baughn has quit [Ping timeout: 260 seconds]
odmir has quit [Ping timeout: 246 seconds]
Baughn has joined #asahi
Fanfwe42 is now known as Fanfwe
odmir has joined #asahi
choozy has joined #asahi
odmir has quit [Ping timeout: 260 seconds]
JusticeEX has quit [Ping timeout: 268 seconds]
odmir has joined #asahi
jeffmiw has joined #asahi
odmir has quit [Ping timeout: 240 seconds]
odmir has joined #asahi
ephe_meral has quit [Ping timeout: 268 seconds]
bishopdynamics has quit [Quit: My machine has gone to sleep. ZZZzzz…]
bishopdynamics has joined #asahi
bishopdynamics has quit [Quit: My machine has gone to sleep. ZZZzzz…]
odmir has quit [Ping timeout: 268 seconds]
odmir has joined #asahi
inglor has quit [Ping timeout: 252 seconds]
inglor has joined #asahi
solarkraft has quit [Quit: Bye!]
JusticeEX has joined #asahi
odmir has quit [Ping timeout: 246 seconds]
odmir has joined #asahi
jeffmiw_ has joined #asahi
jeffmiw has quit [Read error: Connection reset by peer]
jeffmiw_ has quit [Remote host closed the connection]
coderobe has quit [Remote host closed the connection]
coderobe has joined #asahi