Does latest rpb desktop image (Debian) supports hdmi on hikey960?

@leo-yan @Loic Do we have any update on bug https://bugs.96boards.org/show_bug.cgi?id=677; ? I don’t see anyone comment on it or change status after 2018-01-17 it was filed. Does anyone work on it?

@leo-yan This week we tried 134 rpb build and it still looks same with before. Do we have a plan to fix this HDMI issue on rpb build? And after [Bug 677] had been filed, I don’t see any update on it.

Hi @StephenSun,

I didn’t get response for the bug: https://bugs.96boards.org/show_bug.cgi?id=677; and Hikey960 have no official releasing for rpb and debian rootfs, so this is why we have no preceding.

Regard of the hdmi display issue, I found the rpb rootfs image which can display HDMI properly, it has below fbset configurations:

root@hikey960:/etc# fbset

mode "1920x1080"
    geometry 1920 1080 1920 1080 32
    timings 0 0 0 0 0 0 0
    accel true
    rgba 8/16,8/8,8/0,0/0
endmode

But for broken rpb rootfs image, it has below configurations:

root@hikey960:~# fbset

mode "800x600"
    geometry 800 600 800 600 32
    timings 0 0 0 0 0 0 0
    accel true
    rgba 8/16,8/8,8/0,0/0
endmode

And I found I cannot manually change the framebuffer setting by command:

root@hikey960:~# fbset -fb /dev/fb0 -g 1920 1080 1920 1080 16
ioctl FBIOPUT_VSCREENINFO: Invalid argument

I am not familiar with framebuffer/display drivers, I will try to inquire colleagues with related expertise; also very welcome if you have any suggestion for this.

Thanks,
Leo Yan

Thanks a lot @leo-yan for your effort,
I have two questions related to this issue now:

  1. Do you have ever successfully displayed anything based on a recent RPB release (like 121 afterwards)?If none of them then I suggest finding out the latest working RPB release, it may be easier to figure out which commit(s) caused this issue then normal debugging.
  2. Can you tell me how to figure out the actually kernel brance used by RPB build? Recently we have some finding from AOSP side, and we want to have a try on RPB.

Best Regards.
孙国峰

Yes, I tried 123/127, both of them cannot display with my 720p LCD display.

Thanks for @Loic & @fabo pointed me, you could refer the discussion for kernel code base from: Which kernel branch is used by the current RPB 4.14 kernel? - #5 by Loic

Actually rpb building is using git tree is: https://github.com/96boards-hikey/linux/, the last commit id is: 2932b25c8003e773a0b32b52814a5fd17b287567, you could refer the OE morty config file: https://github.com/96boards/meta-96boards/blob/morty/recipes-kernel/linux/linux-hikey960_git.bb.

so, i am am on the following kernel

root@linaro-developer:~# uname -a
Linux linaro-developer 4.15-hikey #1 SMP PREEMPT Sat Mar 10 22:41:04 UTC 2018 aarch64 GNU/Linux

And /dev/fb0 isn’t available

also lsmod shows this:

root@linaro-developer:~# lsmod
Module                  Size  Used by
bnep                   24576  2
arc4                   16384  2
wl18xx                143360  0
wlcore                282624  1 wl18xx
mac80211              421888  2 wl18xx,wlcore
cfg80211              335872  3 wl18xx,wlcore,mac80211
wlcore_sdio            16384  0
hci_uart               65536  0
adv7511                28672  0
cec                    49152  1 adv7511
drm_kms_helper        180224  1 adv7511
drm                   438272  2 adv7511,drm_kms_helper
crc32_ce               16384  0
crct10dif_ce           16384  0
bluetooth             602112  23 hci_uart,bnep
ecdh_generic           24576  2 bluetooth
ip_tables              24576  0
x_tables               40960  1 ip_tables
btrfs                1024000  0
xor                    20480  1 btrfs
zstd_decompress        77824  1 btrfs
zstd_compress         159744  1 btrfs
xxhash                 16384  2 zstd_compress,zstd_decompress
raid6_pq              106496  1 btrfs
root@linaro-developer:~# 

Any ideas, I know it was working earlier for me…

That is weird, this used to work for me as well with a fbdev. However, looking at the code I don’t find where the fbdev is created. All the coder related to FBDEV initialization is commented: https://github.com/96boards-hikey/linux/blob/hikey960-upstream-rebase/drivers/gpu/drm/hisilicon/kirin960/kirin_drm_drv.c#L142 (from initial integration of the driver).

@sumit.garg AFAIK you have a working display with your hikey960/linux, any idea ?

@ric96 Looking at kernel version, it seems you are running Debian on which HDMI/DRM drivers doesn’t seems to work. So I had to install custom 96boards hikey kernel (https://github.com/96boards-hikey/linux/commits/hikey960-upstream-rebase) on Debian and passed “video=HDMI-A-1:1280x800@60” in cmdline for my 24 inch monitor screen.

Kernel install steps:
“Image.gz” should be used to replace /boot/vmlinuz-4.15-hikey image.
And for device tree, you will get hi3660-hikey960.dtb image. Place this image in “/boot/” directory. Reboot and press “e” when you get GRUB menu. Just add following line in the configuration:
devicetree /boot/hi3660-hikey960.dtb

1 Like

@sumit.garg
With that kernel if I add the video=HDMI-A-1:1280x800@60 cmd, it results in a panic during boot else it fails to find rootfs and goes into initramfs

could not open builtin file '/lib/modules/4.14.0-rc7-hikey-linaro/modules.builtin.bin'
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
done.
Gave up waiting for root file system device.  Common problems:
 - Boot args (cat /proc/cmdline)
   - Check rootdelay= (did the system wait long enough?)
 - Missing modules (cat /proc/modules; ls /dev)
ALERT!  UUID=230350e9-f100-4e71-a796-4d1c259fec71 does not exist.  Dropping to a shell!
(initramfs) 

@ric96 Please check if you followed following build steps:

cd
./scripts/kconfig/merge_config.sh arch/arm64/configs/defconfig arch/arm64/configs/hikey960_defconfig
make -jnproc

1 Like

aahh… that worked but i guess this kernel doesn’t support sdcard, so i still end up booting to initramfs

@ric96 So your HDMI worked with kernel boot-logs displayed on Monitor, right? I am not sure about sdcard as I have used Debian rootfs flashed on UFS.

yes hdmi worked, but currently i require emmc to run aosp that’s why i was booting on sdcard and that didn’t work

What I did:

1. Plug-in HDMI before booting

2. Boot

3. Start X

4. Check fb0, it should be there.

However, if you want X actually work, you need to follow the instruction from Leo to add X11 config for fbdev as well.

BR,

Stephen Sun

if you run

apt update
apt dist-upgrade

and reboot, does it still run?

Hello @sumit.garg,

Is there a link / readme that provides complete set of instructions to build with HDMI support for HiKey960 ?

I am trying to build [1] from source, to be able to get GUI via HDMI output.

Thanks,
Rajagopal

[1] - https://github.com/96boards-hikey/linux/commits/hikey960-upstream-rebase

I am afraid that there isn’t any specific readme for this particular kernel version [1], did you try instructions listed in this post to enable HDMI?

[1] https://github.com/96boards-hikey/linux/commits/hikey960-upstream-rebase

Hello @Sumit & @ric96,

I am running into below error on my HiKey960 with upstream-rebase kernel & corresponding dtb.

The same kernel boots fine with 4.19.5’s dtb, though !

*[ 7.360846] ufshcd-hi3660 ff3b0000.ufs: ufshcd_query_flag: Sending flag query for idn 3 failed, err = -11
[ 7.384931] ufshcd-hi3660 ff3b0000.ufs: ufshcd_query_flag_retry: query attribute, opcode 5, idn 3, failed with error -11 after 3 retires
[ 8.929043] ufshcd-hi3660 ff3b0000.ufs: __ufshcd_query_descriptor: opcode 0x01 for idn 8 failed, index 0, err = -11
[ 10.464885] ufshcd-hi3660 ff3b0000.ufs: __ufshcd_query_descriptor: opcode 0x01 for idn 8 failed, index 0, err = -11
[ 12.001219] ufshcd-hi3660 ff3b0000.ufs: __ufshcd_query_descriptor: opcode 0x01 for idn 8 failed, index 0, err = -11
[ 12.028565] ufshcd-hi3660 ff3b0000.ufs: ufshcd_read_desc_param: Failed reading descriptor. desc_id 8, desc_index 0, param_offset 0, ret -11
[ 12.058408] ufshcd-hi3660 ff3b0000.ufs: ufshcd_init_icc_levels: Failed reading power descriptor.len = 98 ret = -11
[ 33.057454] ufshcd-hi3660 ff3b0000.ufs: ufshcd_print_pwr_info:[RX, TX]: gear=[1, 1], lane[1, 1], pwr[SLOWAUTO_MODE, SLOWAUTO_MODE], rate = 0
[ 33.089203] ufshcd-hi3660 ff3b0000.ufs: UPIU[0] - issue time 12082372 us
[ 33.105292] ufshcd-hi3660 ff3b0000.ufs: UPIU[0] - Transfer Request Descriptor phys@0xdc058000
[ 33.123099] UPIU TRD: 00000000: 15000000 00000000 0000000f 00000000
[ 33.138519] UPIU TRD: 00000010: dc040000 00000000 00800080 01000001
[ 33.153808] ufshcd-hi3660 ff3b0000.ufs: UPIU[0] - Request UPIU phys@0xdc040000
[ 33.170017] UPIU REQ: 00000000: 00d04001 00000000 00000000 24000000
[ 33.185172] UPIU REQ: 00000010: 00000012 00000024 00000000 00000000
[ 33.200083] ufshcd-hi3660 ff3b0000.ufs: UPIU[0] - Response UPIU phys@0xdc040200
[ 33.216073] UPIU RSP: 00000000: 00000000 00000000 00000000 00000000
[ 33.230942] UPIU RSP: 00000010: 00000000 00000000 00000000 00000000
[ 33.245704] UPIU RSP: 00000020: 00000000 00000000 00000000 00000000
[ 33.260414] UPIU RSP: 00000030: 00000000
[ 33.272614] ufshcd-hi3660 ff3b0000.ufs: UPIU[0] - PRDT - 1 entries phys@0xdc040400
[ 33.288623] UPIU PRDT: 00000000: 18e3fc00 00000002 00000000 00000023
[ 33.387503] ufs final power mode: gear = 3, lane = 2, pwr = 1, rate = 2
[ 33.402517] ufshcd-hi3660 ff3b0000.ufs: set TX_EQUALIZER 3.5db
[ 33.419069] ufshcd-hi3660 ff3b0000.ufs: check TX_EQUALIZER DB value lane0 = 0x1
[ 33.434559] ufshcd-hi3660 ff3b0000.ufs: TX_EQUALIZER DB value lane1 = 0x1
[ 33.449256] ufshcd-hi3660 ff3b0000.ufs: ufshcd_print_pwr_info:[RX, TX]: gear=[3, 3], lane[2, 2], pwr[FAST MODE, FAST MODE], rate = 2
[ 33.477739] VFS: Cannot open root device "sdd10" or unknown-block(0,0): error -6*

PFB the summary of steps followed and can someone please let me know where I am going wrong ?

  1. export ARCH=arm64
  2. export CROSS_COMPILE="$PWD"/toolchain/bin/aarch64-linux-android-
  3. make -j$(nproc) distclean
  4. ./scripts/kconfig/merge_config.sh arch/arm64/configs/defconfig arch/arm64/configs/hikey960_defconfig
  5. make -j$(nproc) LOCALVERSION=-hikey960-linaro-xen
  6. Create custom GRUB entry with new kernel & dtb as follows …
    echo ‘Loading Linux hikey-upstream-rebase …’

linux /boot/vmlinuz-hikey-upstream-rebase root=/dev/sdd10 ro video=HDMI-A-1:1920x1200@60

devicetree /boot/hi3660-hikey960.dtb

menuentry ‘hikey-upstream-rebase-with-HDMI’ {
}

Thanks,

Rajagopal

[1] - https://github.com/96boards-hikey/linux.git -b hikey960-upstream-rebase

Disclaimer: “This message is intended only for the designated recipient(s). It may contain confidential or proprietary information and may be subject to other confidentiality protections. If you are not a designated recipient, you may not review, copy or distribute
this message. Please notify the sender by e-mail and delete this message. GlobalEdge does not accept any liability for virus infected mails.”

It seems like your hikey960 comes with hynix UFS flash, so you would require fix [1] in upstream-rebase kernel that is already part of 4.19.5 kernel.

[1] manivannan.sadhasivam/hikey.git - [no description]

@Sumit,

Managed to overcome hynix_ufs issue by using dtb from 4.19.5 !
However, unable to get HDMI output since NO /dev/dri/card0 or /dev/fb0.
From the dmesg output, we are able to see MALI getting detected, though.

Complete dmesg output has been made available at [1] and any help on getting HDMI output will be great.

Thanks,
Rajagopal

[1] - https://pastebin.com/uNth2Vsr