12:31 mntmn: hey i have a bit exotic setup here with an i.mx6q (arm cortex a9) and a NVIDIA Corporation GK208 [GeForce GT 710B] (rev a1) (prog-if 00 [VGA controller])
12:31 mntmn: i get > nouveau 0000:01:00.0: unknown chipset (e59ff01c)
12:32 mntmn: anything i could try or lost cause?
12:32 tomeu: "a bit"
12:32 mntmn: hehe tomeu
12:34 mntmn: the question is more like: is this graphics chip supported and should normally work, i.e. it's an arm/synopsys problem?
12:35 imirkin: mntmn: something seems off with MMIO
12:35 mntmn: ok?
12:35 imirkin: that's not a correct value for the chipset id
12:35 imirkin: and if reading that fails, then all bets are off
12:36 imirkin: there's a pci-level issue
12:36 mntmn: ah, gotcha. what should normal values look like?
12:36 imirkin: does the board itself have a PCIe slot, or are you doing something clever?
12:36 mntmn: imirkin: i'm using an mPCIE to PCIe 1x adapter (the card is 1x)
12:36 imirkin: well, you're not well placed to identify valid vs invalid values
12:37 imirkin: if it were super-invalid, it'd read ffffffff -- pci is active-low, so "zeros" are actually all one's
12:37 imirkin: this value means the read semi-succeeded
12:37 imirkin: but not enough to actually get a correct value
12:38 imirkin: could be that the BAR setup is wrong, could be some cache coherency issue (i don't trust ARM)
12:38 imirkin: GK208 is fairly well supported
12:38 karolherbst: mntmn: is this one of those super cheap mpcie to pcie adapters?
12:39 imirkin: does the adapter have its own power source?
12:39 mntmn: karolherbst, yeah, it's basically just a short flatband cable
12:39 mntmn: imirkin: yes
12:39 karolherbst: yeah.....
12:39 imirkin: iirc the TDP of GK208's is in the 30W range
12:39 karolherbst: imirkin: the power source isn't the problem here
12:39 mntmn: yeah i have 2 external power supplies for it
12:39 mntmn: i also designed the motherboard
12:39 karolherbst: mntmn: what can happen is, that the PCIe signal is too weak to be stable enough though
12:39 imirkin: (which would be about 30W more than the i.mx6 can provide)
12:40 mntmn: (but i put mPCIe on it instead of PCIe)
12:40 karolherbst: mntmn: do you know if that adapter works in practice?
12:40 imirkin: yeah, i'd try plugging a NIC in if you have one available
12:40 karolherbst: like does it work with an ethernet card or something else
12:40 imirkin: or something else innocuous
12:41 mntmn: karolherbst, hmm i have only tried a radeon card that doesn't work because it wants to map too big BARs
12:41 karolherbst: well
12:41 karolherbst: maybe the BARs are too big because of the cable as well ;)
12:41 mntmn: (this soc can only map 16 MB of PCIe space, but i don't get any errors with the nvidia card vs the radeon)
12:41 karolherbst: who knows what random bit flips might happen
12:42 imirkin: mntmn: ooh.... only 16MB of PCIe?
12:42 imirkin: that is not gonna go over well.
12:42 mntmn: karolherbst, yeah but OTOH i heard that radeon wants to map a huge amount of vram like that
12:42 mntmn: imirkin, yeah it's kinda sad
12:42 imirkin: so .... i think the BAR's are actually configurable
12:42 imirkin: (i mean a configurable size)
12:43 imirkin: but nouveau does not support this directly iirc
12:43 mntmn: yeah that was kinda the straw i'm clinging on
12:43 mntmn: ok
12:43 imirkin: iirc all the "interesting" stuff happens on BAR3, which on my GF108 is Region 3: Memory at de000000 (64-bit, prefetchable) [size=32M]
12:43 karolherbst: imirkin: nouveau also reads out the chipset from 0x0, right?
12:43 karolherbst: mntmn: lspci is happy though?
12:43 imirkin: karolherbst: yeah. but ... where is 0x0 ;)
12:44 karolherbst: true
12:44 karolherbst: mhhh
12:44 mntmn: maybe it doesn't work in a 32 bit system?
12:44 karolherbst: mntmn: is the GPU at 01:00.0?
12:44 imirkin: mntmn: https://envytools.readthedocs.io/en/latest/hw/bus/bars.html
12:44 karolherbst: or some other address?
12:45 mntmn: karolherbst: yep 01:00.0
12:45 imirkin: i was wrong - BAR0 is the "main" BAR.
12:45 mntmn: lspci lists 3 mappings, two of them disabled
12:45 imirkin: which for me is sized to 16M
12:45 mntmn: 2x > Memory at <unassigned> (64-bit, prefetchable) [disabled]
12:45 mntmn: and > I/O ports at 1000 [size=128]
12:45 imirkin: can you pastebin the lspci output?
12:45 mntmn: sure
12:45 karolherbst: mntmn: lspci -s 01:00.0 -vv -xxx
12:46 imirkin: are there funny pci errors when you load nouveau?
12:46 mntmn: imirkin: nope
12:46 mntmn: http://dump.mntmn.com/nvpci.txt
12:47 karolherbst: mhh
12:47 karolherbst: the pci config space looks fine
12:47 karolherbst: but yeah Region 1/3
12:49 imirkin: that is not find.
12:49 karolherbst: and no Region 0?
12:49 imirkin: fine*
12:49 imirkin: yeah, where's region 0
12:49 mntmn: dmesg has only 1 entry for this card: > [ 0.465770] pci 0000:01:00.0: BAR 0: assigned [mem 0x01100000-0x0110ffff 64bit]
12:49 imirkin: the most important of them all
12:50 imirkin: that is not 16MB
12:50 imirkin: that's 64KB
12:50 karolherbst: mntmn: I have something like that in lspci: Region 0: Memory at ec000000 (32-bit, non-prefetchable) [size=16M]
12:50 mntmn: ah strange
12:50 karolherbst: and pci 0000:01:00.0: BAR 0: assigned [mem 0xec000000-0xecffffff] in dmesg
12:51 imirkin: but even if you map it in, i'm not sure that nouveau can operate with *only* BAR0 mapped
12:52 mntmn: http://dump.mntmn.com/nvdmesgpci.txt
12:52 imirkin: anyways, you need to figure out these PCI issues before nouveau will work
12:52 mntmn: ok, gotcha
12:53 karolherbst: mntmn: why is that by the way? "Link: Gen2 disabled"
12:53 imirkin: the bridge window is only 1MB too?
12:53 imirkin: anyways, this is all above my pay-grade. you'll have to find someone who speaks pci to make sense of all this.
12:53 mntmn: good question, let me see karolherbst
12:53 mntmn: imirkin: ok, thank you anyway :)
12:54 karolherbst: mntmn: newer cards usually come up in v2 mode, but I think they should just do fine dropping to v1 if the host doesn't support it
12:54 karolherbst: allthough I could imagine it is untested on newer cards
12:55 sigod: hi
12:56 mntmn: karolherbst, gen2 speed needs an external oscillator, it can be enabled in DTS but the documentation says that the SoC clock itself has too much jitter to meet the spec of gen2
12:56 karolherbst: mntmn: okay, shouldn't matter that much anyway.
12:56 mntmn: yeah but well spotted
12:56 imirkin: mntmn: fwiw we could probably get away with just 8MB of BAR0 in practice
12:56 karolherbst: just not sure if it works or not, allthough i just should
12:56 imirkin: i don't think there are any mmio addresses above 0x700000
12:57 karolherbst: I know that the GPUs operate just fine if put into v1 mode, but....
12:57 mntmn: yeah who knows
12:57 karolherbst: imirkin: there are actually
12:58 imirkin: that are actively used by the driver?
12:58 karolherbst: ohh wait, you mean 0x800000 actually, or not?
12:58 imirkin: well, whatever.
12:58 imirkin: oh right. 0x700000 is RAMIN :)
12:59 mntmn: is BAR0 the register space?
12:59 mntmn: ah yeah i should rtfm
12:59 imirkin: mntmn: kinda. not really register so much as function call...
12:59 karolherbst: imirkin: nouveau/nvkm/subdev/bios/shadowramin.c
12:59 karolherbst: but yeah...
12:59 sigod: i was just wondering if the developer who had a gtx660 has done a trace yet re the context switch error?
12:59 karolherbst: I guess you can just not use that
13:00 imirkin: karolherbst: still doesn't go over 0x800000 which is 8MB
13:00 karolherbst: sigod: there is a trace
13:00 karolherbst: imirkin: right
13:01 karolherbst: sigod: but afaik the trace didn't show anything useful
13:01 sigod: oh ok
13:01 karolherbst: I actually have access to that card, but I didn't really do much with it yet, cause I was occupied a bit
13:01 karolherbst: I might try to figure something out next week though
13:01 sigod: cool
13:02 karolherbst: I think I found a way to trigger it quite fast
13:02 sigod: yea it takes a while to crash x
13:02 karolherbst: well, I got an error after a few seconds by spamming glxspheres64
13:02 karolherbst: got like 20 of them running
13:02 sigod: yea or a heavy 3d app
13:03 karolherbst: well
13:03 karolherbst: yeah, maybe
13:03 sigod: yea not sure either
13:03 karolherbst: but can you verify, that spamming glxspheres64 kind of triggers it?
13:03 karolherbst: allthough I noticed that the desktop recovered when I killed all of those via ssh
13:03 sigod: yea you can still access via ssh
13:04 sigod: but i couldnt recover x
13:04 karolherbst: okay
13:04 karolherbst: well, I will try to figure something out then
13:04 sigod: sweet
13:04 karolherbst: could be anything though and maybe I don't find anything
13:06 sigod: it seems like a specific problem though like the management acceleration between different applications or is it deeper than that
13:07 karolherbst: does the nvidia firmware helps?
13:07 karolherbst: if it is a bug simply inside our firmware, it might be able to track it down
13:07 sigod: i cant test that because im using parabola
13:08 sigod: yea i think it is the nouveau firmware maybe
13:08 karolherbst: maybe it is a stupid bug like we get a value we don't expect and forget to mask values or something silly like this
13:08 karolherbst: who knows
13:09 sigod: isnt the nvidia firmware just for the video decoding etc
13:09 sigod: i mean nouveau-fw
13:09 karolherbst: right, but user can also use the nvidia context switching code
13:11 sigod: so nouveau has its own firmware for the various cpus on the board?
13:11 karolherbst: yeah
13:11 karolherbst: allthough you wouldn't call them CPU
13:19 imirkin: karolherbst: i would.
13:19 imirkin: they're CPUs
13:19 imirkin: they run an OS
13:19 imirkin: simple though it might be
13:20 imirkin: sigod: while most of the userful firmware extracted by my script is for video decoding, i also extended to grab the ctxsw fw
13:20 imirkin: sigod: see https://nouveau.freedesktop.org/wiki/VideoAcceleration/#firmware for instructions
13:22 sigod: yea thanks but remember im on parabola
13:22 imirkin: dunno what that means
13:22 imirkin: is that like x^2?
13:23 karolherbst: imirkin: libre kernel
13:23 imirkin: you know, all this "libre kernel" bs is ... bs.
13:23 imirkin: we should just move the nouveau-made firwmare into linux-firmware
13:23 imirkin: and move on with life.
13:24 imirkin: why is loading firmware off disk so wrong
13:24 karolherbst: I guess you can't prevent loading firmware off chip anyway
13:24 karolherbst: I am sure the libre linux kernel would even try to do this
13:24 orbea: non-free blobs that can be seen are evil and non-free blbos you cant see are fine? :P
13:25 imirkin: orbea: what about free blobs that happen to be sitting on your hard drive?
13:25 imirkin: and not *built into the kernel*
13:25 orbea: heh
13:25 karolherbst: imirkin: but yeah, maybe we should just move it into linux-firmware and load the firmware from there
13:25 sigod: they arent in use
13:25 karolherbst: imirkin: easier to update
13:25 sigod: ideally you wouldnt have non-free blobs sitting there
13:26 sigod: on the os anyway
13:26 karolherbst: well practically you shouldn't turn on your computer if you care for real
13:26 imirkin: and wear a tinfoil hat
13:26 sigod: with the non-free bios
13:26 karolherbst: the CPU is already the problem
13:26 karolherbst: and ethernet cards
13:26 karolherbst: and wifi cards
13:26 karolherbst: and....
13:27 imirkin: anyways, what i'm against here, btw, is how the "libre kernel" implements its policy
13:27 karolherbst: the usual way of doing things is to have embedded firmware and be able to update it via firmware blobs on hardware
13:27 imirkin: i'm all for removing non-free blobs from kernel
13:27 orbea: ^
13:27 karolherbst: so in this case, preventing loading firmware might even reduce system security
13:27 karolherbst: *on disc
13:28 imirkin: sigod: either way, you won't get much support or sympathy for running a lobotomized kernel
13:28 sigod: its just a non-negotiable thing
13:28 orbea: s/non-negotiable/placebo/ :P
13:29 sigod: im not after sympathy i dont want to be a pain though
13:29 imirkin: i would actually strongly support making sure nouveau can't run on such kernels even with our own firmware
13:29 karolherbst: imirkin: and how would you do that :p
13:29 imirkin: by moving our firmware to linux-firmware
13:29 karolherbst: doesn't change it
13:30 imirkin: then request_firmware() would be required
13:30 karolherbst: because our firmware is still free software
13:30 karolherbst: well
13:30 karolherbst: they would have to fix it :)
13:30 karolherbst: and add whitelists/blacklists
13:30 imirkin: making them jump through more hoops to support their idiocy sounds like a reasonable outcome.
13:30 karolherbst: well
13:30 karolherbst: we just have to care about stable interfaces then
13:30 karolherbst: and maybe even versioning
13:31 imirkin: that's indeed unfortunate.
13:31 karolherbst: what if we add new interfaces to our PMU firmware
13:31 karolherbst: anyway, it isn't something we could just do without it being painful in the future if we don't do it correctly
13:31 sigod: im on a laptop with intel gfx atm and it works perfectly
13:31 sigod: its just for my desktop
13:32 orbea: there is non-free stuff in the intel cpus, no?
13:32 sigod: no the specs are available
13:33 sigod: i915
13:33 karolherbst: orbea: you have to ask differently: is there something with non free stuff?
13:33 karolherbst: uhm
13:33 karolherbst: I meant is there something with no non free stuff
13:34 orbea: yea, wouldn't be surprised if there if other stuff had soething non-free in the hardware.
13:34 karolherbst: sigod: well you also need blobs for newer intel chips kind of
13:34 karolherbst: orbea: hardware itself is usually non-free ;)
13:34 orbea: yea...
13:35 sigod: yea thats why people are building free hardware 3d printed computers
13:35 orbea: i certainly wish there was more freedom in hardware, but libre-linux doesn't seem like a solution as much as sticking your head underwater until you drown
13:36 imirkin: sigod: starting with later intel chips, you have to load various firmware off disk. but all intel cpu's since p4 have tons and tons and tons of firmware all around.
13:36 sigod: yea same with amd
13:36 karolherbst: and their minix kernel....
13:37 imirkin: (later = skylake iirc)
13:37 karolherbst: I never thought anybody would use minix in production
13:37 karolherbst: but intel does
13:37 sigod: yea i have an i7 950 and it doesnt have the Intel management engine
13:37 imirkin:has i7-920 :)
13:38 karolherbst: it still has something though, right?
13:38 imirkin: sure. tons of stuff.
13:38 karolherbst: also minix?
13:38 imirkin: dunno
13:38 mntmn: imx6 doesn't need to load any firmware btw ;) but it can't talk to nvidia chips over pcie it seems :|
13:38 sigod: motherboard is a gigabyte x58udr3 v2
13:39 sigod: going strong for 8 years
13:39 imirkin: sigod: i guess it was a popular board at the time
13:39 imirkin: Manufacturer: Gigabyte Technology Co., Ltd.
13:39 imirkin: Product Name: EX58-UD3R
13:39 imirkin: ;)
13:40 karolherbst: ohh they used ThreadX RTOS before minix anyway
13:40 sigod: it has this annoying whine though that everyone complained about and gigabyte didnt fix i updated the bios and it didnt change anything
13:40 sigod: ud3r
13:40 imirkin: mmmm... haven't noticed it. i think i have other loud things though.
13:40 sigod: i thought it was my psu but im pretty sure its the mb
13:40 imirkin: not to mention hearing loss due to a decade of nyc subways
13:41 sigod: thats no good
13:41 sigod: you are brave to live in nyc
13:42 imirkin: ... ok
13:42 sigod: i mean with all the people
13:42 imirkin: as opposed to other places, which don't have people?
13:42 sigod: rats etc
13:42 karolherbst: :D
13:42 imirkin: yummy delicious rats!
13:42 sigod: pizza rat
13:43 imirkin: nyc doesn't have that many rats
13:43 imirkin: boston - now that's a city with rats
13:43 imirkin: and they get a lot more motivated to go inside during winter
13:43 karolherbst: It never occured to me, but I figure you really have alot of rats over there?
13:44 imirkin: in nyc? not really. you see them in the subway, but rarely on the streets, and almost never in houses
13:44 sigod: https://www.youtube.com/watch?v=UPXUG8q4jKU
13:44 imirkin: sigod: right. but that's just like 1
13:45 karolherbst: proven by sample size of 1!
13:45 imirkin: proof by induction...
13:45 imirkin: it's true for n = 1, therefore it's true for all n
13:45 karolherbst: well you hav eto proove it is true for n + 1 as well ;)
13:46 imirkin: it was a joke.
13:46 karolherbst: really
13:46 imirkin: one of the various "ways to prove it". including things like "proof by handwaving"
13:48 imirkin: https://www.cs.northwestern.edu/~riesbeck/proofs.html
13:48 karolherbst: :D
13:50 orbea: nice link :)
13:50 sigod: dont worry we have 30 million possums in nz
13:50 sigod: and only 4 million people
13:50 imirkin: not sure i even know what a possum is... definitely heard the name, but not sure i've ever seen one in person
13:51 imirkin: oh. a super-furry rat.
13:51 orbea: As a biologist I was taught that science doesn't prove anything as much as it explains observations. :)
13:51 sigod: http://www.outlawyarn.com/uploads/5/0/5/8/50584339/9275751.jpg?296
13:51 orbea: also possums are not in North America, not suprising you wouldn't see one. We do have opposums though :P
13:52 imirkin: they look a lot meaner in google images results
13:52 karolherbst: orbea: correct
13:52 imirkin: The largest are the two species of bear cuscus which may exceed 7 kg (15 lb 7 oz).
13:52 imirkin: holy crap that's big
13:53 karolherbst: orbea: "science" is just a way of doing things anyway. and whatever you come up with while doing "science" ist merely a try to explain how things are by never really saying how things are for real ;)
13:54 orbea: :)
13:54 imirkin: karolherbst: sounds like something for the devil's dictionary
17:22 mooch: hey, does anybody have any idea what the NV21 GPU referenced in this commit is? https://github.com/skeggsb/nouveau/commit/577d928b9d8ce48cdc52812b9b9bd408c5d963e3#diff-1360a25122ce3ff9d96636b148094d5b
17:22 mooch: oh wait
17:22 mooch: nvm
17:23 mooch: i'm an idiot, sorry
17:23 imirkin_: like NV12 but backwards.
17:23 imirkin_: ;)