IRC log of #cubox of Tue 15 Oct 2013. All times are in CEST < Back to index

00:00 jnettlet _rmk_, I don't see anything particular about the d in solidrun. There is some scan flicker around the logo on my display. I thought that was a problem with the way I converted the logo.
00:00 _rmk_ yes, that's what I see in mine - ficker
00:00 jnettlet uboot seems very particular about its bitmap conversion
00:01 jnettlet you see that in X also?
00:01 _rmk_ with the kernel booted I see a very similar effect
00:01 jnettlet oh interesting
00:01 _rmk_ and other weirdness
00:01 jnettlet The text looked fine so I figured that was U-boot's decoding routine that was a problem.
00:03 jnettlet but that does make some sense since it is supposed to be a 60hz mode and the monitor is reporting 52
00:04 _rmk_ X gets it so my monitor reports 61Hz
00:04 _rmk_ but Rabeeh's kernel gets 60Hz
00:05 jnettlet interesting
00:06 _rmk_ yea, there's soo much here which falls under that heading :(
00:06 _rmk_ I've just found some differences in the HDMI phy settings
00:11 jnettlet yep just what I was thinking.
00:11 jnettlet didn't see where those were set though.
00:13 jnettlet nothing in u-boot 2009 that directly relates to hdmi
00:16 jnettlet _rmk_, are you using the fb or kms driver?
00:16 _rmk_ kms
00:17 jnettlet ultimately the phy is a board to board test that needs to pass for hdmi compliance.
00:18 dv_ interesting. pengutronix will soon mainline some patches to wrap IPU and VPU as v4l mem2mem devices
00:18 jnettlet here is a freescale patch that was done to hdmi to pass compliance for a reference board. https://www.osadl.org/monitoring/patches/r8s7/1679-ENGR00215340-HDMI-PHY-config-adjust-to-pass-electric.patch
00:19 dv_ I am temporarily halting my gstreamer-imx work and observing this, since it would replace these plugins
00:19 _rmk_ jnettlet: well, the hdmi does seem to be capable of working - I have rabeeh's kernel running with the same image dd'd into /dev/fb0 and its fine there
00:20 jnettlet _rmk_, okay then we just need to dupiclate the phy settings.
00:21 jnettlet I assume that rabeeh already ran the eye test through the scope and verified the signal being output under his kernel will pass HDMI certification.
00:21 _rmk_ I have six registers which are different
00:22 jnettle 00:22 * jnettlet is eager with anticipation
00:22 _rmk_ 0x801, 0x1008, 0x100c, 0x1019, 0x101a, and 0x101c
00:22 _rmk_ (offset from 0x120000)
00:23 _rmk_ first byte value is 3.12-rc, second is Rabeeh's
00:23 _rmk_ 0x0801 0x40 0x00
00:23 _rmk_ 0x1008 0xdc 0x6e
00:23 _rmk_ 0x100c 0x14 => 20 VSYNCINDELAY 0x05
00:23 _rmk_ 0x1019 0x40 => 64 AVICONF0 0x60
00:23 _rmk_ 0x101a 0x19 AVICONF1 0x2a
00:23 _rmk_ 0x101c 0x06 AVIVID 0x04
00:23 _rmk_ I'm thinking about also dumping out the ipu settings too
00:24 _rmk_ ... if I can work out this ipu thing
00:26 dv_ I used the IPU
00:26 dv_ it can indeed be confusing
00:27 dv_ avoid the ipu-lib . it does not work with the imx6.
00:27 dv_ other than that, whats unclear?
00:28 _rmk_ if I'm reading this right, it works by executing microcode to control the display of a framebuffer?
00:28 dv_ this is not what I saw
00:29 dv_ I used the IPU for blitting, colorspace conversion, deinterlacing, 90°-step rotation, and scaling in one step
00:29 dv_ well yes, there is some IPU microcode, which is probably for all the stuff I just mentioned
00:30 _rmk_ from what I see from the top level architecture diagram, it looks like...
00:30 _rmk_ image data is fetched by idmac
00:30 _rmk_ that data is eventually passed to the display controller
00:30 dv_ (I also used the IPU to display decoded video by blitting to the framebuffer)
00:30 _rmk_ the display controller then passes it to a display interface
00:30 _rmk_ which then passes it to the HDMI phy
00:31 jnettle 00:31 * jnettlet has had too much wine to look at this more tonight :-) I will read the backlog and take a look closer in the morning.
00:31 jnettlet ttyl
00:31 _rmk_ and the display controller runs on microcode
00:31 dv_ ok, the IPU might actually be a larger block, and I touched only a portion of it
00:31 dv_ jnettlet: ttyl
00:34 _rmk_ jnettlet: sleep well
00:34 dv_ right. I have been using some of these blocks (VDI, IRT, IDMAC, DP ...) through a higher level API
00:34 dv_ ( linux/ipu.h )
00:36 dv_ its this one: https://github.com/boundarydevices/linux-imx6/blob/boundary-L3.0.35_12.09.01_GA/include/linux/ipu.h
00:38 dv_ note how you can use the IPU here as a more or less generic memcpy across physical addresses ... :)
00:53 _rmk_ yea, I suspect the problem here is you need to have a Freescale IPU Degree(tm) to properly understand this
00:59 dv_ as said, pengutronix is wrapping it in a mem2mem device. I am curious as to how much they manage to wrap
00:59 _rmk_ well, they're still going to have to have either a fbdev or a drm interface to it for X to use
01:00 dv_ yes. or at least something dmabuf based
01:00 _rmk_ I don't think anyone will tolerate having another KMS like interface in the kernel
01:01 dv_ I guess KMS will be done with the display interface bits of the IPU?
01:01 _rmk_ yea, but I've no idea how at the moment
01:01 dv_ the 2d blitter bits however are very powerful and useful. I do not see a reason why these cant be mainlined.
01:02 _rmk_ it looks like its a case of choosing the right paths and writing the right microcode for the display resolution
01:03 dv_ if you want to experiment with the IPU, have a look at the imx-test package
01:03 dv_ some of these tests work with the imx6, some dont
01:03 dv_ (thats how I managed to figure out how to use it for video)
01:03 dv_ link: http://download.ossystems.com.br/bsp/freescale/source/imx-test-3.5.7-1.0.0.tar.gz
01:06 dv_ there is also https://github.com/rogeriorps/ipu-examples , but that does not contain much . just some basics.
01:22 _rmk_ hmm.
10:21 dv_ jnettlet: is it somehow possible to read out a "native" resolution from edid in uboot 2013?
10:21 dv_ I would like to try and write a config that picks the native resolution automatically, since currently, I have to explicitely specify it as a kernel parameter
10:27 wolfy dv_: I am curious, what distro do you use ?
10:27 dv_ wolfy: yocto
10:27 dv_ well actually this is more like a framework to build your own distro
11:18 _rmk_ whee, Sascha pointed to the problem almost immediately and got it right
11:19 _rmk_ wrong clock polarity set in the display interface part of the ipu
11:53 jnettlet ah nice.
11:54 jnettlet dv_, yep, but we will need to enable i2c for the hdmi port to read the edid info out.
12:06 _rmk_ jnettlet: do you set bit 17 in the display interface "general" register in u-boot?
12:06 jnettlet _rmk_, just looking at that now.
12:06 jnettlet :-)
12:08 jnettlet _rmk_, nope. I don't even see that general register defined. will look further.
12:08 _rmk_ its address is 0x2640000 for DI0
12:08 jnettlet found it
12:12 jnettlet nothing is directly fiddling with it. Trying to see if there is incidental twiddling
12:16 jnettlet if (sig.clk_pol)
12:16 jnettlet di_gen |= DI_GEN_POL_CLK;
12:16 jnettle 12:16 * jnettlet needs to set that sig.clk_pol
12:17 jnettlet ah my mode clock generation is wrong. This should fix it.
12:22 _rmk_ jnettlet: I need bit 17 cleared
12:23 _rmk_ the code in the kernel is different to that...
12:23 jnettlet _rmk_, well it shouldn't be set. Let me dump the registers and look.
12:23 _rmk_ if (!sig->clk_pol)
12:23 _rmk_ di_gen |= DI_GEN_POLARITY_DISP_CLK;
12:25 _rmk_ and its all confusing, because:
12:25 _rmk_ unsigned clk_pol:1; /* true = rising edge */
12:25 _rmk_ but setting DI_GEN_POLARITY_DISP_CLK is described in the docs as "active high"
12:26 _rmk 12:26 * _rmk_ wonders if the data is latched into a transparent latch (in which case level active makes sense) or a d-type latch (in which case edge sensitivity is correct)
12:26 jnettlet yep I am seeing the same here in the u-boot code
12:27 jnettlet u-boot is setting clk_pol if the FB_SYNC_CLK_LAT_FALL bit is not set
12:27 jnettlet So if you want it to be 0 then I need to set that.
12:31 _rmk_ I think we need to set that
12:32 _rmk_ I'm just sending Sascha another email with the differences between uboot and kernel in, and the different terminology between that and the manual
12:32 jnettlet _rmk_, looks good
12:34 _rmk_ the twinkling on the d has gone?
12:35 jnettlet yep all the twinkling has gone
12:35 _rmk_ :)
12:35 jnettlet we have slain the hdmi vampires
12:35 _rmk_ well, at least that one :)
12:36 _rmk_ and it didn't involve garlic
12:36 jnettlet still don't know why my console is not getting muxed properly.
12:37 jnettle 12:37 * jnettlet guess he should fix dv_'s boot problems while he is mucking around in u-boot
12:37 jnettlet dv_, would you like uenv.txt support added as well?
12:38 jnettlet _rmk_, reply 1 on this page also brings up the problem. http://boundarydevices.com/configuring-i-mx6-machines-different-screens-nitrogen6x-sabre-lite/
12:43 _rmk_ yea, they want the bit set
12:43 _rmk_ I wonder if different display bridges need different clock polarities... which would be quite silly
12:44 _rmk_ bit 17 controls the DI output clock polarity, which gets supplied to the three display bridge muxes from what I can see.
12:45 jnettlet that is how I understand it. My bet is that is to handle different lvds tfts
12:46 jnettlet or maybe an external encoder?
12:46 _rmk_ probably - which means it should be in the lvds display bridges :)
12:48 jnettlet it looks like a lot of this was written by one or two companies and mostly done without any collaboration
12:49 _rmk_ yea, it wouldn't surprise me if the DIs were supposed to be the proper chip-to-external-world outputs, and the display bridges were something which then got integrated onto the SoC later
12:51 _rmk_ one thing I notice with the imx6 compared to the cubox is how much faster CPU memory bandwidth seems to be
12:52 _rmk_ its quite noticable dragging a window around in X on the imx6 with no acceleration that the CPU seems to be able to cope much better
12:53 jnettlet well 2 years of SOC advancement and DDR3 vs DDR2
12:53 _rmk_ yep
12:57 _rmk_ well, I guess I should catch up with email... 200+ messages unread since last night
12:58 jnettlet good luck with that.
13:37 dv_ jnettlet: yes
14:05 jnettlet okay console is outputting to hdmi
16:17 jnettlet anyone want to give input as to how uboot keyboard/monitor support should work?
16:18 jnettlet maybe catch the escape key and break out of the boot sequence? Very old school bios like.
16:21 Bluerise backspace?
16:21 _rmk_ Well, you could make it say:
16:21 _rmk_ BBC Computer 32K
16:21 _rmk_
16:21 _rmk_ Acorn DFS
16:21 _rmk_
16:21 _rmk_ BASIC
16:21 _rmk_
16:21 _rmk_ >_
16:22 jnettlet hmmm usb does not have hotplug support
16:23 _rmk_ seriously though, I'd suggest a two-key press to abort boot
16:23 _rmk_ shift-something
16:23 _rmk_ less chance of accidentally stopping it
16:24 jnettlet right now the key presses are really slow to register. I need to figure out if it is my wireless keyboard low on battery or a problem with the usb keyboard driver. I have already found one.
16:27 MikeSet 16:27 * MikeSeth reads Yaghmour's Building Embedded Linux Systems
16:27 MikeSeth I'm freaking jealous of you folks sitting here screwing around with PCI compliance and nagios all day
16:27 _rmk_ heh. that's a book I reviewed for O'Reilly. :)
16:28 jnettlet two thumbs up?
16:28 MikeSeth the phy limit is 4 ;P
16:29 MikeSeth ...I am horrible.
16:46 ssvb Why "Tauros2: Disabling L2 prefetch"? Is prefetch really not supported by the hardware? Or is there some sort of errata?
16:47 ssvb memcpy speed is just pathetic and it would be nice to find some way to improve it
16:52 jnettlet ssvb, it is errata
16:53 ssvb oh, what a bummer
16:54 ssvb being beaten even by Raspberry Pi on certain workloads is not very nice
16:57 ssvb has anyone seen "88SV581x-V7 PJ4 ARM v7 SheevaTM CPU Core Datasheet (Doc No. MV-S105190-01)"?
16:58 jnettlet probably.
17:04 _rmk_ iirc, the cpu core datasheets tend not to be public
17:06 jnettlet ssvb, you can try enabling the L2 prefetch and linefill burst 8 if you like. I am not guaranteeing any sort of stability.
17:07 jnettlet usb polling with this keyboard is sucky
17:09 Turl ssvb: small world heh :)
19:41 jnettlet dv_, okay basic uEnv.txt support and loading from both ext and fat is pushed. If you could test it at some point I would appreciate it.
19:43 shesselba jnettlet: can you point me to recent carrier-1 repos? want to have it running at least
19:50 jnettlet shesselba, this is my u-boot repo. https://github.com/linux4kix/u-boot
19:51 jnettlet is that what you are looking for?
19:51 shesselba yes, I was aware that you are working on u-boot
19:51 shesselba for kernel, I have _rmk_'s rfc
19:53 jnettlet yep that is about where we are at right now.
19:53 shesselba great, thanks!
19:53 jnettlet I have a kernel repo I am still pulling together.
20:33 dv_ jnettlet: ok, when I am home again
20:46 otavio jnettlet: How is your u-boot fork?
20:46 otavio I'd like to get cubox support into Yocto soon
20:46 otavio and I'd like to not duplicate your work
20:46 otavio ;-)
20:50 dv_ otavio: my meta-fsl-arm-extra fork has carrier one support already
20:50 dv_ I will add jnettlet's latest uboot changes as soon as I am home
20:51 dv_ u-boot is a separate recipe (u-boot-c1.bb) , because jnettlet's fork is based on a different version than uboot-imx
20:51 dv_ the kernel however is just a linux-imx 3.0.35 with rabeeh's patches
20:52 dv_ what I didnt do yet is to modify the sdcard image generation. the part where the uImage is copied right after the uboot binary needs to be optional (turned on by default ; for the carrier one, we then explicitely turn it off)
20:56 dv_ _rmk_: btw, about your display interface questions: is this useful? https://github.com/Freescale/linux-module-virtfb
21:09 jnettlet otavio, my u-boot repo has near complete carrier-1 support. All the basics are there and some more advanced things are coming along like HDMI console and usb support.
21:13 otavio jnettlet: can you base this on top of our patches-2013.10 branch?
21:16 jnettlet otavio, it should merge. I am just following mainline right now.
21:17 otavio jnettlet: in this case, this is trivial
21:17 otavio :)
21:20 dv_ jnettlet: oh that would be very useful
21:20 dv_ then its just a matter of inserting a few lines into the uboot .bbappend file in meta-fsl-arm-extra
21:20 dv_ anyway, going home now. ttyl
21:46 shesselba jnettlet: does rabeeh's u-boot instructions still apply for your u-boot? I can boot his, but not yours
22:01 otavio shesselba: no; drop 'skip=2'
22:01 otavio shesselba: from dd command
22:04 shesselba otavio: but still u-boot.bin or u-boot.imx?
22:04 ssvb jnettlet: enabling l2 prefetch speeds up memcpy quite significantly, but looks like it is some sort of automatic prefetch which only works in the forward direction
22:05 ssvb jnettlet: software prefetch using PLD instructions seems to have no effect
22:06 ssvb jnettlet: which again brings the question about the PJ4 core datasheet and the errata list
22:07 shesselba otavio: it's u-boot.imx, thanks for the hint
22:18 otavio :)