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
hewwo362 has joined #asahi
odmir has joined #asahi
odmir has quit [Ping timeout: 268 seconds]
hewwo362 has quit [Quit: Connection closed]
odmir has joined #asahi
odmir has quit [Ping timeout: 240 seconds]
<marcan>
artemist: (modulo when they go and break betas, but yes, for release versions :))
<marcan>
(don't use a macos beta as your iBoot/firmware bundle for a Linux install long-term)
maknho_ has joined #asahi
maknho has quit [Ping timeout: 246 seconds]
KindOne has quit [Ping timeout: 260 seconds]
m0drobert is now known as modrobert
phiologe has quit [Ping timeout: 276 seconds]
phiologe has joined #asahi
artemist has quit [Ping timeout: 276 seconds]
KindOne has joined #asahi
jeffmiw has joined #asahi
jeffmiw has quit [Ping timeout: 252 seconds]
aquijoule_ has joined #asahi
richbridger has quit [Ping timeout: 268 seconds]
Bublik has joined #asahi
Bublik_ has quit [Ping timeout: 260 seconds]
marvin24 has quit [Ping timeout: 245 seconds]
marvin24 has joined #asahi
KindOne has quit [Ping timeout: 265 seconds]
maknho_ has quit [Ping timeout: 252 seconds]
maknho_ has joined #asahi
adamcstephens9 has joined #asahi
adamcstephens has quit [Ping timeout: 240 seconds]
adamcstephens9 is now known as adamcstephens
phiologe has quit [Ping timeout: 250 seconds]
phiologe has joined #asahi
VinDuv has joined #asahi
<pugguu[m]>
artemist: thanks
<pugguu[m]>
Guess its timma do a update
raster has joined #asahi
m42uko has quit [Ping timeout: 260 seconds]
rkjnsn[m] has quit [Ping timeout: 245 seconds]
Serentty has quit [Ping timeout: 245 seconds]
PixelyIon[m] has quit [Ping timeout: 245 seconds]
notafile has quit [Ping timeout: 245 seconds]
pipcet[m] has quit [Ping timeout: 245 seconds]
brentr123[m] has quit [Ping timeout: 245 seconds]
ewlsh[m] has quit [Ping timeout: 245 seconds]
dtantono[m] has quit [Ping timeout: 245 seconds]
LucasTorrobaHenn has quit [Ping timeout: 245 seconds]
noc0lour1 has quit [Ping timeout: 245 seconds]
PthariensFlame[m has quit [Ping timeout: 245 seconds]
Linkin1Park[m] has quit [Ping timeout: 245 seconds]
ywest1280[m] has quit [Ping timeout: 245 seconds]
rkjnsn[m] has joined #asahi
Serentty has joined #asahi
PixelyIon[m] has joined #asahi
pipcet[m] has joined #asahi
brentr123[m] has joined #asahi
ewlsh[m] has joined #asahi
ywest1280[m] has joined #asahi
notafile has joined #asahi
dtantono[m] has joined #asahi
LucasTorrobaHenn has joined #asahi
vimal has quit [Quit: Leaving]
noc0lour1 has joined #asahi
PthariensFlame[m has joined #asahi
Linkin1Park[m] has joined #asahi
ywest1280[m] has quit [Quit: Idle for 30+ days]
raster has quit [Ping timeout: 240 seconds]
raster has joined #asahi
jeffmiw has joined #asahi
raster has quit [Ping timeout: 252 seconds]
jeffmiw has quit [Ping timeout: 246 seconds]
maknho_ has quit [Ping timeout: 252 seconds]
maknho_ has joined #asahi
raster has joined #asahi
<sven>
marcan: soo... how do we call the SPRR register that unlocks bits in SPRR_PERM_EL0 after it has been locked down but which can only be written from EL1? :D (SPRR_UNK2_EL1)
raster has quit [Ping timeout: 252 seconds]
<pipcet[m]>
I got a very minimal mmiotracer working using the stolen-core approach. Probably not too interesting, the HV is much better, but if anyone needs an mmiotrace right this very second, it might help :-)
TheJollyRoger has quit [Ping timeout: 240 seconds]
mechpilotace has quit [Quit: WeeChat 2.8]
TheJollyRoger has joined #asahi
raster has joined #asahi
<sven>
alright, so apparently this DAPF block sometimes sits behind the DART (i.e. device -> DART -> DAPF -> memory) and it's just a very simple address filter
<sven>
it has 16 filters which each have a 0x40 byte long config space. first u32 seems to be configuration, second u32 seems to select the SID and then there are two u64s which are probably start and end pointers
<sven>
no idea why that exists since they can already do all that filtering inside the DART itself
<sven>
i still have to figure out the exact bits inside the config register though, maybe they are doing something special to the memory range
<maz>
sven: unless dart and DAPF can be controlled by separate entities (kernel vs hypervsor)
<maz>
sven: a poor-man stage-2.
<sven>
oh.. good point.
TheJollyRoger has quit [Ping timeout: 240 seconds]
<pipcet[m]>
so it might prevent you from writing to the page tables when the dart is in pass-through mode?
<sven>
i'm starting to think that one of the pass-through bits i found in the DART space is actually "DAPF bypass mode"
<maz>
pipcet[m]: among other things. but it implicitly assumes that memory isn't badly fragmented (which isn't usually true)
<pipcet[m]>
maz: might be true for the kernel page tables.
<sven>
and maybe, just maybe, DAPF allows to set memory attributes
<sven>
config: 0x10300, sid: 01, from 022b45c000 to 022b45c003
<sven>
config: 0x10100, sid: 01, from 0800c80000 to 0800d23fff
<sven>
that's from the ADT. first one should be RAM, second one should be MMIO
<pipcet[m]>
but if there's a bit to by-pass DAPF it might be something else entriely.
<pipcet[m]>
just standard USB-C <-> USB-A works now
<tarzeau_>
but requires a second machine or terminal... and someting like screen /dev/ttyS0
<tarzeau_>
i'm fine waiting to have something on the local screen
<pipcet[m]>
you'll get a logo right away, but having the second machine to chain-load the kernel is really handy. But, again, no special cable required. I don't own one.
<tarzeau_>
the logo, and what about a local console?
<jannau>
usb cdc acm doesn't work for the kernel though. the framebuffer works, input requires usb support in the kernel
<tarzeau_>
ahhh i can use an usb-c to usb-a to another linux computer and that as terminal
<jannau>
or support for the laptop keyboards
inglor has quit [Ping timeout: 252 seconds]
inglor has joined #asahi
<pipcet[m]>
tarzeau: well, you can also chainload the corellium kernel if you just want to see whether it works on your machine, but that's not asahi linux.
<tarzeau_>
jannau: yes!
<jannau>
yes, but that doesn't work for the kernel yet. marcan is working on a minimal hypervisor which will provide a virtual uart to a second cdc acm interface
<tarzeau_>
pipcet[m]: guess i'll be waiting
<tarzeau_>
what i never understood is how people use linux in a vm like qemu, virtualbox or parallels. i couldn't get any to work
<j`ey>
on m1?
<tarzeau_>
yes
<j`ey>
did you build qemu with the required patches?
<tarzeau_>
openemu and dosbox work though
<marcan>
sven: SPRR_PERM_MASK_EL1?
<jannau>
the resulting system is not that useful as there is no storage or network support. i.e. you can boot a kernel and initramfs
<tarzeau_>
j`ey: nope i wasn't able to build qemu i think, and virtualbox isn't even available. parallels i got that special beta, but nothing with debian nor ubuntu
<tarzeau_>
jannau: ah, pointless
<j`ey>
tarzeau_: well, uh, you building qemu with patches, just worked for me
<jannau>
tarzeau_: patched qemu works fine for me since december
<tarzeau_>
j`ey: current maaster? and where to find the patches?
<marcan>
jannau: the hypervisor can do stupid serial emulation right now which should work for earlycon, I'll improve it to not be that stupid soon so it can serve as proper vserial
<marcan>
was going to work on that and mmiotrace today, but emergencies took over my day...
raster- has quit [Quit: Gettin' stinky!]
<jannau>
marcan: I'm working on using a second cdc interface as vuart
<marcan>
(on top of the thing I just pushed to support reg-reg offset mode for loads/stores)
<marcan>
that gets it to a point... where it loads a floating point register from mmio (yes, really)
<marcan>
so I guess I'm goingt to have to add emulation for that
Bublik has quit [Ping timeout: 252 seconds]
artemist has joined #asahi
<svenpeter>
lol
<svenpeter>
Which device exposes a float in its MMIO region? :D
<j`ey>
svenpeter: the suspense is killing me!
<marcan>
sven: not sure, pushing a dynamic ADT reg lookup thing into the yak shaving pile for tomorrow
<marcan>
for now though I just bypassed those ranges, and also removed the PCIe nodes from the DT corresponding to the type C port the HV owns (xnu really didn't like dangling phandle refs)
<marcan>
and now we're back at pmgr kills me, except due to flushing issues I don't see the final mmio poke, so the next yak shave push is to add a flush function to the dwc code, but also while I'm at it I might as well look into doing the serial port properly... then emulate that properly...