ChanServ changed the topic of #aarch64-laptops to: Linux support for AArch64 Laptops (Asus NovaGo TP370QL - HP Envy x2 - Lenovo Mixx 630 - Lenovo Yoga C630)
e1eph4nt has quit [Ping timeout: 480 seconds]
e1eph4nt has joined #aarch64-laptops
e1eph4nt has quit [Ping timeout: 480 seconds]
Scottsdale[m] has joined #aarch64-laptops
e1eph4nt has joined #aarch64-laptops
Penguinpee_ has joined #aarch64-laptops
Penguinpee has quit [Ping timeout: 480 seconds]
e1eph4nt has quit [Ping timeout: 480 seconds]
e1eph4nt has joined #aarch64-laptops
hexdump01 has joined #aarch64-laptops
hexdump0815 has quit [Ping timeout: 480 seconds]
e1eph4nt has quit [Ping timeout: 480 seconds]
Scottsdale[m] has left #aarch64-laptops [#aarch64-laptops]
e1eph4nt has joined #aarch64-laptops
<travmurav[m]>
reg addresses for hardware nodes would usually represent the register address base for the hardware block and hardware blocks usually have a fixed place in the address space :) Reserved memory blocks are in ram and it depends on the user if one can relocate them
<HdkR>
Alright, so still need to find the correct addresses for these that don't overlap
<HdkR>
I guess pull up the ACPI dumps and hope for being capable of parsing them
<travmurav[m]>
HdkR: are you trying to define the gpu stuff for the x13s SoC?
<HdkR>
indeed
<travmurav[m]>
I suppose ACPI DSDT would have some register base addresses
<travmurav[m]>
not sure how easy would it be to match acpi uuid <-> what device is there
<travmurav[m]>
would probably be very cool if qcom has downstream linux somewhere with support for that SoC so you could just see the stuff in the downstream DT and adapt that
<HdkR>
Don't think the compute SoCs have any downstream Linux support
<travmurav[m]>
at least 7c has, possibly for the chromebooks
<HdkR>
Might be the only one then
<travmurav[m]>
also possible that the hw blocks are shared with some mobile platform that you can find the dt for (i.e. 7c gen1 is almost equal to snap 720g afaiu) but I suppose 8cx gen3 (iirc) is much more compute oriented and gpu stuff might be "unique"
<HdkR>
No idea there. I'm just flailing
<clover[m]>
Interesting stuff
e1eph4nt has quit [Ping timeout: 480 seconds]
e1eph4nt has joined #aarch64-laptops
<clover[m]>
<travmurav[m]> "not sure how easy would it be to..." <- Is it feasible to try each one?
<HdkR>
My main thing would be extracting ACPI while in Linux, if possible
<clover[m]>
Could you take a acpi dump, desolder the gpu, and take a second acpi dump and deduce from the difference?
<HdkR>
lol
<travmurav[m]>
pretty sure acpi is hardcoded
e1eph4nt has quit [Ping timeout: 480 seconds]
<travmurav[m]>
HdkR: is there no previous dump of the acpi tables?
<HdkR>
I don't think anyone dumped them publicly
<HdkR>
and I already ripped Windows off the device
e1eph4nt has joined #aarch64-laptops
e1eph4nt has quit [Ping timeout: 480 seconds]
e1eph4nt has joined #aarch64-laptops
rpirea has quit [Read error: Connection reset by peer]
e1eph4nt has quit [Ping timeout: 480 seconds]
Penguinpee_ has quit [Remote host closed the connection]
Penguinpee_ has joined #aarch64-laptops
e1eph4nt has joined #aarch64-laptops
e1eph4nt has quit [Ping timeout: 480 seconds]
jelly-hme is now known as jelly
e1eph4nt has joined #aarch64-laptops
rpirea has joined #aarch64-laptops
jhovold has joined #aarch64-laptops
e1eph4nt has quit [Ping timeout: 480 seconds]
e1eph4nt has joined #aarch64-laptops
e1eph4nt has quit [Ping timeout: 480 seconds]
Penguinpee_ has quit [Ping timeout: 480 seconds]
e1eph4nt has joined #aarch64-laptops
Penguinpee_ has joined #aarch64-laptops
Penguinpee_ is now known as Penguinpee
e1eph4nt has quit [Ping timeout: 480 seconds]
e1eph4nt has joined #aarch64-laptops
e1eph4nt has quit [Ping timeout: 480 seconds]
e1eph4nt has joined #aarch64-laptops
e1eph4nt has quit [Ping timeout: 480 seconds]
e1eph4nt has joined #aarch64-laptops
e1eph4nt has quit [Ping timeout: 480 seconds]
e1eph4nt has joined #aarch64-laptops
rpirea has quit [Read error: Connection reset by peer]
rpirea has joined #aarch64-laptops
e1eph4nt has quit [Ping timeout: 480 seconds]
e1eph4nt has joined #aarch64-laptops
e1eph4nt has quit [Ping timeout: 480 seconds]
e1eph4nt has joined #aarch64-laptops
<clover[m]>
<HdkR> "and I already ripped Windows off..." <- I have some free time I can try to get them
rpirea_ has joined #aarch64-laptops
rpirea has quit [Read error: Connection reset by peer]
rpirea__ has joined #aarch64-laptops
rpirea_ has quit [Read error: Connection reset by peer]
<travmurav[m]>
but idk how exactly would you match it
<qzed>
HdkR: IIRC some addresses / register offsets are different between the windows and linux driver
<qzed>
so there's some offset between them
<qzed>
let me try to figure out what I did with ghidra some time back...
<HdkR>
Tricky.
e1eph4nt has quit [Ping timeout: 480 seconds]
<qzed>
ahh right, so part of it is in ACPI, at least for sc8180: GPU0._CRS has the register addresses and GPU0.RESI has the corresponding names for those
<HdkR>
Yea, that's where I've been trying to correlate
<qzed>
right, GFX_REGS_CONT is definitely the base of GMU, or at least what windows uses as base
<qzed>
from that, sc8180x nodes offset 0xa000 for the "gmu" registers
<HdkR>
looks like there is a gmu_pdc and gmu_pdc_seq
<HdkR>
Which might be mixed in this sc8280xp dt?
<HdkR>
Since I'm guessing GPU_PDC_REGS and GPU_PDC_SEQ_MEM relate to gmu_pdc and gmu_pdc_seq respectively
<qzed>
okay so I checked the register addresses between windows and linux drivers and that GFX_REGS_CONT is definitely "gmu" - 0xa000, i.e. in Linux you have addresses relative to GFX_REGS_CONT + 0xa000
<qzed>
or in yet other words: gmu = GFX_REGS_CONT + 0xa00
<HdkR>
Okay, so that offset matches what is in the DT. Confusing
<qzed>
GPU_PDC_SEQ_MEM is "gmu_pdc", at least on the sc8180... seems a bit weird though as you've mentioned this looks kinda swapped
<qzed>
"gmu_pdc_seq" then should be GPU_PDC_REGS
<HdkR>
weird
<qzed>
I do kinda wonder if they're swapped...
<qzed>
but it seems to work, so I'd guess they're correct
<qzed>
also in the spx dsdt are two different sets of definitions for those registers...
<qzed>
seems like some kind of hardware revision thing
e1eph4nt has joined #aarch64-laptops
<HdkR>
Hm, still timeout waiting for GMU OOB thing
<HdkR>
Wrong interrupt numbers maybe?
<qzed>
i have no clue :/
<HdkR>
I guess the interrupts are described as GFX_INTERRUPT and GFX_LPAC_INTERRUPT?
<qzed>
I can't really match them up to anything on the SPX
<HdkR>
Tricky
<qzed>
on the sc8180x GFX_INTERRUPT is 332, the GPU interrupt in the DT is 300, so maybe some offsetting again?
<qzed>
but I can't find the interrupts used in the gmu node...
<robclark>
HdkR: re: https://gist.github.com/Sonicadvance1/2278e2f37722b51c65eb2efbc144c784 .. is `adreno_is_a660_family()` updated to include a690? The `Unable to find the gmu_pdc_seq registers` error, a690 shouldn't be going down that path which makes me think something fundamental is missing, like realizing that a690 is in the a660 generation
<HdkR>
robclark: I don't think that run had that. I'm now tinkering with 690 included with a660
<HdkR>
Trying to figure out why gmu is timing out
<robclark>
just looking at a680.. looks like it is pretty identical to a640.. so I guess I'd expect a690 to be pretty identical to a660.. but I guess worth checking downstream kgsl. Unfortunately in newer android kernels the dt stuff seems to have moved out of the kernel tree, but I guess at least the kgsl bits should be there
<HdkR>
Oh okay, so timeout happens when reading gmu mmio region, not interrupts
<clover[m]>
what's the implication
e1eph4nt has quit [Ping timeout: 480 seconds]
<HdkR>
Not the interrupt number being the issue with gmu oob, mmio region being wrong or off
<HdkR>
No more of this, I feel my brain melting
e1eph4nt has joined #aarch64-laptops
<steev>
HdkR: did you look through the work bamse already did?
<HdkR>
I was just looking at your nonworking-gpu branch