在 2026-03-03二的 16:15 +0800,Joey Lu写道: > > On 2/10/2026 8:02 PM, Icenowy Zheng wrote: > > 在 2026-02-09星期一的 16:45 +0800,Joey Lu写道: > > > On 2/6/2026 11:09 PM, Icenowy Zheng wrote: > > > > 在 2026-01-29星期四的 12:05 +0800,Joey Lu写道: > > > > > ========== 8< ============ > > > > > +#endif > > > > > diff --git a/drivers/gpu/drm/nuvoton/ma35_regs.h > > > > > b/drivers/gpu/drm/nuvoton/ma35_regs.h > > > > > new file mode 100644 > > > > > index 000000000000..0f4a7a13e7d8 > > > > > --- /dev/null > > > > > +++ b/drivers/gpu/drm/nuvoton/ma35_regs.h > > > > > @@ -0,0 +1,88 @@ > > > > > +/* SPDX-License-Identifier: GPL-2.0+ */ > > > > > +/* > > > > > + * Nuvoton DRM driver > > > > > + * > > > > > + * Copyright (C) 2026 Nuvoton Technology Corp. > > > > > + * > > > > > + * Author: Joey Lu <[email protected]> > > > > > + */ > > > > > + > > > > > +#ifndef _MA35_REGS_H_ > > > > > +#define _MA35_REGS_H_ > > > > > + > > > > > +#define MA35_FRAMEBUFFER_CONFIG 0x1518 > > > > Please check my Verisilicon DC8200 driver, which is already > > > > part of > > > > drm-misc-next now. > > > > > > > > The display controller here seems to be a earlier one from > > > > Verisilicon.it looks like a DC8000, or maybe a more earlier > > > > one? > > > The DCU is a Vivante DCUltra IP rather than a DC8000 series. > > > > > > It's an earlier generation display controller and was customized > > > for > > > Nuvoton, so it doesn't have a public model ID. > > > > > > Because of that lineage, parts of the register layout and > > > functionality > > > remain similar to older DC IPs. > > The kernel seems to dislike different drivers for similar IPs. > > > > > Please refer to MA35D1 datasheet for more details. > > I checked it, and the register definitions looks compatible with > > DC8000 > > registers at [1]. However no identification information is shown in > > the > > manual.
I brought up my MYIR MYD-LMA35 (with its stock OS yet), and I got the following register value readings: ``` root@myd-lma35-emmc:~# ./busybox-armv7l devmem 0x40260020 0x00000000 # chip id root@myd-lma35-emmc:~# ./busybox-armv7l devmem 0x40260024 0x00005560 # chip rev root@myd-lma35-emmc:~# ./busybox-armv7l devmem 0x40260028 0x20200807 # date code root@myd-lma35-emmc:~# ./busybox-armv7l devmem 0x40260030 0x00000305 # customer id root@myd-lma35-emmc:~# ./busybox-armv7l devmem 0x40260098 0x0000000C # patch rev root@myd-lma35-emmc:~# ./busybox-armv7l devmem 0x402600a4 0x00211110 # info root@myd-lma35-emmc:~# ./busybox-armv7l devmem 0x402600a8 0x02000002 # product id root@myd-lma35-emmc:~# ./busybox-armv7l devmem 0x402600e8 0x00000000 ``` Most of these values look okay, although the chip id register reads out 0x0 (although this is weird, this matches how this IP is called -- DCUltraLite, without any number). Decoding 0xA4 with the the document from Eswin results: - DC is included (of course ;-) ) - Single AXI - AHB interface - SingleGPU configuration - AXI bus width 128bit Decoding 0xA8 (which seems to be a more new and detailed IP name related register) results: - Extra letter is "L-Lite" (well a little odd, because it should be "UL-UltraLite"?) - Product number is 0 - Product type is DC Looks like the only bad thing here is the IP's numerical name is 0, but matching revision 5560 customer 305 should be okay for this IP? (BTW the revision number is between two recognized numbers in DC8000 driver from Eswin [1] (5551/5701), and the two numbers in DC8000 driver are strictly smaller than the two numbers in DC8200 driver from T-Head [2] (5720/5721), indicates that it should be something similar to DC8000, which matches my previous thoughts; note that these two drivers both only match the 2 known numbers, so this IP is surely neither DC8000 nor DC8200) [1] https://github.com/rockos-riscv/rockos-kernel/blob/rockos-v6.6.y/drivers/gpu/drm/eswin/es_dc_hw.c [2] https://github.com/revyos/th1520-linux-kernel/blob/th1520-lts/drivers/gpu/drm/verisilicon/vs_dc_hw.c > > > > I may get a MA35D1 board after the Lunar New Year (although it > > looks a > > little expensive), is it easy to bring up mainline kernal on > > arbitary > > MA35D1 boards? > > > > [1] > > https://github.com/milkv-megrez/rockos-u-boot/blob/c9221cf2fa77d39c0b241ab4b030c708e7ebe279/drivers/video/eswin/eswin_dc_reg.h > Our team is actively working on upstreaming support for MA35D1. It is > possible to bring up the mainline kernel on arbitrary MA35D1 boards, > but > for the best experience I strongly recommend using our Buildroot[1] > or > Yocto[2] tooling available on the official GitHub. These provide > board-specific configurations and greatly simplify the process. > > If you decide to get an MA35D1 board yourself, our Buildroot/Yocto > setup > will help you get started quickly and ensure you have the right > patches > and configurations in place. > > Currently, the mainline kernel version is 6.6, which is sufficient > for > checking registers and basic functionality. For more complete feature > support, our Buildroot/Yocto tooling remains the recommended path. Ah I mean upstream kernel here. But it looks like it has at least decent support? (Well I think otherwise the display driver won't be sent to mailing list either) > > [1] https://github.com/OpenNuvoton/buildroot_2024 > > [2] https://github.com/OpenNuvoton/MA35D1_yocto-v5.0 > > Best regards, > > Joey
