Re:_USB-C_DisplayPort_+_audio_bring-up_on_RK3399_(Ro ckPro64)_—_looking_for_reviewers
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 30 May 2026 20:07:24 UTC
hi!
I did a brief look over the diffs and honestly they look broadly fine.
please break them into a stack in reviews.freebsd.org and I'll assign
them the relevant tags / reviewers and let's get it into the tree.
-adrian
On Thu, 14 May 2026 at 20:11, Cristian A Trinidad Martinez
<ctmartinez5@outlook.com> wrote:
>
> USB-Zenmap in Kalilinux verified link rate BSD of dynamic lanes @ 60 Hz - 1920x1080(3.7,Gbps);
> ________________________________
> From: owner-freebsd-arm@FreeBSD.org <owner-freebsd-arm@FreeBSD.org> on behalf of Cristian A Trinidad Martinez <ctmartinez5@outlook.com>
> Sent: Thursday, May 14, 2026 23:05
> To: Jesper Schmitz Mouridsen <jsm@FreeBSD.org>; Bin C0d3x <b1nc0d3x@gmail.com>; freebsd-arm@freebsd.org <freebsd-arm@freebsd.org>
> Cc: freebsd-current@freebsd.org <freebsd-current@freebsd.org>
> Subject: Re: USB-C DisplayPort + audio bring-up on RK3399 (RockPro64) — looking for reviewers
>
> Go: *("https://pkg.kali.org/pkg/zenmap") during USB-Kernel up to bring-panel artifact frame side by cosmetic software source ;
> ________________________________
> From: owner-freebsd-arm@FreeBSD.org <owner-freebsd-arm@FreeBSD.org> on behalf of Jesper Schmitz Mouridsen <jsm@FreeBSD.org>
> Sent: Thursday, May 14, 2026 15:07
> To: Bin C0d3x <b1nc0d3x@gmail.com>; freebsd-arm@freebsd.org <freebsd-arm@freebsd.org>
> Cc: freebsd-current@freebsd.org <freebsd-current@freebsd.org>
> Subject: Re: USB-C DisplayPort + audio bring-up on RK3399 (RockPro64) — looking for reviewers
>
>
>
> On 5/14/26 17:27, Bin C0d3x wrote:
> > Hi,
> >
> >
> >
> >
> > I have a working USB-C DisplayPort + audio path for the RK3399
> >
> > (RockPro64) on -CURRENT that I'd like to start landing. Looking for
> >
> > a reviewer or two before I split this into Differential reviews.
> >
> >
> >
> > Hardware: Pine64 RockPro64, FUSB302B Type-C controller (i2c), Cadence
> >
> > MHDP DPTX block at 0xfec00000, RK3399 Type-C PHY, dw-hdmi for audio
> >
> > codec endpoint, I2S2 (8-ch on-chip-only) feeding both HDMI and the
> >
> > Cadence DP audio packetizer. Sink: XYM W156F1 portable monitor over
> >
> > USB-C; verified 1920x1080 @ 60 Hz, link rate HBR (2.7 Gbps), 2 lanes,
> >
> > plus stereo LPCM 48 kHz audio through panel speakers.
> >
> >
> >
> >
> > What's in the work (new drivers / subsystems):
> >
> >
> >
> >
> > sys/dev/iicbus/usb/fusb302.c
> >
> >
> > FUSB302B i2c driver: SRC/SNK PD policy state machine,
> >
> > DP Alt Mode VDM (Discover/Enter/DP_Status), role discovery,
> >
> > hard-reset, fault recovery. Modeled functionally on Linux's
> >
> > drivers/usb/typec/tcpm/fusb302.c -- not a port, clean
> >
> > re-implementation.
> >
> >
> >
> >
> > sys/sys/usbc/*
> >
> >
> > USB-PD policy state machine framework + TCPC abstraction so the
> > PD/VDM logic is driver-agnostic.
> >
> >
> >
> >
> > sys/arm64/rockchip/rk_typec_phy.c
> >
> >
> > RK3399 Type-C PHY bring-up for DP altmode (combo PHY mode
> >
> > switch, lane swap, pin assignments C/D/E/F).
> >
> >
> >
> >
> > sys/arm64/rockchip/rk_cdn_dp.c
> >
> >
> > Cadence MHDP DPTX scaffold: firmware load, 19-stage bring-up,
> > AUX over mailbox, link training (CR+EQ both lanes at HBR),
> >
> > DPCD, EDID readback, MSA/timing, audio packetizer with SDP
> >
> > infoframe, DPMS sleep/wake via scanout swap.
> >
> >
> >
> >
> > sys/arm64/rockchip/rk_hdmi_codec_stub.c
> >
> >
> > Tiny audio_dai shim that claims rockchip,rk3399-dw-hdmi so
> >
> > audio_soc's simple-audio-card codec phandle resolves -- enables
> >
> > /dev/dsp0 over both HDMI and DP audio paths.
> >
> >
> >
> >
> > sys/arm64/rockchip/rk_gpio.c (PIC method fix)
> >
> >
> > pic_disable_intr/enable_intr/pre_ithread/post_ithread, missing
> >
> > from the Rockchip GPIO PIC. Without them, level-sensitive
> >
> > sources (FUSB302 INT_N) starve the system with ~210 kHz storms
> >
> > during their ithread.
> >
> >
> >
> >
> > sys/dev/drm2/drm_fb_helper.c (small fix)
> >
> >
> > Don't strand on a safe-fallback fb after a late EDID arrives --
> >
> > the cdn-dp panel EDID only becomes available after the 19-stage
> >
> > bring-up, well after the kernel's first hotplug pass.
> >
> >
> >
> > Status:
> >
> >
> > * fusb302 + PD policy SM: stable. Source + sink contracts work,
> >
> > DP Alt Mode succeeds, retry/hard-reset paths exercised.
> >
> > * cdn-dp: panel lit at 1920x1080@60 HBR. Audio decodes through
> >
> > panel speakers via /dev/dsp0 with the rk_hdmi_codec_stub.
> >
> > * Trace output is gated behind dev.fusb302.0.debug /
> >
> >
> > dev.rk_cdn_dp.0.debug (default 0), so default dmesg is quiet.
> >
> > * Known open: transient panel artifacts ("black tears") during
> >
> > USB-C boot bring-up. Source-side fully clean; appears framer-
> >
> > side; cosmetic only.
> >
> >
> >
> >
> > Public reference:
> >
> >
> > https://github.com/b1nc0d3x/FBSD_DEV/tree/rkdev
> >
> >
> >
> >
> > That branch is a fork of freebsd/freebsd-src with ~30 commits on top.
> >
> > I plan to split into separate Differential reviews:
> >
> >
> > 1. rk_gpio PIC method fix (independent, useful on its own)
> >
> > 2. drm_fb_helper hotplug fix
> >
> >
> > 3. USB-PD policy SM framework (sys/sys/usbc/)
> >
> >
> > 4. fusb302 driver
> >
> >
> > 5. rk_typec_phy
> > 6. rk_cdn_dp (scaffold + bring-up)
> >
> >
> > 7. rk_cdn_dp DP audio + rk_hdmi_codec_stub
> >
> >
> > 8. RockPro64 DT overlays + module hookup
> >
> >
> >
> >
> > Each phase is self-contained and builds cleanly on the previous.
> >
> >
> >
> > Would anyone with arm64 / DRM / USB-C familiarity be willing to look
> >
> > at (1) and (2) first? They're the smallest and most clearly correct
> >
> > bits. I can post Differentials as soon as a reviewer says go.
> >
> >
> >
> > Thanks,
> >
> >
> > Kyle Crenshaw <B1nc0d3x@gmail.com>
> >
> I did similar work but too gpl infected so I never published it. I can
> test your work. Do you get any fusb302 interrupt on cold boot? Even the
> RockChip kernel on linux did not..
> Do you know my anxdp port from openbsd for the edp? the HW is in the
> pinebook pro, which share the usb-c graphics with rockpro64. With a
> minor u-boot change it works the same. So you should add support for the
> pinebook pro as well. If you do not have the hw i can test.
> Great work, congrats!
> /jsm
>