Package: src:linux
Version: 7.1.3-1
Severity: normal
Tags: patch upstream

Dear Maintainer,

The riscv64 kernel configuration (debian/config/riscv64/config: shipped as 
/usr/src/linux-config-7.1/config.riscv64_none_riscv64.xz) has
    # CONFIG_DRM_AST is not set
As a result, systems whose only display output is an on-board ASPEED BMC 
graphics controller (AST2000/2100/2200/2300/2400/2500/2600, PCI vendor 1A03) 
have no usable console/GNOME on the physical head or KVM-over-IP. This is very 
common on server-class riscv64 boards (e.g. SpacemiT-based platforms) that 
inherit BMC hardware from the server world.
For comparison, DRM_AST is enabled as a module on every other Debian 
architecture that has PCI (amd64, arm64, ppc64el, s390x, ...), so this appears 
to be an oversight rather than a deliberate omission specific to riscv64.
Please enable CONFIG_DRM_AST as a module in the riscv64 kernel config.

-- Reproducer -----------------------------------------------------

Hardware: SpacemiT riscv64 board with on-board ASPEED AST2600 BMC
Kernel:   7.1.3+deb14-riscv64 (linux 7.1.3-1)
Userland: Debian forky/sid, GNOME on Wayland

  $ lspci -nn | grep -i aspeed
  0001:02:00.0 VGA compatible controller [0300]:
      ASPEED Technology, Inc. ASPEED Graphics Family [1a03:2000] (rev 52)

  $ lspci -k -s 0001:02:00.0
  0001:02:00.0 VGA compatible controller: ASPEED Technology, Inc.
      ASPEED Graphics Family (rev 52)
          Subsystem: ASPEED Technology, Inc. ASPEED Graphics Family
         (no "Kernel driver in use:" line)

  $ modinfo ast
  modinfo: ERROR: Module ast not found.

  $ grep DRM_AST /boot/config-$(uname -r)
  # CONFIG_DRM_AST is not set

  $ ls /sys/class/drm/
  version
  (no card0; no /dev/dri/card0; no /dev/fb0)

Result: gdm3/GNOME has no output on the physical KVM head.


-- Verification that the driver works when built -----------------

Rebuilding the in-tree driver as an out-of-tree module against the shipped 
headers is sufficient:
# apt-get install linux-headers-$(uname -r) linux-source-7.1 \
                    build-essential bc
  $ mkdir -p ~/ast-build && cd ~/ast-build
  $ tar -xf /usr/src/linux-source-7.1.tar.xz --wildcards \
        'linux-source-7.1/drivers/gpu/drm/ast/*'
  $ cd linux-source-7.1/drivers/gpu/drm/ast
  $ make -C /lib/modules/$(uname -r)/build M=$(pwd) modules \
        CONFIG_DRM_AST=m
  # cp ast.ko /lib/modules/$(uname -r)/kernel/drivers/gpu/drm/ast/
  # depmod -a && modprobe ast

Dmesg after loading:

  ast 0001:02:00.0: Using default configuration
  ast 0001:02:00.0: AST 2600 detected
  ast 0001:02:00.0: [drm] Using analog VGA
  ast 0001:02:00.0: [drm] Registered 1 planes with drm panic
  [drm] Initialized ast 0.1.0 for 0001:02:00.0 on minor 0
  ast 0001:02:00.0: [drm] fb0: astdrmfb frame buffer device

/dev/dri/card0 and /dev/fb0 appear, and GNOME comes up normally. All required 
deps (drm, drm_kms_helper, drm_shmem_helper, drm_client_lib, i2c-algo-bit, ttm) 
are already shipped in
linux-image-7.1.3+deb14-riscv64, so enabling DRM_AST=m has no new dependency 
implication.

-- Suggested patch (against debian/config/riscv64/config) --------

--- a/debian/config/riscv64/config
+++ b/debian/config/riscv64/config
@@
-# CONFIG_DRM_AST is not set
+CONFIG_DRM_AST=m

(Filenames in the source package may differ slightly; the change is to flip the 
DRM_AST line for the riscv64 flavour, matching amd64 /arm64.)

-- System Information --------------------------------------------

Debian Release: forky/sid
Architecture: riscv64 (riscv64)

Kernel: Linux 7.1.3+deb14-riscv64 (SMP w/80 CPU threads; PREEMPT)
Locale: LANG=zh_CN.UTF-8, LC_CTYPE=zh_CN.UTF-8 (charmap=UTF-8)
Shell: /bin/bash

Versions of packages linux-image-7.1.3+deb14-riscv64 depends on:
  (as reported by `apt-cache policy` / `dpkg -s`)

-- no debconf information

Thank you for your work on the Debian kernel.

Regards,
Wenbin Zheng


This message and any attachment are confidential and may be privileged or 
otherwise protected from disclosure. If you are not an intended recipient of 
this message, please delete it and any attachment from your system and notify 
the sender immediately by reply e-mail. Unintended recipients should not use, 
copy, disclose or take any action based on this message or any information 
contained in this message. Emails cannot be guaranteed to be secure or error 
free as they can be intercepted, amended, lost or destroyed, and you should 
take full responsibility for security checking. 
 
本邮件及其任何附件具有保密性质,并可能受其他保护或不允许被披露给第三方。如阁下误收到本邮件,敬请立即以回复电子邮件的方式通知发件人,并将本邮件及其任何附件从阁下系统中予以删除。如阁下并非本邮件写明之收件人,敬请切勿使用、复制、披露本邮件或其任何内容,亦请切勿依本邮件或其任何内容而采取任何行动。电子邮件无法保证是一种安全和不会出现任何差错的通信方式,可能会被拦截、修改、丢失或损坏,收件人需自行负责做好安全检查。

Reply via email to