IRC log of #cubox of Thu 26 Sep 2013. All times are in CEST < Back to index

23:59 jnettlet http://fpaste.org/42297/13801463/
23:59 jnettlet that is against v4. But they are relatively close.
00:02 jnettlet rabeeh couldn't sleep
00:06 jnettlet but you are right there are things that should be signals that are uninterruptible like Creating a Queue.
00:07 jnettlet A command stall should definitely be interruptible.
00:08 _rmk_ yes, but only if there's a way that userspace can restart it
00:14 jnettlet _rmk_, userspace can just call gckCOMMAND_Execute again
00:16 _rmk_ isn't that call buried in the userspace libs?
00:20 jnettlet mmmm kind of
00:20 jnettlet okay yes it is
00:31 _rmk_ btw... Linus applied my patch to the tda998x driver
00:32 jnettlet Aren't you winning all the battles today?
00:32 _rmk_ technically, that happened yesterday :)
00:32 _rmk_ http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/gpu/drm/i2c/tda998x_drv.c?id=db6aaf4d55f95dcb6b162c3a59b56eb1e85ccdfe
00:36 jnettlet calling gcoHAL_Commit again will resubmit the current command buffer to hardware again.
00:37 _rmk_ hmm, that sounds like a problem though... lets say the first gcoHAL_Commit submitted this command buffer, and we got to wait.
00:37 _rmk_ if we're waiting, the command buffer has already been given to the GPU.
00:37 _rmk_ now, if we get a signal, we drop out of the wait returning interrupted status.
00:38 _rmk_ so if userspace re-calls gcoHAL_Commit on the same command buffer which the GPU is already using...
00:38 _rmk_ the kernel driver will at least modify the LINK command at the very end
00:39 _rmk_ sounds like a recipe for the gpu to end up getting confused
00:47 jnettlet _rmk_, you are right. in gckCOMMAND_Start we want to be able to catch interrupted commands and only re-execute them.
01:01 jnettle 01:01 * jnettlet calling it a night. Lots of fun as always.
01:01 _rmk_ night :)
01:01 _rmk_ sorry if I've given you a new problem to solve
01:07 jnettlet most these problems sort themselves out in my subliminal while I sleep. I will probably be up in a couple of hours with a solution :-)
01:07 jnettlet night
01:51 MikeSeth yarr, ordering a cubox-i tomorrow
01:51 _rmk 01:51 * _rmk_ thought talk-like-a-pirate day was over :p
02:21 dbsx Debian jessie, be warned that udev version 204 seems to stop my cubox from booting. Will post back when I figure out how to recover
10:57 ralix morning
11:15 jnettlet ralix, morning
11:16 ralix morning jnettlet :)
11:17 jnettlet well almost afternoon actually
11:17 jnettlet switched from coffee to tea.
11:21 ralix Here it is 11:20 in the morning, I drink a cup of coffee...
11:22 jnettlet 11:20 here also. My day starts at 5:30 so I have already had enough coffee :-)
11:23 ralix my day 8:00... Where do you work? I was in Germany (Potsdam)
11:24 jnettlet Denmark (Aarhus)
11:24 jnettlet U.S. expatriate
11:25 ralix Ui nice... Since it is certainly just as cold as ours, but just under 10 days then I got it warm again.
11:26 jnettlet we are hovering around 10c right now. Getting almost to 0 at night
11:28 ralix its very cold!
11:29 jnettlet I grew up in Upstate NY, that is nothing :-)
11:33 ralix I was 3 days in New York in June: rain 2 days one really sunny :) Next week Monday we go to jakarta there are like 30 + � C. It
11:33 jnettlet Jakarta sounds nice.
11:34 _rmk_ did your dreams reveal any magic solutions? :)
11:35 ralix Especially beautiful the city is not, but it's always warm ... Indonesia, I can only recommend as are so many great places ...
11:35 _rmk_ we've 16?C here at the moment, forecasted to 19?C
11:36 jnettlet _rmk_, a few things. Not all related to the problem.
11:38 jnettlet 1) All the work wumpus has done on etnaviv should get drm IOCTL's and become a basis for an replacement galcore driver. He has really done all the hard work and just needs GEM for memory management and then to pull in the Hardware commands.
11:39 jnettlet 2) Then drm_armada, and drm_etnaviv can use dmabuf to share buffers just the way they are doing it for the Intel/Nvidia architecture.
11:40 jnettlet 3) more relevant to the issue at hand. We either need a better in kernel command submission state tracker, or we need to force all Waits to be NonInterruptible
11:43 wumpus jnettlet: +1
11:45 wumpus what really needs to be done is to add buffer management support to the etnaviv user space, and the kernel driver
11:46 wumpus so that the extensions that pass buffers between processes can work
11:46 wumpus and so that it can render to KMS instead of fbdev
11:47 wumpus btw my cubox-i should be coming this morning
11:47 jnettlet excellent.
11:47 _rmk_ that's where drm prime comes in
11:47 jnettlet right
11:48 _rmk 11:48 * _rmk_ wonders who will get the first recent mx6 kernel running on the cubox-i
11:48 _rmk_ are we yet at the point where writing a DT description will work
11:49 jnettlet for the cubox-i?
11:49 _rmk_ yea
11:50 jnettlet I thought I already saw one somewhere when I was poking around the web last week.
11:53 jnettlet there are the basic imx6q bits. Should be trivial to add Cubox-i support
11:57 jnettlet _rmk_, as far as the answer. Command->running needs to become Command->state and should be able to be running, stopped, interrupted. Then in gckCOMMAND_Start we can abort if running, skip the Link command if interrupted.
11:57 _rmk_ jnettlet: an alternative would be to dump this and switch to etnaviv :)
11:58 jnettlet _rmk_, well that seems like a better alternative.
12:00 _rmk_ maybe I should pull etnaviv into my kernel and X driver, and start giving it a bashing :)
12:00 jnettlet right now etnaviv just talks to galcore.
12:01 _rmk_ its just a replacement userspace?
12:01 jnettlet and mesa driver
12:03 wumpus yes, its a replacement userspace
12:03 wumpus it can work with various kernel interfaces
12:04 wumpus which are all Vivante GPL drivers at the moment, but at some point it'd be nice to have a better kernel driver too =)
12:04 rabeeh all: fixed a bug in LVDS driver registration -
12:04 rabeeh http://download.solid-run.com/pub/solidrun/c1/kernel/initial/
12:04 rabeeh third patch
12:04 rabeeh otherwise HDMI won't work
12:07 _rmk_ ok, so effort required to sort out the kernel side.
12:08 _rmk_ jnettlet: btw, one thing I really hate about the vivante kernel side is the way they insist on using their OS abstractions in OS specific code
12:08 jnettlet I hate their OS abstraction period
12:09 _rmk_ they'll use get_free_pages() for instance, but won't use NULL in the same file
12:09 _rmk_ they have to use gcvNULL and pass that into kernel functions and check return values
12:10 _rmk_ I suspect their programmers are only allowed to write code using their stupid abstractions
12:12 _rmk_ rabeeh: which kernel are these against?
12:12 rabeeh 3.0.35 + BSP 4.1.0
12:13 rabeeh http://imx.solid-run.com/wiki/index.php?title=Building_Carrier-One_U-boot_and_Kernel
12:16 _rmk_ next obvious question is... has anyone yet put the cubox-i into a RPi case yet
12:16 jnettle 12:16 * jnettlet doesn't have any RPi's or cases.
12:16 _rmk_ or even lego :)
12:16 _rmk_ me neither
12:17 jnettle 12:17 * jnettlet living in Denmark should probably go the Lego route
12:17 rabeeh almost fits
12:17 _rmk_ I asked someone with some RPis, and he thinks the only problem would be the audio jack
12:17 _rmk_ analogue audio jack
12:17 rabeeh in what means?
12:18 jnettlet probably nothing that a dremel couldn't fix
12:18 _rmk_ he thinks it won't line up with any holes
12:18 _rmk_ jnettlet: my thoughts exactly :)
12:18 rabeeh it's the same size and height
12:18 jnettlet these are the days I wish I had a 3d printer
12:18 rabeeh it looks different since it's 4 poles instead of 3 (for the microphone-in when using the codec)
12:19 rabeeh the only problem is the RJ45 connector we use now since it's slightly taller (about 1mm) than the pi
12:20 jnettlet this one looks pretty close. http://www.amazon.co.uk/Stealth-Black-Case-For-Raspberry/dp/B0099PR98I/ref=sr_1_3?ie=UTF8&qid=1380190747&sr=8-3&keywords=raspberry+pi+case
12:20 _rmk_ rabeeh: great. I may put mine in a RPi case then
12:20 rabeeh :)
12:21 rabeeh that's the whole intent; to reuse as much as possible accessories; otherwise we would have to build things from scratch
12:21 rabeeh i think the pi is becoming like an ATX standard :)
12:21 jnettlet I agree that is a worthy investment. although need to figure out what to do about IR
12:21 rabeeh for clear cases it should work
12:21 _rmk_ jnettlet: another job for the dremel? :)
12:22 jnettle 12:22 * jnettlet is wondering if one of the transparent cases wouldn't be a better idea.
12:23 _rmk_ that would be the easiest solution
12:23 _rmk_ you'd also be able to see the LEDs too
12:23 jnettlet oh my. http://www.amazon.co.uk/RASPBERRY-MICRO-COMPUTER-ACRYLIC-PRIMARY-ACCESSIBLE/dp/B00AQU4QRM/ref=sr_1_7?ie=UTF8&qid=1380190909&sr=8-7&keywords=raspberry+pi+case
12:23 jnettlet although that would needs some dremelling for the SOC
12:24 jnettlet clear ones are the cheapest. Curse you _rmk_ I don't need these distractions :-)
12:24 _rmk_ lol
12:27 rabeeh haha
12:32 wumpus _rmk_: we're working on cleaning up and stripping down the (v4) kernel driver for gcwzero, but it should work for imx6 too, I guess with minor changes
12:33 wumpus we got at least the user space interface headers down to one header, and removed thousands of lines of fluff
12:34 _rmk_ I'd rather dump the galcore kernel API and start afresh.
12:34 wumpus oh sure, but this is a way of learning how it works
12:34 wumpus by not losing continuity we keep a working userspace+kernel at all time
12:35 wumpus a stripped down kernel driver is much easier to read too
12:35 wumpus even if you start afresh afterwards
12:35 wumpus btw, robclark has/had plans in that direction too
12:36 rabeeh robclark?
12:37 jnettlet TI guy
12:37 wumpus the freedreno developer
12:37 jnettlet or was
12:37 jnettlet freedreno uses vivante?
12:37 wumpus he's working at redhat at open source gpu drivers, he expressed some interest in imx6/vivante at some time, maybe as next project
12:37 wumpus jnettlet: nope, they're completely different
12:38 jnettlet wumpus, ah okay
12:38 jnettlet I thought The redhat version had an "e" at the end...most likely my mistake
12:39 jnettlet Has anyone seen or used any Vivante hardware that uses the VG engine?
12:41 wumpus jnettlet: yes, imx6 quad has a VG engine
12:41 wumpus GC320 or so
12:41 wumpus no, GC355
12:42 jnettlet wumpus, it is the same Rob Clark. He went from TI -> Linaro -> RedHat
12:42 _rmk_ so he didn't spend much time with Linaro then?
12:42 wumpus right, never knew that
12:43 jnettlet He was just there for a project. Might have been the ramp up they did for the Chromebook
12:43 wumpus jnettlet: from the (public) presentation of vivante on the subject the VG engine has a slightly higher fillrate than the 3D engine for straightforward fills, and somewhat lower power usage
12:44 jnettlet If that is all you are doing.
12:45 wumpus and it has tesselation support and some more blending operations than the 3D core IIRC, but I've never studied it in detail
12:45 wumpus the register interface is completely different, so an open source driver for that will be lots of work probably
12:47 jnettlet I don't think it is that interesting right now. 2D and 3D are way more useful to the OSS community.
12:48 wumpus yes, I judged the same way
12:53 wumpus in any case, mesa should be able to do openvg with the 3d engine (never tested that yet though)
12:53 jnettlet that is actually an option in the kernel as well.
13:23 jnettlet rabeeh, does tftboot from uboot work?
13:23 rabeeh nop
13:23 rabeeh ethernet is still not supported in u-boot
13:23 rabeeh work in progress thing
13:45 jnettlet _rmk_, wumpus, so what are our next steps. It seems like we are on the cusp of the "right" next move.
13:46 _rmk_ jnettlet: I suspect I might grab etnaviv and start work on the kernel DRM side of that
13:47 _rmk_ having crawled all over the kernel vivante driver, I've got a fairly good understanding of it
13:47 _rmk_ and all its bugs :)
13:48 dbsx An old (v2) cubox question: I can no longer boot a debian system as they seem to have screwed udev. Any tips for debugging udev at boot?
13:48 _rmk_ and modelling someing off the vivante event code is probably the wrong solution because its the biggest can of races going
13:48 _rmk_ s/someing/something/
13:49 _rmk_ _IsEmpty, _GetEvent, gckEVENT_Submit and gckEVENT_Notify are all racy
13:49 wumpus jnettlet: well I still need to implement context support for v4, you know the STATE_DELTA crap... either that or we think of something compeltely new to share the GPU between processes
13:49 _rmk_ dbsx: I looked at my ubuntu, and it seemed to be an older version of udev
13:50 wumpus I think the state_delta stuff is racy as hell too
13:50 _rmk_ dbsx: udev is particularly nasty to debug because you need it to setup the devices so you have a console
13:51 wumpus haven't fully figured out how it's supposed to work and keep the context up to date, it stashes pointers and pulls some buffers from user space later
13:51 dbsx _rmk_: So is the best thing to try and downgrade my debian version 175, I know to be ok
13:51 jnettlet _rmk_, I think most the event code can be fixed by implementing a proper fence
13:51 _rmk_ dbsx: my best suggestion would be to enable devtmpfs and have it auto-mount with the rootfs, then you might be able to boot again
13:52 _rmk_ jnettlet: not really, because some of the events are used to determine when the previous command buffer has been completed, and so can be re-used... which is why things explode if you try too many operations
13:52 wumpus in v2 it was easy, the context was just a command buffer that set up the state to what the application is expected, and was executed when context switching before executing the other application's command buffer
13:52 wumpus _rmk_: yes, I've had a few explosions too :-)
13:53 wumpus it runs out of signals and things start going bad
13:53 _rmk_ and if a previous command buffer gets re-used before the GPU has finished with it, expect random memory corruption, even fs corruption.
13:53 jnettlet yep
13:54 _rmk_ wumpus: you mean the "event X is not pending" stuff?
13:54 wumpus I never reuse command buffers that the GPU is not finished with
13:54 _rmk_ galcore internally does - it allocates two command buffers and toggles between them
13:54 wumpus the idea is to keep a signal per command buffer, queue the signal at the end, and only reuse the command buffer when the signal is raised
13:55 wumpus so when the userspace queues too many commands it'll just wait at a certain point for the gpu to finish with the next command buffer
13:56 wumpus IIRC the blob does a similar thing
13:56 _rmk_ if you ever see the kernel galcore complain about a lost event or an event not pending, that's because the kernel driver raced
13:56 wumpus yes, I've had those races, especially on cubox
13:56 _rmk_ and its caused by three races
13:56 wumpus even when using it only from one process :D
13:56 _rmk_ one in _GetEvent, where it finds an event slot under a lock but has no way to mark it as having been allocated
13:57 _rmk_ one in gckEVENT_Submit, where you can end up with two events being allocated and then inserted in the reverse order to allocation
13:57 wumpus ugh
13:57 _rmk_ and one in gckEVENT_Notify, where the processing of pending events can screw it up (I need to write that one up properly in the commit)
13:58 wumpus I guess some more correct and linuxy synchronization should be used, not some leaky abstractions
13:58 _rmk_ the final one - _IsEmpty - can work both ways. This function can report that the event queues are empty when they aren't, and they aren't empty when they are.
13:59 _rmk_ one of the issues with gckEVENT_Submit() is its recursive though!
13:59 _rmk_ in trying to add the event command into the command queue, it can trigger the allocation of a new queue, and guess what that does...
14:00 wumpus yes, I've seen that, makes the traces very hard to erad
14:00 _rmk_ find the nearest wall, apply head :p
14:00 _rmk_ right, lunch time
14:01 wumpus I have no idea what kind of synchronization mechanism nouveau/radeon uses, but maybe it's something to learn from
14:01 jnettlet I think ring buffers and fences to sync to.
14:02 jnettlet If you try to allocate a command and there isn't enough space then you just flush the buffer to the next fence point.
14:02 jnettlet at least last time I worked on any of that.
14:03 wumpus ok, makes sense
14:04 wumpus I currently implement the gallium fences using galcore signals, they look pretty similar
14:08 wumpus though it's indeed unecessary that they're reusable, and have this reset/no-auto-reset flag
14:19 _rmk_ oh yes, that's the gckEVENT_Notify race - it scans the event queues/lists without holding any locks - it was coded with the assumption that the only thing you need to protect against is writes to queue->head and apparantly reads are fine.
14:22 _rmk_ the problem that leads to is that you can end up with queue->head non-NULL, queue->stamp being old, and then gckEVENT_Notify() identifies it as a missed event when in actual fact the event queue is in the middle of being setup
14:22 _rmk_ ... and NULLs out queue->head and runs all the queued events
14:23 _rmk_ since I've fixed all these, I'm seriously considering getting rid of my fencing in my Xorg driver... it's just not needed anymore
14:26 wumpus the way you make it sound it's really horribly broken :)
14:26 _rmk_ it _is_ horribly broken
14:27 _rmk_ these races basically make the event stuff completely unreliable
14:27 wumpus not only unreliable, dangerous
14:28 wumpus I guess that's why dv_ experiences kernel hangs all the time
14:28 _rmk_ its one of the reasons my ext4 fs on it now spits this out:
14:28 _rmk_ EXT4-fs (sda2): error count: 14
14:28 _rmk_ EXT4-fs (sda2): initial error at 1369503707: ext4_iget:4125: inode 415617: block 1365403246
14:28 _rmk_ EXT4-fs (sda2): last error at 1369503708: ext4_iget:4158: inode 417719
14:28 wumpus eek...
14:28 _rmk_ ext4 permanently remembers that its been messed up - fsck won't clear that out.
14:29 _rmk_ the only way around that is to re-mkfs the fs :p
14:30 wumpus so you fixed a lot of the problems, but you still want to start from scratch?
14:30 wumpus yes the only way to salvage would be to make a new fs and copy the files over, as far as those aren't randomly damanged beyond repair :p
14:32 _rmk_ definitely, because otherwise we'll probably end up bringing forward some subtle races. it's easier to get the design right if its thought through first, rather than modifying something that pre-exists
14:33 _rmk_ and the recursive mutexes need to die
14:33 wumpus that's true; and we want a completely different user space interface anyway
14:33 wumpus right
14:34 jnettlet _rmk_, if you want to start from scratch. You could dump me your patchset and I can rebase that onto v4. Then we could at least have something more stable to use until a new kernel driver is done.
14:34 wumpus yes, it would still be interesting to rebase the work to v4 for the meantime
14:34 wumpus depending on how much work it is to design and make a new kernel driver
14:35 jnettlet wumpus, not necessarily. your abstraction is pretty decent. You are still building the needed commands they will just be submitted through different IOCTL's
14:35 jnettlet and memory allocation can generally be kept the same just adapted to make _GEM requests.
14:35 wumpus jnettlet: yep, and after that we can rename libetnaviv to libdrm_etna, and it almost fits in :)
14:36 jnettlet exactly
14:40 _rmk_ there's a reason why some people should have their computer removed... "ubus still has no acl lists but for security reasons it could be at least be set to 0700, so no user except root can start it"
14:41 _rmk_ (quote from another channel)
14:42 _rmk_ lets see, if you have perl on the platform, or a myriad of other programming languages, you could still write a script to access its unix domain socket which has world privileges...
14:43 jnettlet haha.
14:43 wumpus heh
14:44 jnettlet error is between the chair and the keyboard
15:21 _rmk_ shesselba: I don't think JF's problem is that the external clock isn't stable... no interrupts probably means either no external clock running or the audio block isn't being enabled
15:22 _rmk_ shesselba: this is where having a working devmem2 and poking at the control register would be useful
16:15 jnettle 16:15 * jnettlet pulled the trigger and went with a transparent green case.
16:16 _rmk_ green case with red LEDs... hmm.
16:24 jnettlet http://www.amazon.co.uk/gp/product/B00AO5NR6K/ref=s9_simh_gw_p147_d0_i2?pf_rd_m=A3P5ROKL5A1OLE&pf_rd_s=center-2&pf_rd_r=1AXW5DKT6FY1QK8AWNNH&pf_rd_t=101&pf_rd_p=418450947&pf_rd_i=468294
16:24 jnettlet I think it is transparent enough to pass IR
16:25 jnettlet will probably need to dremel the USB flange a bit.
16:28 jnettlet _rmk_, you should look here. https://www.modmypi.com/raspberry-pi-case-clear-green
16:28 jnettlet mix and match cases
16:33 _rmk_ jnettlet: I think I'd go for the blue... http://www.amazon.co.uk/Transparent-Enclosure-Raspberry-Model-Cable/dp/B00D1D4RAM/ref=sr_1_6?s=computers&ie=UTF8&qid=1380205949&sr=1-6&keywords=raspberry+pi+case+blue or maybe http://www.amazon.co.uk/PCSL-Adafruit-Midnight-Blue-Manufactured/dp/B009D4YW5I/ref=sr_1_3?s=computers&ie=UTF8&qid=1380206020&sr=1-3&keywords=raspberry+pi+case+blue
16:34 jnettlet I saw the adafruit one. It is very tempting.
16:35 _rmk_ I saw some of the reviews complaining about lack of instructions and another review complaining about those complaining about the lack of instructions :)
16:37 jnettle 16:37 * jnettlet has realized that without accountability and reward online review systems are useless.
16:38 jnettlet Amazon would be smart to offer credit to people that post reviews and get X number of "This was helpful" votes.
16:39 jnettle 16:39 * jnettlet likes this response. "Some claim that it's fragile. I wouldn't recommend using a hammer to assemble it"
16:41 jnettlet hmmm my custom uboot is ubooting. must have broken something.
16:41 _rmk_ yes :)
17:03 jnettlet rabeeh, should probably get him some of these. https://www.modmypi.com/multi-pi-stackable-raspberry-pi-case
17:03 jnettlet stack his test boards all the way to the ceiling.
17:04 _rmk_ hmm, looks like gckHARDWARE_QueryIdle() is buggy
17:04 _rmk_ gcmkONERROR(gckOS_ReadRegister(Hardware->os, 0x00004, &idle));
17:04 _rmk_ if( (idle & 0x7FFFFFFE) != 0x7FFFFFFE ) {
17:04 _rmk_ /* Something is busy. */
17:05 _rmk_ *IsIdle = gcvFALSE;
17:05 _rmk_ what does mine report for idle...
17:05 _rmk_ root@cubox:~# ./devmem2 0xf1840004
17:05 _rmk_ Value at address 0xF1840004 (0xb6f7c004): 0xFE
17:23 jnettlet _rmk_, you are correct. if you do bitwise operations on idle it never evaluates properly. I ended up just testing (idle == 0x7FFFFFE) to see if the hardwaare was idle.
17:36 gimli Hardware : Freescale i.MX 6Quad/DualLite/Solo Sabre-SD Board
17:36 gimli nice
17:37 wumpus _rmk_: it differs per chip, some report non-exstent modules as 0 (busy) in the idle register, others report non-existing modules as 1 (idle)
17:37 wumpus in any case, yes it seems to be a bug
17:38 _rmk_ wumpus: something to be fixed then :)
17:38 _rmk_ do we have any ideas about which bits are present on which devices?
17:39 wumpus no.. looks like a hardware bug even
17:39 wumpus it should report non-existent ones as 1
17:39 wumpus otherwise the driver needs to have knowledge about this :/
17:40 wumpus this is on cubox?
17:41 wumpus I don't think this is right, are you sure nothing goes wrong while reading the register?
17:42 wumpus let me check...
17:42 _rmk_ yep on the cubox
17:43 _rmk_ I've never seen it have anything above bit 7 set
17:44 wumpus you're right
17:44 _rmk_ bah. the problem of modern TVs with their shiney screens is that a camera sees more reflection than image on it.
17:44 jnettlet no flash
17:44 _rmk_ even with no flash
17:44 cbxbiker61 interesting, i see a new patch on the linux mailing list for i.MX6Q/DL for SD3.0, so maybe the cubox-i will properly support UHS-I.
17:44 wumpus at least on gc860 this is fixed
17:44 _rmk_ I'd need to be in a completely dark room to photograph it
17:44 jnettlet cbxbiker61, it is supposed to.
17:45 cbxbiker61 that's cool
17:45 wumpus but on cubox gc600 it only sets the lower 8 bits (and probably the upper bit, for axi low power mode)
17:46 wumpus it doesn't have the modules above that either (VG, IM, FP, TS), but now the driver needs knowledge of that which is sucky :/
17:46 wumpus a workaround could be to query the idle register at initialization
17:47 wumpus as it's a reasonable assumption that's the idle state
17:47 wumpus either that or you need a model-specific workaround
17:48 jnettlet or we could keep track of what hardware supported what features and only queried those bits.
17:48 wumpus but where's the cutoff point, when did they fix it....
17:49 wumpus I know it's fixed on gc860, and likely gc880, gc2000... I could check on gc800 when I dig up my old tablet
17:50 wumpus jnettlet: well all the newer hardware returns 1 for everything that's not present, so keeping track on bit granularity seems overkill
17:55 _rmk_ we just need to track what's prior to the hardware fix
17:59 _rmk_ and it should just be as simple as having a mask which identifies which bits must be ones for idle
18:00 _rmk_ the driver already knows which GC* chip it has
18:00 wumpus yes -- my guess is that the problem only exists for gc600 and earlier
18:00 wumpus then again, 'earlier' is hard to determine sometimes, the names are not entirely chronological
18:01 jnettlet then just change the idle mask if the chip is newer than GC600
18:01 wumpus there is also the revision...
18:03 jnettlet maybe it is easiest to get the mask on init
18:03 wumpus remember that the 2d cores always have lower numbers , so do the vg cores (gc35x)
18:03 _rmk_ well, we know that the GC600 doesn't and the GC800 does, so as we find others...
18:03 wumpus so you can't just compare the model number
18:03 wumpus for now, let's say only gc600 has the problem
18:03 wumpus that's easy :)
18:03 _rmk_ quite :)
18:03 _rmk_ easy and simple == good :)
18:04 wumpus yep, when we find another chip with the problem ,we add another exception
18:04 jnettle 18:04 * jnettlet thought he had a board that only had a 2d core in it....maybe it was that chumby box
18:05 wumpus ingenic jz4760 has only a 2d core, and Marvell 88SV331x
18:06 wumpus neither of both I have though :)
18:07 jnettle 18:07 * jnettlet shrugs. Not the chumby that is just a Marvell chip. No Vivante on it
18:26 _rmk_ hmm
18:26 _rmk_ DT_MACHINE_START(IMX6SL, "Freescale i.MX6 SoloLite (Device Tree)")
18:51 MikeSeth yay, ordered a cubox-i just now
19:04 jnettlet congrats
19:44 _rmk_ well, trying to boot 3.12-rc2 with a minimal DT doesn't seem to work
19:47 jnettlet How far does it get?
19:47 _rmk_ dies immediately after Starting kernel ...
19:50 _rmk_ rabeeh: the UART port we're using for serial console is at 0x02020000 ?
20:05 _rmk_ bingo
20:05 _rmk_ Linux version 3.12.0-rc1+ ([email protected]) (gcc version 4.5.4 (GCC) ) #3 SMP Thu Sep 26 18:45:42 BST 2013
20:05 _rmk_ CPU identified as i.MX6DL, silicon rev 1.1
20:06 _rmk_ Calibrating delay loop... 1581.05 BogoMIPS (lpj=7905280)
20:06 _rmk_ VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
20:10 _rmk_ hmm
20:19 dv_ _rmk_: nice find (the data race)
20:20 dv_ btw. I got the OK from management to release & upstream my VPU chromium patch (-> html5 video using the VPU)
20:21 dv_ its still not perfect, since the chromium codebase copies frames around, but its much better than decoding in sw..
20:22 dv_ also, perhaps there is a way to use the vivante textures with chromium if GLES is used for drawing the 2d contents. its more complex though. i'm still trying to find out how exactly I add this to chromium.
20:25 _rmk_ looks like that boot was a fluke
20:28 _rmk_ got it
20:37 _rmk_ rabeeh should really fix the instructions
20:38 _rmk_ not /dev/sdX but /dev/mmcblkX
20:38 _rmk_ otherwise he may have people overwriting the SATA disks
20:51 dv_ _rmk_: the race condition you found is interesting for our project
20:51 dv_ but from what I've read, this is not done by a simple patch
20:52 ojn Wife says "package from Israel just arrived", which should mean my cubox-i is waiting for me at home.
20:56 _rmk_ dv_: "not done by a simple patch" ? you mean, not trivial to fix?
20:56 dv_ yes
20:56 dv_ more specifically, not doable without a rewrite
20:56 _rmk_ wait a moment...
20:57 dv_ we have seen numerous crashes with chromium 29 when using GLES for rendering 2d
20:57 dv_ kernel crashes
20:58 _rmk_ http://www.home.arm.linux.org.uk/~rmk/cubox/races/
20:58 _rmk_ have the fixes for those four races plus a couple of others.
20:58 _rmk_ may not apply cleanly tho
20:58 _rmk_ couple of other fixes from my series included too :)
20:58 dv_ oh. missed this line: so you fixed a lot of the problems, but you still want to start from scratch?
20:58 dv_ nice! thanks
20:59 _rmk_ I have 81 patches against galcore :(
20:59 _rmk_ I used to have 97 but I cleaned up a number and reshuffled them
20:59 dv_ its that buggy?
21:00 _rmk_ not all are fixes, some are cleanups
21:00 _rmk_ for example, I got rid of all the __QNXNTO__ stuff
21:14 jnettlet I will pull those patches into a v4 kernel driver and fix that last race we talked about last night.
21:15 jnettlet That should get us to stable testing for all the devices and give us something consistent to compare to moving forward with better drivers.
21:16 jnettle 21:16 * jnettlet is closer to getting ethernet working on uboot. Must have tftboot for kernel dev.
21:16 _rmk_ absolutely, that'll make this job of getting 3.12-rc1 much easier
21:16 _rmk_ I'm trying to work out what's required in DT for ethernet, particularly the pinmux settnigs
21:34 _rmk 21:34 * _rmk_ waits for git fetch to crunch on freescale's git server
21:54 jnettlet _rmk_, while you are waiting for git do you have a patch for your vmeta char driver? If not I will just keep the uio driver for dv_ to test against.
21:56 _rmk_ the easiest thing for me to do is going to be to diff between v3.11 and the tip of my tree for that, which'll give me one big diff for vmeta and bmm
21:58 _rmk_ http://www.home.arm.linux.org.uk/~rmk/cubox/bmm-vmeta.diff
21:58 _rmk_ there's probably a few bits in arch/arm which are also required
21:58 jnettlet I can roll with that. Then I will add bmm support to libphycontmem and we can have one library to support all the current memory allocation frameworks supported by vmeta.
21:59 _rmk_ basically, pass the bmm reserved memory as a memory resource in the platform device
22:00 _rmk_ vmeta device wants the phys base and irq of course, and a 32-bit DMA mask setup
22:00 _rmk_ vmeta still uses the old "ap510-vmeta" name
22:00 jnettlet okay
22:01 _rmk_ then you'll want my libvmeta.git for userspace
22:01 _rmk_ optionally the libbmm.git too
22:01 jnettlet yeah I will need to merge that with mine.
22:01 _rmk_ I may need to push updates out for those tho.
22:01 jnettlet and I will merge your libbbm with libphycontmem as another backend.
22:02 _rmk_ vmeta is up to date
22:02 _rmk_ its just libbmm which isn't
22:03 _rmk_ nope, libbmm is also up to date
22:03 jnettlet great.
22:03 _rmk_ I know something isn't
22:04 _rmk_ that's it, libdrm-armada
23:22 Tenkawa greetings all
23:22 Tenkawa so is there an eta for the cubox-i yet?