CIX Sky1 Mainline Kernel Porting - Complete Report
Date : 2025-12-10
Base Kernel : Linux 6.18 (7d0a66e4bb90)
Board : Radxa Orion O6
Total Commits : 52
Subsystem
Commits
Status
Device Tree
12
✅ Complete
PCIe
10
✅ Complete
Display (DRM)
2
✅ Complete
USB / Type-C
5
✅ Complete
Audio / ASoC
8
✅ Complete
DMA-350
6
✅ Complete
DSP / Remoteproc
8
✅ Complete
GPU / Panthor
4
⚠️ In Progress
System (hwspinlock, nvmem, socinfo)
4
✅ Complete
IRQ / PDC
2
✅ Complete
Documentation
3
✅ Complete
1. Device Tree (12 commits)
Initial SoC/Board Support
Commit
Description
b5d931a3d0d0
arm64: dts: cix: Add CIX Sky1 SoC and Radxa Orion O6 device tree - Full SoC description with all peripherals, GIC interrupt cell fixes (3→4), binding headers
75fd506156ab
arm64: dts: cix: Fix mailbox addresses and enable both SCMI transports - Corrected mbox addresses, enable both SMC and mailbox SCMI
Commit
Description
7d40c75903d7
arm64: dts: cix: Enable 5GBE PCIe controllers on Orion O6 - Enable RTL8126 5GbE ports
b7e8e34322a4
arm64: dts: cix: Restore IO ranges and enable x16 slot on Orion O6 - Remove pci=realloc workaround, enable x16 slot
Commit
Description
65453acf76ec
arm64: dts: cix: Fix USB controller interrupt cell count - Fix 3→4 cell GIC interrupt format
1915c0b1d207
arm64: dts: cix: Re-enable USB3 PHYs disabled during debug
1e4565e3d845
arm64: dts: cix: Enable USBDP PHYs for display output on Orion O6 - Configure DP Alt mode PHYs
Commit
Description
11813507bb4a
arm64: dts: cix: Update GPU node for Panthor driver - Change compatible to cix,sky1-mali, add RCSU region
Commit
Description
fa1a89a54d3c
arm64: dts: cix: Enable 32-bit SCMI shmem I/O for Sky1
2. PCIe Subsystem (10 commits)
Commit
Description
4a3aadd4150d
pci: cadence: sky1: Fix capability finder API mismatch with mainline - Local helper functions for vendor API
65f00beb25f8
pci: cadence: sky1: Fix ATU/ECAM register layout for CIX Sky1 SoC - ATU base 0xa000, stride 0x80, DESC bits, SBSA ECAM mode
f6bfff52b53e
pci: cadence: sky1: Enable WiFi PCIe controller (pcie_x2_rc)
73d46cd021b1
pci: cadence: sky1: Use vendor-style PCI resource assignment - Custom sky1_pci_host_probe() using simpler vendor path
e9d875c9d6b9
pci: cadence: sky1: Fail probe gracefully when PCIe link is down - Handle empty slots
Cadence PCIe Core Changes
Commit
Description
2f6f830c538b
pci: cadence: Add MSG region support for ATU layout - Region 1 for PCIe messaging
Commit
Description
1242d7a4e39e
PCI: Add quirk to disable MSI for CIX CD8180 PCIe root ports - Root port MSI-X BAR bug workaround
Result : All 5 PCIe controllers working (NVMe, WiFi, 2x 5GbE, x16 slot), MSI/MSI-X via ITS, no boot parameters needed.
3. Display / DRM (2 commits)
Commit
Description
4d72f735c7b2
drm: cix: Add CIX Sky1 display drivers (linlon-dp, trilin-dpsub) - DPU + DP TX drivers ported from vendor 6.6, API changes: DRM_FBDEV_DMA_DRIVER_OPS, fb_create 4th param, timer_container_of()
66f8cc5ba556
docs: Add CIX Sky1 driver porting documentation
Components :
linlon-dp.ko - Linlon Display Processing Unit
trilin-dpsub.ko - Trilinear DP TX subsystem
cix_virtual.ko - Virtual display connector
Result : HDMI output working at 1920x1280@60Hz via DP-to-HDMI.
4. USB / Type-C (5 commits)
Commit
Description
68675c6430ed
usb: cdns3: Add CDNSP platform driver for Cadence USBSSP controllers - New cdnsp-plat.c for dual-role USB, PHY setup, role management
RTS5453 Type-C PD Controller
Commit
Description
9ab5c6e2d91c
usb: typec: Add Realtek RTS5453 USB PD controller driver - I2C driver for PD negotiation, role switching, DP Alt mode, HPD handling
Commit
Description
e81b407a9ad7
docs: Add USB Type-C and CDNSP driver documentation
Result : All 10 USB ports working, Type-C with OTG and role switching, DP Alt mode support.
5. Audio / ASoC (8 commits)
Commit
Description
c1fb6d689d0e
dma/clk/reset/sound: Add CIX Sky1 audio subsystem support - AUDSS clock controller (41 clocks), AUDSS reset controller (16 resets), Cadence I2S drivers (mc/sc), Sky1 ASoC machine driver
81fba0226856
ASoC: cix: card-utils: Default clock provider when not specified in DT - Fix EINVAL from set_fmt()
Commit
Description
18e2ba072369
sound: hda: Add CIX Sky1 IPBLOQ HDA controller driver - Realtek ALC256 for 3.5mm jack, polling mode (RIRBSTS bug), board init verbs
Commit
Description
122e471d95ee
dma: arm-dma350: implement cyclic DMA for audio streaming - Hardware command linking, peripheral flow control
4bf44e0a82ee
dma: arm-dma350: Fix address translation and add reserved memory support - DMA-350 memory view translation (reg 0x20000000+, RAM 0x30000000+)
5a56e9e9469c
dma: arm-dma350: Fix interrupt handling for cyclic DMA - Global INTREN, AUDSS CRU IRQ routing
cc2cdfb395e7
dma: arm-dma350: Fix IRQ clearing and use minimal cyclic command format - STAT write-1-to-clear, vendor command format
4c946e5a1800
dma: arm-dma350: Fix audio pops by disabling register INTREN for cyclic DMA
Result : HDMI audio working, HDA 3.5mm jack working, no audio pops.
6. DSP / Remoteproc (8 commits)
Commit
Description
7a07a9103fbc
Enable Cix Audio DSP and Mailbox - Port cix_dsp_rproc driver
5e166d1f0971
remoteproc: cix_dsp_rproc: Fix build for mainline 6.18 - syscon API, void remove()
94670347cc8d
Fix Cix DSP memory mapping - Map vdev0buffer and vrings in addr_init
807550b276cb
Fix Cix DSP reserved memory DA - Identity map 0xce000000 for vrings
Commit
Description
b685724efec5
dma-buf: heaps: Add DSP heap driver for CIX Sky1 - /dev/dma_heap/dsp for DSP shared memory
RPMSG for DSP Communication
Commit
Description
278f808c8c64
rpmsg: char: Add Cix DSP audio services - audio-decoder/encoder in id_table
29bac155ce45
rpmsg: virtio: Fix DMA address translation for remoteproc DSP - sg_dma_address with correct DA
6d2b348e4474
rpmsg: Add rpmsg-lite RX avail ring support for CIX DSP - rpmsg-lite avail ring receive path
af7f6d12f8a1
rpmsg: virtio: Add CIX DSP quirk for bidirectional TX vring - rpmsg-lite in-place response handling
721ca17761b8
WIP: rpmsg: Add deferred vq0 kick and debug prints for DSP link-up
Result : DSP boots and runs (/sys/class/remoteproc/remoteproc0/state = running), rpmsg services available.
7. GPU / Panthor (4 commits)
Commit
Description
b3268378e7f3
drm/panthor: Add Sky1 platform-specific initialization - Reset control, RCSU mapping, PHBA config, LS_MEM counter workaround, PWR_OVERRIDE1
d971bb1124ec
drm/panthor: Sky1 G720 support with debug instrumentation - HOST_POWER regs, legacy SHADER_PWRON, poweroff_timer=0, G720 CSF changes
87744a10d059
drm/panthor: Remove debug instrumentation for Sky1 GPU - Clean up verbose logging
85f815f0a83f
drm/panthor: Remove Sky1 legacy shader power paths
Status : EGL context works (test_panthor passes), job execution times out. See docs/csf-interface-comparison.md for analysis.
8. System Infrastructure (4 commits)
Commit
Description
97730263cf1e
hwspinlock: Add Sky1 hardware spinlock driver - 100 locks for IPC synchronization
22ab4dc4878d
hwspinlock: sky1: Add debugfs status interface
Commit
Description
25a8e2e55631
nvmem: Add CIX Sky1 eFuse driver - eFuse access via firmware
Commit
Description
bac67f39f122
soc: cix: Add Sky1 SoC information driver - Board ID (PHECDA Rev A), firmware versions
Commit
Description
c82928ac8d12
Enable Cix Sky1 PDC, Thermal, and Device Tree nodes - Power Domain Controller IRQ chip
b227ae239084
irqchip/pdc: Make PDC opt-in via explicit interrupt-parent
10. Documentation (3 commits)
Commit
Description
66f8cc5ba556
docs: Add CIX Sky1 driver porting documentation
e81b407a9ad7
docs: Add USB Type-C and CDNSP driver documentation
2fc5c8bd9c9c
docs: Update TODO with Panthor GPU job timeout investigation
Files Added/Modified Summary
New Drivers (from vendor/DKMS)
Location
Driver
Source
drivers/pci/controller/cadence/pci-sky1.c
PCIe Host
Vendor 6.6
drivers/usb/cdns3/cdnsp-plat.c
USB Platform
New (mainline-style)
drivers/usb/typec/rts5453.c
USB-PD Controller
Vendor 6.6
drivers/gpu/drm/cix/linlon-dp/
DPU
Vendor 6.6
drivers/gpu/drm/cix/dptx/
DP TX
Vendor 6.6
drivers/clk/cix/clk-sky1-audss.c
AUDSS Clocks
Vendor 6.6
drivers/reset/reset-sky1-audss.c
AUDSS Resets
Vendor 6.6
drivers/remoteproc/cix_dsp_rproc.c
DSP Remoteproc
Vendor 6.6
drivers/dma-buf/heaps/dsp_heap.c
DSP Heap
Vendor 6.6
drivers/hwspinlock/sky1_hwspinlock.c
Hwspinlock
Vendor 6.6
drivers/nvmem/sky1-nvmem.c
eFuse NVMEM
Vendor 6.6
drivers/soc/cix/sky1-socinfo.c
SoC Info
Vendor 6.6
drivers/irqchip/irq-sky1-pdc.c
PDC IRQ
Vendor 6.6
sound/pci/hda/hda_ipbloq.c
HDA Controller
Vendor 6.6
sound/soc/cix/
ASoC Platform
Vendor 6.6
Modified Mainline Drivers
Location
Change
drivers/dma/arm-dma350.c
Cyclic DMA, address translation, AUDSS IRQ routing
drivers/gpu/drm/panthor/
Sky1/G720 support, HOST_POWER, legacy power paths
drivers/pci/controller/cadence/pcie-cadence*.c
MSG region, Sky1 ATU layout
drivers/pci/quirks.c
CIX CD8180 MSI disable quirk
drivers/rpmsg/virtio_rpmsg_bus.c
rpmsg-lite avail ring, DMA address fix
drivers/remoteproc/remoteproc_virtio.c
Don't zero vrings for rpmsg-lite
Current (none needed) :
console=ttyAMA2,115200 earlycon=pl011,0x040d0000 clk_ignore_unused
Previously Required (now removed) :
pci=nomsi - Fixed by MSI quirk
pci=realloc - Fixed by vendor-style resource assignment
Feature
Status
Boot
✅ Clean boot, no workarounds
PCIe
✅ All 5 controllers, MSI/MSI-X via ITS
NVMe
✅ Boot drive working
WiFi
✅ RTL8852BE working
Ethernet
✅ Both RTL8126 5GbE ports
USB
✅ All 10 ports, Type-C OTG
Display
✅ HDMI 1920x1280@60Hz
Audio
✅ HDMI + 3.5mm jack
DSP
✅ Boots, rpmsg services
Thermal
✅ 5 zones via SCMI
GPIO
✅ All controllers
Watchdog
✅ Working
Feature
Status
Blocker
GPU
⚠️ EGL works, jobs timeout
shader_pwractive=0x0, MCU HOST_POWER issue
SOF Audio
⚠️ Drivers ported
No firmware shipped
Device Tree: 12 commits
PCIe: 10 commits
Audio/DMA: 14 commits (ASoC + DMA-350 + DSP)
USB: 5 commits
Display: 2 commits
GPU: 4 commits
System: 4 commits
IRQ: 2 commits
Docs: 3 commits
Build Scripts: 1 commit
─────────────────────────────
Total: 52 commits