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

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?

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] https://git.linaro.org/people/manivannan.sadhasivam/hikey.git/commit/?id=64e270bdc1c98815c8741621013f94065939e912

@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

You need to use dtb from hikey960-upstream-rebase kernel branch only as that will be having DT nodes to enable HDMI and USB. Only hynix_ufs fix patch is required in the hikey960-upstream-rebase kernel which you have already picked from 4.19.5 kernel.

Hello @sumit.garg,

Finally could get HDMI output and thanks to you & @Mani.

No, we haven’t back-ported anything from 4.19.5 yet.
What I meant in my earlier post was that, I could boot upstrea-rebase from UFS using 4.19.5’s dtb.
For now this is NOT a blocker and if required will bump this topic later !

Thanks,
Rajagopal

@Rajagopal Can you share what you did to enable HDMI?

I guess you did

Thanks.

@no_maddo,

Sorry for the delayed reply.

I used upstream-rebase kernel + dtb.
For kernel, I also passed video=“HDMI …” option, as posted earlier in this thread.

Hope it helps !