Need some help for compiling the DRM / Panfrost subtree code of JSM on the RockPro64 / Khadas Edge-V / RK3399

Hello.

I'm trying to compile the drm-subtree of JSM because I want to enable the panfrost driver on the RockPro64 / KHADAS EDGE-V / RK3399. The code is here :


he improved the old code,adding the modules. It works for FreeBSD 15-CURRENT. So,I've booted FreeBSD 14.2-RELEASE on the KHADAS EDGE-V board and I did :

Code:
marietto# git clone https://git.freebsd.org/src.git /usr/src
marietto# git clone https://github.com/jsm222/drm-subtree.git /usr/src/sys/dev/drm
marietto# cd /usr/src/sys/dev/drm/modules
marietto# make

and I get this error :

Istantanea_2025-09-17_11-43-20.jpg


I edited the Makefile in the subdir /usr/src/sys/dev/drm/modules/rockchip/rk_vop :

Code:
KMOD     = rk_vop
DRMROOT?=./../../..
RKROOT?=${DRMROOT}/rockchip
SRCTOP?=/usr/src
SYSDIR?=${SRCTOP}/sys
.include "${SYSDIR}/conf/kern.opts.mk"
CFLAGS= -I${RKROOT}  -I${DRMROOT}/drmkpi/include/  -I${DRMROOT}/core/include/ -include ${DRMROOT}/drmkpi/include/drm/drm_os_freebsd.h -I${DRMROOT}/core/include/uapi/ -Wno-error=gnu-pointer-arith -DFDT -Wno-error=format
rk_vop_if.h:
    awk -f /usr/src/sys/tools/makeobjops.awk ${RKROOT}/rk_vop_if.m -h
dw_hdmi_if.h:
    awk -f /usr/src/sys/tools/makeobjops.awk ${DRMROOT}/dw_hdmi_if.m -h

SRCS=device_if.h bus_if.h vnode_if.h pci_if.h opt_platform.h ofw_bus_if.h clknode_if.h rk_vop_if.h fb_if.h phynode_if.h ${RKROOT}/rk_vop.c dw_hdmi_if.h ${RKROOT}/rk_plane.c

with this :

Code:
KMOD     = rk_vop
DRMROOT?=./../../..
RKROOT?=${DRMROOT}/rockchip
SRCTOP?=/usr/src
SYSDIR?=${SRCTOP}/sys
.include "${SYSDIR}/conf/kern.opts.mk"
CFLAGS= -I${SYSDIR}/dev/drm/rockchip  -I${SYSDIR}/dev/drm/drmkpi/include/  -I${SYSDIR}/dev/drm/core/include/ -include ${SYDIR}/dev/drm/drmkpi/include/drm/drm_os_freebsd.h -I${SYSDIR}/dev/drm/core/include/uapi/ -Wno-error=gnu-pointer-arith -DFDT -Wno-error=format
rk_vop_if.h:
    awk -f /usr/src/sys/tools/makeobjops.awk ${SYSDIR}/dev/drm/rockchip/rk_vop_if.m -h
dw_hdmi_if.h:
    awk -f /usr/src/sys/tools/makeobjops.awk ${SYSDIR}/dev/drm/dw_hdmi_if.m -h

SRCS=device_if.h bus_if.h vnode_if.h pci_if.h opt_platform.h ofw_bus_if.h clknode_if.h rk_vop_if.h fb_if.h phynode_if.h ${SYSDIR}/dev/drm/rockchip/rk_vop.c dw_hdmi_if.h ${SYSDIR}/dev/drm/rockchip/rk_plane.c

but I've got this new error :

Code:
# make

make "/usr/src/share/mk/bsd.dep.mk" line 201: $OBJS inside $SRCTOP not allowed : /usr/src/sys/dev/drm/rockchip/rk_vop.o /usr/src/sys/dev/drm/rockchip/rk_plane.o

I think the code to alter is inside /usr/src/share/mk/bsd.dep.mk :


pIstantanea_2025-09-17_14-47-49.jpg


But I don't know how. I'm not a coder,please,help me. Thanks.
 
Update 1 :

Asked to ChatGPT and solved with this code :

Code:
marietto# mkdir /root/rk_vop_mod
marietto# cd /root/rk_vop_mod
marietto# nano Makefile

KMOD    = rk_vop

# Point to FreeBSD source
SYSDIR  ?= /usr/src/sys

# Point to your drm-subtree sources
DRMROOT ?= /usr/src/sys/dev/drm
RKROOT  ?= ${DRMROOT}/rockchip

# Tell make where to search for these source files
.PATH: ${RKROOT}

SRCS = \
        rk_vop.c \
        rk_plane.c \
        rk_vop_if.h \
        dw_hdmi_if.h \
        device_if.h \
        bus_if.h \
        vnode_if.h \
        pci_if.h \
        opt_platform.h \
        ofw_bus_if.h \
        clknode_if.h \
        fb_if.h \
        phynode_if.h

# Rules to generate headers from .m files
rk_vop_if.h:
    awk -f ${SYSDIR}/tools/makeobjops.awk ${RKROOT}/rk_vop_if.m -h

dw_hdmi_if.h:
    awk -f ${SYSDIR}/tools/makeobjops.awk ${RKROOT}/dw_hdmi_if.m -h

# Include FreeBSD module build framework
.include <bsd.kmod.mk>

# Extra include paths
CFLAGS += -I${RKROOT} \
          -I${DRMROOT}/drmkpi/include \
          -I${DRMROOT}/core/include \
          -include ${DRMROOT}/drmkpi/include/drm/drm_os_freebsd.h \
          -I${DRMROOT}/core/include/uapi \
          -DFDT \
          -Wno-error=gnu-pointer-arith \
          -Wno-error=format

but then,I've got these errors :


WhatsApp Image 2025-09-18 at 21.15.58.jpeg
 
Do you have any solution for memory fragment? A year ago I also got the Panfrost driver working on a rock-pi4. But the graphical interface died pretty quickly. I was using Freebsd 14.
 
Back
Top