Announcement

Collapse
No announcement yet.

Announcement

Collapse
No announcement yet.

4K@60Hz(FPS)

Collapse
This is a sticky topic.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #61
    10 bit RockChip bull shit.

    Originally posted by Rayzin View Post
    I contacted Rockchip and asked if 8bit was supported 4k@60 and the answer was no, only 10bit.
    I don't want to agitate stinky water but I think that RockChip explanation is a bull crap. I didn't found any proof that RK3288 HDMI interface output 10bit per color when set to 4K resolution at 60 fps. On the contrary.

    From file containing captured state of HDMI interface registers values supplied by kaefert we know that:
    Code:
    Checking Identification Registers base address 0x0000Reg_off: 0x4 = CONFIG0_ID: 0xbf (191) => Available: HDMI1.4 = 1; CSC = 1; HDCP = 1;
    Reg_off: 0x5 = CONFIG1_ID: 0x22 (34) => HDMI2.0 = 1
    Reg_off: 0x6 = CONFIG2_ID: 0xc2 (194) => HDMI PHY TYPE: MHL
    
    Checking Video Sampler Registers base address 0x0200
    Reg_off: 0x0 = TX_INVID0: 0x01 (1) => Internal data enabled signal = 0; Video mapping = 1 => VIDEO_RGB444_8BIT
    
    Checking Video Packetizer Registers base address 0x0800
    Reg_off: 0x1 = VP_PR_CD: 0x00 (0) => Color Depth = 0 => COLOR_DEPTH_24BIT_DEFAULT; Pixel Repet factor = 0 times
    Reg_off: 0x4 = VP_CONF: 0x46 (70) => Bypass enabled = 1; Pixel pack enabled = 0; Pixel repet enabled = 0; YCC422 enabled = 0; Bypass selected = 1; OUTPUT selected = OUT_FROM_8BIT_BYPASS
    
    Checking Frame Composer Registers base address 0x1000
    Reg_off: 0x19 = FC_AVICONF0: 0x42 (66) => FC RGC YCC_2 (HDMI 2.0) = 0; FC active format = 1; FC RGC YCC mode = 2 => AVI_COLOR_MODE_YCBCR444
    Reg_off: 0x1a = FC_AVICONF1: 0xa8 (168) => FC COLORIMETRY = 2 => AVI_COLORIMETRY_ITU709; FC picture aspec ratio = 2 => AVI_CODED_FRAME_ASPECT_16_9; FC active asperc ratio = 8 => ACTIVE_ASPECT_RATE_SAME_AS_CODED_FRAME
    Reg_off: 0x1b = FC_AVICONF2: 0x10 (16) => FC extended Colorimetry = 1; FC quantization range = AVI_QUANTIZATION_RANGE_DEFAULT; FC NUN pic scale = 0
    
    Checking Color Space Converter Registers base address 0x4100
    Reg_off: 0x0 = CSC_CFG: 0x00 (0) => Color Space Converter interpolation mode = 0;  Color Space Converter decimation mode = 0;
    
    Checking Identification Registers base address 0x0000
    Reg_off: 0x4 = CONFIG0_ID: 0xbf (191) => Available: HDMI1.4 = 1; CSC = 1; HDCP = 1;
    Reg_off: 0x5 = CONFIG1_ID: 0x22 (34) => HDMI2.0 = 1
    Reg_off: 0x6 = CONFIG2_ID: 0xc2 (194) => HDMI PHY TYPE: MHL
    
    Checking Video Sampler Registers base address 0x0200
    Reg_off: 0x0 = TX_INVID0: 0x01 (1) => Internal data enabled signal = 0; Video mapping = 1 => VIDEO_RGB444_8BIT
    
    Checking Video Packetizer Registers base address 0x0800
    Reg_off: 0x1 = VP_PR_CD: 0x00 (0) => Color Depth = 0 => COLOR_DEPTH_24BIT_DEFAULT; Pixel Repet factor = 0 times
    Reg_off: 0x4 = VP_CONF: 0x46 (70) => Bypass enabled = 1; Pixel pack enabled = 0; Pixel repet enabled = 0; YCC422 enabled = 0; Bypass selected = 1; OUTPUT selected = OUT_FROM_8BIT_BYPASS
    
    Checking Frame Composer Registers base address 0x1000
    Reg_off: 0x19 = FC_AVICONF0: 0x42 (66) => FC RGC YCC_2 (HDMI 2.0) = 0; FC active format = 1; FC RGC YCC mode = 2 => AVI_COLOR_MODE_YCBCR444
    Reg_off: 0x1a = FC_AVICONF1: 0xa8 (168) => FC COLORIMETRY = 2 => AVI_COLORIMETRY_ITU709; FC picture aspec ratio = 2 => AVI_CODED_FRAME_ASPECT_16_9; FC active asperc ratio = 8 => ACTIVE_ASPECT_RATE_SAME_AS_CODED_FRAME
    Reg_off: 0x1b = FC_AVICONF2: 0x10 (16) => FC extended Colorimetry = 1; FC quantization range = AVI_QUANTIZATION_RANGE_DEFAULT; FC NUN pic scale = 0
    
    Checking Color Space Converter Registers base address 0x4100
    Reg_off: 0x0 = CSC_CFG: 0x00 (0) => Color Space Converter interpolation mode = 0;  Color Space Converter decimation mode = 0;
    Reg_off: 0x1 = CSC_SCALE: 0x40 (64) => Color Space Converter color depth = 4 => COLOR_DEPTH_24BIT;  Color Space Converter scale = 0
    In every step neccessary to send input video through HDMI interface and to create output video there are settings indicating that color depth is set to 24 bits (8 bit per three primary color channels).

    1. Color Space Convertion which is neccessary because input color space is RGB_0_255 and output video is YCbCr444 is enabled (reg. #4004h MC_FLOWCTRL value is 0x01) and coefficient table (reg #4102h-411bh) is set as CSC_RGB_0_255_TO_ITU709_16_235_8BIT and not CSC_RGB_0_255_TO_ITU709_16_235_10BIT as well pixel color depth is set to COLOR_DEPTH_24BIT.

    2. HDMI Video Packetizer doesn't pack pixels which would be neccesary in 30 bit color mode (10 bpc) also 8BIT_BYPASS is enabled which is only available in 24 bit color mode (8 bpc)

    I realy don't know what to make of that but "10 bit" is rather some smoke screen over other problems similar to this one: YUV420 color space in HDMI video output mode will probably newer be used because EDID doesn't have space for that setting and it is the source of HDMI output modes for RK3288 SoC.


    If you can then provide me with similar data as kaefert from you setup with Panasonic UHD TV.


    P.S. RK3288 HDMI 2.0 and 10 bit color depth?
    Fragment of rk3288_hdmi_video_frameComposer function in rk3288_hdmi_hw.c from FireFly GIT.
    Code:
    [COLOR=#999988][FONT=Consolas][I]// If sink max tmdsclk is lower than 340MHz, we [/I][SIZE=2]are[/SIZE][I] limited to 1.4b spec.
    [/I][/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]if[/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas]([/FONT][/COLOR][COLOR=#333333][FONT=Consolas]tmdsclk [/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]> [/B][/FONT][/COLOR][COLOR=#009999][FONT=Consolas]340000000[/FONT][/COLOR][COLOR=#333333][FONT=Consolas])
    [/FONT][/COLOR]{
            vpara[B]->[/B]color_output_depth [B]=[/B] [COLOR=#009999]8[/COLOR];
            tmdsclk [B]=[/B] mode[B]->[/B]pixclock;
    [COLOR=#333333][FONT=Consolas]}[/FONT][/COLOR]
    Last edited by Gormar; 03-07-2015, 20:04. Reason: kernel source code fragment added.
    RK3288 2GB/16GB OC 1.9GHz at 1.2V RAM [email protected] Wasser's 3.0.11 firmware
    Out: monitor FullHD 16:9, 3.5" jack headphones; In: remote control, USB HUB: keyboard + mouse + pendrive
    bricked: VOYO V1 mini 8G/64GB Windows 10

    Comment


      #62
      hmmmm hmmmmmm hmmmmmmmmmmmmmmm
      And why does it only works at 10bit HDMI(2.0) ports at TV?
      RK3288 Devices
      - Overview BOX (LINK !)
      - Overview STICK (Dongle) (LINK !)

      MINIX NEO: Z64 W/A - (Intel Z3735F); X8-H Plus - (Amlogic S812H); A2 Lite (sponsored by minix.com.hk)
      UGOOS UT3S (4/32GB with fan) - FW 2.0.6 - (RK3288) (sponsored by GearBest.com)
      Tronsmart Draco AW80 Meta (2/16GB) - FW v2.0rc3 - (Allwinner A80) (sponsored by GeekBuying.com)
      Beelink / UBOX R89 - FW 111k4110_1219 - (RK3288) (sponsored by Netxeon (Beelink))

      RK3188: pcb => "CH001 1332 TN-BX09_V2.1" (K-R42 / CS918...) => wasser KK 1.0.3 (old rev)
      Fly Mouse Mini Wireless Keyboard with 2 mode learning IR remote 'iPazzPort KP-810-16'

      Comment


        #63
        It is probably coincidence.
        10 bit and higher color depth is part of so called "deep color" settings for HDMI. So is yuv444 color mode even if it is optional.
        Now in Samsung and LG UHD TV enabling "UHD deep color" for one HDMI port allows it to use yuv444 color space and as far as I know it is needed for RK3288 SoC HDMI interface. Why it doesn't work for Panasonic UHD displays with yuv444 it's beyond my knowledge.
        If someone doesn't belive registers describing state of RK3288 HDMI interface then why they bevile RK spokesman .

        This is function from rk3288_hdmi.c file responsible for dumping registers in debug_fs:
        Code:
        [COLOR=#333333][FONT=Consolas][B]static [/B][/FONT][/COLOR][COLOR=#445588][FONT=Consolas][B]int [/B][/FONT][/COLOR][COLOR=#990000][FONT=Consolas][B]rk3288_hdmi_reg_show[/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas]([/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]struct  [/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas]seq_file[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]*[/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas]s[/FONT][/COLOR][COLOR=#333333][FONT=Consolas], [/FONT][/COLOR][COLOR=#445588][FONT=Consolas][B]void[/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]*[/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas]v[/FONT][/COLOR][COLOR=#333333][FONT=Consolas])
        [/FONT][/COLOR][COLOR=#333333][FONT=Consolas]{
        [/FONT][/COLOR][COLOR=#445588][FONT=Consolas][B]   int [/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas]i[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]=[/B][/FONT][/COLOR][COLOR=#009999][FONT=Consolas]0[/FONT][/COLOR][COLOR=#333333][FONT=Consolas],[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]j[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]=[/B][/FONT][/COLOR][COLOR=#009999][FONT=Consolas]0[/FONT][/COLOR][COLOR=#333333][FONT=Consolas];
        [/FONT][/COLOR][COLOR=#333333][FONT=Consolas]   u32 [/FONT][/COLOR][COLOR=#333333][FONT=Consolas]val[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]=[/B][/FONT][/COLOR][COLOR=#009999][FONT=Consolas]0[/FONT][/COLOR][COLOR=#333333][FONT=Consolas];
        [/FONT][/COLOR][COLOR=#333333][FONT=Consolas]   seq_printf[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]([/FONT][/COLOR][COLOR=#333333][FONT=Consolas]s[/FONT][/COLOR][COLOR=#333333][FONT=Consolas],[/FONT][/COLOR][COLOR=#BB8844][FONT=Consolas]"[/FONT][/COLOR][COLOR=#BB8844][FONT=Consolas]\n[/FONT][/COLOR][COLOR=#BB8844][FONT=Consolas]>>>hdmi_ctl reg "[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]);
        [/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]   for [/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas]([/FONT][/COLOR][COLOR=#333333][FONT=Consolas]i[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]=[/B][/FONT][/COLOR][COLOR=#009999][FONT=Consolas]0[/FONT][/COLOR][COLOR=#333333][FONT=Consolas];[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]i[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]<[/B][/FONT][/COLOR][COLOR=#009999][FONT=Consolas]16[/FONT][/COLOR][COLOR=#333333][FONT=Consolas];[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]i[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]++[/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas])
        [/FONT][/COLOR][COLOR=#333333][FONT=Consolas]        seq_printf[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]([/FONT][/COLOR][COLOR=#333333][FONT=Consolas]s[/FONT][/COLOR][COLOR=#333333][FONT=Consolas],[/FONT][/COLOR][COLOR=#BB8844][FONT=Consolas]" %2x"[/FONT][/COLOR][COLOR=#333333][FONT=Consolas],[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]i[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]);
        [/FONT][/COLOR][COLOR=#333333][FONT=Consolas]        seq_printf[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]([/FONT][/COLOR][COLOR=#333333][FONT=Consolas]s[/FONT][/COLOR][COLOR=#333333][FONT=Consolas],[/FONT][/COLOR][COLOR=#BB8844][FONT=Consolas]"[/FONT][/COLOR][COLOR=#BB8844][FONT=Consolas]\n[/FONT][/COLOR][COLOR=#BB8844][FONT=Consolas]-----------------------------------------------------------------"[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]);
        [/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]        for [/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas]([/FONT][/COLOR][COLOR=#333333][FONT=Consolas]i[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]=[/B][/FONT][/COLOR][COLOR=#009999][FONT=Consolas]0[/FONT][/COLOR][COLOR=#333333][FONT=Consolas];[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]i[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]<[/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas]ARRAY_SIZE[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]([/FONT][/COLOR][COLOR=#333333][FONT=Consolas]hdmi_reg_table[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]);[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]i[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]++[/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas])[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]{
        [/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]             for [/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas]([/FONT][/COLOR][COLOR=#333333][FONT=Consolas]j[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]=[/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas]hdmi_reg_table[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]i[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]].[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]reg_base[/FONT][/COLOR][COLOR=#333333][FONT=Consolas];[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]j[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]<=[/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas]hdmi_reg_table[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]i[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]].[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]reg_end[/FONT][/COLOR][COLOR=#333333][FONT=Consolas];[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]j[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]++[/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas])[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]{
        [/FONT][/COLOR][COLOR=#333333][FONT=Consolas]                  val[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]=[/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas]hdmi_readl[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]([/FONT][/COLOR][COLOR=#333333][FONT=Consolas]hdmi_dev[/FONT][/COLOR][COLOR=#333333][FONT=Consolas],[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]j[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]);
        [/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]                  if [/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas](([/FONT][/COLOR][COLOR=#333333][FONT=Consolas]j[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]-[/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas]hdmi_reg_table[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]i[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]].[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]reg_base[/FONT][/COLOR][COLOR=#333333][FONT=Consolas])[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]%[/B][/FONT][/COLOR][COLOR=#009999][FONT=Consolas]16[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]==[/B][/FONT][/COLOR][COLOR=#009999][FONT=Consolas]0[/FONT][/COLOR][COLOR=#333333][FONT=Consolas])
        [/FONT][/COLOR][COLOR=#333333][FONT=Consolas]                        seq_printf[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]([/FONT][/COLOR][COLOR=#333333][FONT=Consolas]s[/FONT][/COLOR][COLOR=#333333][FONT=Consolas],[/FONT][/COLOR][COLOR=#BB8844][FONT=Consolas]"[/FONT][/COLOR][COLOR=#BB8844][FONT=Consolas]\n[/FONT][/COLOR][COLOR=#BB8844][FONT=Consolas]>>>hdmi_ctl %04x:"[/FONT][/COLOR][COLOR=#333333][FONT=Consolas],[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]j[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]);
        [/FONT][/COLOR][COLOR=#333333][FONT=Consolas]                  seq_printf[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]([/FONT][/COLOR][COLOR=#333333][FONT=Consolas]s[/FONT][/COLOR][COLOR=#333333][FONT=Consolas],[/FONT][/COLOR][COLOR=#BB8844][FONT=Consolas]" %02x"[/FONT][/COLOR][COLOR=#333333][FONT=Consolas],[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]val[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]);
        [/FONT][/COLOR][COLOR=#333333][FONT=Consolas]            }
        [/FONT][/COLOR][COLOR=#333333][FONT=Consolas]        }
        [/FONT][/COLOR][COLOR=#333333][FONT=Consolas]    seq_printf[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]([/FONT][/COLOR][COLOR=#333333][FONT=Consolas]s[/FONT][/COLOR][COLOR=#333333][FONT=Consolas],[/FONT][/COLOR][COLOR=#BB8844][FONT=Consolas]"[/FONT][/COLOR][COLOR=#BB8844][FONT=Consolas]\n[/FONT][/COLOR][COLOR=#BB8844][FONT=Consolas]-----------------------------------------------------------------[/FONT][/COLOR][COLOR=#BB8844][FONT=Consolas]\n[/FONT][/COLOR][COLOR=#BB8844][FONT=Consolas]"[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]);
            [B]return[/B] [COLOR=#009999]0[/COLOR]; 
        [/FONT][/COLOR][COLOR=#333333][FONT=Consolas]}[/FONT][/COLOR]
        What information is in every register can be found in rk3288_hdmi_hw.h file.
        RK3288 2GB/16GB OC 1.9GHz at 1.2V RAM [email protected] Wasser's 3.0.11 firmware
        Out: monitor FullHD 16:9, 3.5" jack headphones; In: remote control, USB HUB: keyboard + mouse + pendrive
        bricked: VOYO V1 mini 8G/64GB Windows 10

        Comment


          #64
          Hey Gormar!
          incredible stuff you dug out here
          How can you tell what register stands for what? You said that the file rk3288_hdmi_hw.h defines that - where can I find it? I guess this is part of the kernel sources for our device? where are they published?

          I've checked the contents of /sys/kernel/debug/rk3288-hdmi/hdmi on my beelink R89 again today, and found that the register
          0x3004 changed from 0xf3 yesterday (what I posted here) to 0x03 right now.

          I suspect that this might mean that the TV is in off state right now (which makes sense, because Sundays it should be off because nobody should be there).
          I wanted to ask if you (or somebody else?) could confirm or deny this theory - I've been looking for a way to determine weither the connected TV is on or off since I've deployed the media player at its place (that's why I've looked at the dmesg output before and attached it here)

          UPDATE: okey, so I've found an instance of this rk3288_hdmi_hw.h file here:


          and found line #725:
          #define PHY_STAT0 0x3004
          but How do can I tell what PHY_STAT0 is?
          Last edited by kaefert; 03-08-2015, 10:30.
          Beelink NETXEON R89B V3.1 RK3288/A P6335/2G/16G
          Screen: Samsung UE50HU6900 - link: 3840x2160@60Hz 10Bit
          Apps: MXPlayer, Rooted SSH/SFTP Daemon, scriptmanager, kbox2
          (think: Public Display 4k)

          Comment


            #65
            HDMI register at address 0x3004 is described in RK3288_hdmi_hw.h file as PHY_STAT0 then it with high probability contain state of HDMI physical interface.

            Every bit in that byte should have that meaning:
            Code:
            [COLOR=#999999][B]#define m_PHY_RX_SENSE3        (1 << 7)
            [/B][/COLOR][COLOR=#999999][B]#define v_PHY_TX_SENSE3(n)    (((n)&0x01) << 7)
            [/B][/COLOR][COLOR=#999999][B]#define m_PHY_RX_SENSE2        (1 << 6)
            [/B][/COLOR][COLOR=#999999][B]#define v_PHY_TX_SENSE2(n)      (((n)&0x01) << 6)
            [/B][/COLOR][COLOR=#999999][B]#define m_PHY_RX_SENSE1        (1 << 5)
            [/B][/COLOR][COLOR=#999999][B]#define v_PHY_TX_SENSE1(n)      (((n)&0x01) << 5)
            [/B][/COLOR][COLOR=#999999][B]#define m_PHY_RX_SENSE0        (1 << 4)
            [/B][/COLOR][COLOR=#999999][B]#define v_PHY_TX_SENSE0(n)      (((n)&0x01) << 4)
            [/B][/COLOR][COLOR=#999999][B]#define m_PHY_HPD        (1 << 1)
            [/B][/COLOR][COLOR=#999999][B]#define v_PHY_HPD        (((n)&0x01) << 1)
            [/B][/COLOR][COLOR=#999999][B]#define m_PHY_LOCK        (1 << 0)
            [/B][/COLOR][COLOR=#999999][B]#define v_PHY_LOCK(n)        (((n)&0x01) << 0)[/B][/COLOR]
            If HDMI reciever is in off or suspended state then it disable Physical Interface for transmit and recieve and this register should indicate that RK3288 can not sense those lines as active and sets 4 MSB bits to zero (four transmit lines). In HDMI suspend mode PLL frequency is locked and hotplug enabled (two LSB set = 3). Therefore it takes value of 0x03 instead of 0xf3.

            Originally posted by kaefert View Post
            #define PHY_STAT0 0x3004
            but How do can I tell what PHY_STAT0 is?
            The most efficient way is to look for data written/read to/from that register in source code. This particular register is read few times in rk3288_hdmi_hw.c source file.
            Last edited by Gormar; 03-08-2015, 12:19.
            RK3288 2GB/16GB OC 1.9GHz at 1.2V RAM [email protected] Wasser's 3.0.11 firmware
            Out: monitor FullHD 16:9, 3.5" jack headphones; In: remote control, USB HUB: keyboard + mouse + pendrive
            bricked: VOYO V1 mini 8G/64GB Windows 10

            Comment


              #66
              Originally posted by Rayzin View Post
              It is all very confusing isn't it? The wiki was one of the main reasons why I looked into this more closely. Displaying raw 4:4:4 at 4k@60 sounded too good to be true and the HEVC decoder profiles according to the datasheet of radxa states only 4:2:0 can be displayed and no more 4k@60. But who is right?

              My post here is to bring some bad news.

              I contacted Rockchip and asked if 8bit was supported 4k@60 and the answer was no, only 10bit. I am waiting for a reply of follow up questions and I'll post them here. It's really disappointing for those who only have 8bit 4k capable tvs. But after all this confusion, lack of transparency, misleading information etc. I am glad to have closure on this issue.
              It's something that should have been made clearer by Rockchip at the start. A lot of TV's only have 8bit HDMI connections. It also a bit of a "black hole" going forward,will 4k Blu Ray players etc support 8bit 4k? If not then a lot of TV's are going to be obsolete.

              Comment


                #67
                Thanks @Gormar for the clarification!

                @anybody who uses an RK3288 device with 4k@60Hz:
                1.) Do you exist? am I the only one actively partaking in this thread?

                2.) What TV are you using?

                3.) What HDMI-cable are you using, and does it work 'perfect'? I am currently using the one that came with my Beelink R89, but it sometimes gives me signal drops, therefore I am trying to find an alternative, but anything I have yet tried is MUCH worse than the one packaged with my Beelink R89.

                Those two HDMI-cables I have specifically bought for this purpose in the last weeks:

                Der Spezialist für Netzwerkprdukte und Netzwerkzubehör, Netzwerkshop, Netzwerkprodukte, Cat5 Technik, Netzwerkkabel, Netzwerk und Verlegekabel, Netzwerkrouter und Zubehör KVM Switches Extender KVM Kabel Netzwerk Netzwerktechnik Firewire in Wien

                Both state they work with HDMI 2.0, neither of them does (at least both of them give more than half of the time a black screen instead of my signal)

                I'm thinking of buying this one next:

                some other buyer of it says its very thick & rigid and therefor difficult to install - I guess that should mean it has very good shielding, but then again thats not the only criterion in good high frequency behaviour...
                Beelink NETXEON R89B V3.1 RK3288/A P6335/2G/16G
                Screen: Samsung UE50HU6900 - link: 3840x2160@60Hz 10Bit
                Apps: MXPlayer, Rooted SSH/SFTP Daemon, scriptmanager, kbox2
                (think: Public Display 4k)

                Comment


                  #68
                  So this the ultimate proof. Should've been the first place to look because the code doesn't lie right. The CSR was 'mistaken' or misinformed.

                  Is it safe to say that the rk3288 only decodes 8bit 4k@60 but only displays it through a 10 bit interface? The image must be upscaled which may not be such a bad thing if it was just native 8 bit.

                  Comment


                    #69
                    Originally posted by Rayzin View Post
                    Is it safe to say that the rk3288 only decodes 8bit 4k@60 but only displays it through a 10 bit interface? The image must be upscaled which may not be such a bad thing if it was just native 8 bit.
                    To much contradicting information and you messed up a bit. RK3288 HEVC decoder can process 10 bit per channel and YUV 4:2:0 format video stream at 50 fps (at least ~26Mbps) and probably 60fps. Checked that myself .

                    Completly separate thing is displaying that video with highest possible fidelity. This look bad for now . From aquired hard (registered ;]) data it seems that RK3288 HDMI interface can send 4K resolution picture with 8 bit color depth per channel and YUV444 format at 60 fps to HDMI 2.0 ready TV using three TMDS lines clocked at whooping 594MHz.

                    Current problem is to find why some UHD TV with HDMI 2.0 interfaces cannot work in 4K@60fps display mode with this SoC. Right now I have new theory which if came true will only require to change some logic in RK3288 HDMI driver. Previous, about YUV4:2:0 went in flames because right now this RK3288 kernel driver will never choose that video format for output. But it is seems so simple that I realy doubt if it is possible because it should be spotted long time ago. When only VSDB has IEEEOUI field equal 0x0c03 and optional field maxtmdsclock (7th byte) is not there good luck trying to enable HDMI 2.0 with tmds clock higher than 340 MHz ;(. It shouldn't be in case with HDMI 2.0 compliant TVs but Panasonic TX-xxAX630E HDMI port doesn't support YUV 4:2:0 chroma subsampling which is mandatory for HDMI 2.0 therefore it might not have blessing from HDMI comitee and his EDID may not contain HFVSDB (High Fidelity Vendor Specific Data Block) with IEEEOUI field 0xc45dd8 which is required by HDMI 2.0 specification and certification.

                    I doubt in RK software crew when I find in RK3288_hdmi driver source code that work_queue (hdmi_work_queue) job setting video parameters (hdmi_wq_set_video) changes HDMI color_output to 10 bit if this is supported by current display as indicated by 5th bit of "deepcolor" field from VSDB 6th byte in EDID data:
                    Code:
                    [COLOR=#333333][FONT=Consolas][B]if [/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas]([/FONT][/COLOR][COLOR=#333333][FONT=Consolas]hdmi[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]->[/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas]edid[/FONT][/COLOR][COLOR=#333333][FONT=Consolas].[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]deepcolor[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]&[/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas]HDMI_DEEP_COLOR_30BITS[/FONT][/COLOR][COLOR=#333333][FONT=Consolas])[/FONT][/COLOR][COLOR=#333333][FONT=Consolas]{
                    [/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]if [/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas]([/FONT][/COLOR][COLOR=#333333][FONT=Consolas]hdmi[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]->[/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas]colordepth[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]==[/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas]HDMI_DEPP_COLOR_AUTO[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]||
                    [/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas]hdmi[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]->[/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas]colordepth[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]==[/B][/FONT][/COLOR][COLOR=#009999][FONT=Consolas]10[/FONT][/COLOR][COLOR=#333333][FONT=Consolas])
                         video.color_output_depth [B]=[/B] [COLOR=#009999]10[/COLOR];[/FONT][/COLOR]
                    But afterwards this is overwriten in "HAL" (rk3288_hdmi_hw.c) HDMI ops setVideo function: hdmi_dev_config_video
                    Code:
                    [COLOR=#333333][FONT=Consolas]vpara[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]->[/B][/FONT][/COLOR][COLOR=#333333][FONT=Consolas]color_output_depth[/FONT][/COLOR][COLOR=#333333][FONT=Consolas][B]=[/B][/FONT][/COLOR][COLOR=#009999][FONT=Consolas]8[/FONT][/COLOR][COLOR=#333333][FONT=Consolas];[/FONT][/COLOR]
                    Last edited by Gormar; 03-09-2015, 08:16. Reason: Some remarks about Panasonic UHD TV AX630E
                    RK3288 2GB/16GB OC 1.9GHz at 1.2V RAM [email protected] Wasser's 3.0.11 firmware
                    Out: monitor FullHD 16:9, 3.5" jack headphones; In: remote control, USB HUB: keyboard + mouse + pendrive
                    bricked: VOYO V1 mini 8G/64GB Windows 10

                    Comment


                      #70
                      I can't believe what I just found.
                      Displaying various 4k test pictures with various picture-viewer apps will always show one thing: the picture is downscaled to 1920x1080.

                      but it sadly makes sense but (if you can remember) I already complained on the past few pages a few times that screenshots aquired with screencap are only 1920x1080 in resolution

                      My HDMI connection @ the TV says its receiving a 3840x2160@60fps signal, so it seems that 4k media is first downscaled and later upscaled again?

                      Ah but maybe one idea I get is that maybe only stuff decoded by the hardwaredecoder and directly viewed via that can be output without inbetween downscaling? If nobody else has a better idea I will try to make a 4k video clip out of my 4k test pictures and try to play that to see if it works better than displaying the pictures as pictures.
                      Beelink NETXEON R89B V3.1 RK3288/A P6335/2G/16G
                      Screen: Samsung UE50HU6900 - link: 3840x2160@60Hz 10Bit
                      Apps: MXPlayer, Rooted SSH/SFTP Daemon, scriptmanager, kbox2
                      (think: Public Display 4k)

                      Comment


                        #71
                        Sorry kaefert, I thought you knew that setting HDMI display mode in Android define only scaled output resolution. It is counter intuitive but it is so . To change real framebuffer resolution you should use "wm" command (i.e. wm size 3840x2160) or change parameters in kernel. Also IIRC RockChip video player can change framebuffer size dynamicaly depending on resolution of video stream.
                        RK3288 2GB/16GB OC 1.9GHz at 1.2V RAM [email protected] Wasser's 3.0.11 firmware
                        Out: monitor FullHD 16:9, 3.5" jack headphones; In: remote control, USB HUB: keyboard + mouse + pendrive
                        bricked: VOYO V1 mini 8G/64GB Windows 10

                        Comment


                          #72
                          Okey, thanks for the explanation Gomar, I'll try to experiment more next time I'm at the device. Maybe next weekend.

                          update: via ssh (without beeing able to check the output of the screen) I see this on the console:
                          Code:
                          root@manta:/ # wm size 
                          Physical size: 1920x1080
                          root@manta:/ # wm size 3840x2160                                               
                          root@manta:/ # wm size                                                         
                          Physical size: 1920x1080
                          Override size: 3840x2160
                          rebooting the beelink makes it forget the "Override size" again. But I guess I could include wm size 3840x2160 in my startup script if that helps. More in a week.
                          Last edited by kaefert; 03-15-2015, 19:41.
                          Beelink NETXEON R89B V3.1 RK3288/A P6335/2G/16G
                          Screen: Samsung UE50HU6900 - link: 3840x2160@60Hz 10Bit
                          Apps: MXPlayer, Rooted SSH/SFTP Daemon, scriptmanager, kbox2
                          (think: Public Display 4k)

                          Comment


                            #73
                            Okey! So good news, I've rendered a 4k test-pattern video with avisynth + x265 and playing this with the hardwaredecoder on my beelink defenitly shows: It's displayed in 4k-resolution.

                            But of course - since I need to render in yuv420 to allow it to be played by the beelinks hardwaredecoder - my testvideo also shows the typical ugly chroma subsampling effects.

                            The hint with setting
                            wm size 3840x2160
                            sadly does have an unwanted effect - the desktop is defined to be 3840x2160 - but only the top left quater of this desktop is sent via hdmi to my display.
                            Gormar, do you know how to make the desktop size 3840x2160 and have it sent completly over the hdmi cable to the display?

                            ps.: sorry for the long pause, it's the first time I'm at the device again since my last post.
                            Beelink NETXEON R89B V3.1 RK3288/A P6335/2G/16G
                            Screen: Samsung UE50HU6900 - link: 3840x2160@60Hz 10Bit
                            Apps: MXPlayer, Rooted SSH/SFTP Daemon, scriptmanager, kbox2
                            (think: Public Display 4k)

                            Comment


                              #74
                              Originally posted by kaefert View Post
                              wm size 3840x2160
                              sadly does have an unwanted effect - the desktop is defined to be 3840x2160 - but only the top left quater of this desktop is sent via hdmi to my display.
                              Gormar, do you know how to make the desktop size 3840x2160 and have it sent completly over the hdmi cable to the display?
                              I'm not sure because I don't have 4k display yet. Try to experimet with "wm density value". Maybe 80 dpi will help?
                              RK3288 2GB/16GB OC 1.9GHz at 1.2V RAM [email protected] Wasser's 3.0.11 firmware
                              Out: monitor FullHD 16:9, 3.5" jack headphones; In: remote control, USB HUB: keyboard + mouse + pendrive
                              bricked: VOYO V1 mini 8G/64GB Windows 10

                              Comment


                                #75
                                Originally posted by Gormar View Post
                                I'm not sure because I don't have 4k display yet. Try to experimet with "wm density value". Maybe 80 dpi will help?
                                nope. the wm density command does manipulate the size of the icons and text on the desktop, but I still only see the top left quater of the desktop on my display. (I can revert to see the whole desktop again by running wm size 1920x1080)
                                Beelink NETXEON R89B V3.1 RK3288/A P6335/2G/16G
                                Screen: Samsung UE50HU6900 - link: 3840x2160@60Hz 10Bit
                                Apps: MXPlayer, Rooted SSH/SFTP Daemon, scriptmanager, kbox2
                                (think: Public Display 4k)

                                Comment

                                Working...
                                X