Jump to content

Kevin su

Members
  • Posts

    9
  • Joined

  • Last visited

Posts posted by Kevin su

  1. I’m really happy to share that I finally managed to port the SV6256P (SSV6X5X) SDIO Wi-Fi driver from the legacy Linux 4.4 kernel to modern kernels.

    This repository contains my working port for Linux kernel 6.12 and newer, with updated mac80211/cfg80211 integration so the driver can build and run on recent Armbian systems.

    The chipset is commonly used in many low-cost TV boxes and embedded devices, but the original driver only supported legacy kernels (4.4).

    Now it’s functional again on modern systems, at least on my tested hardware (Allwinner H616 / X96 Q via SDIO).

     

    Repository link:
    https://github.com/cdhigh/armbian_sv6256p

     

    I’m quite excited to finally see this old Wi-Fi chip working on a 6.x kernel 🙂
     

    [    4.774151] ssv6x5x: importing configuration from /lib/firmware/ssv6x5x-wifi.cfg
    [    4.778281] tu_ssv6xxx_sdio_init, probe @(____ptrval____)
    [    4.779483] TU_SSV6XXX_SDIO mmc3:0001:1: Probing SDIO bus
    [    4.779513] ssv6xxx_set_sdio_clk: set sdio clk 25000000Hz
    [    4.799668] TU_SSV6XXX_SDIO mmc3:0001:1: vendor = 0x3030 device = 0x3030
    [    4.825421] TU_SSV6XXX_SDIO mmc3:0001:1: dataIOPort 0x10000 regIOPort 0x10020
    [    4.849181] TU_SSV6XXX_SDIO mmc3:0001:1: dataIOPort 0x10000 regIOPort 0x10020
    [    4.849530] TU_SSV6XXX_SDIO mmc3:0001:1: CHIP ID: SSV6006C0
    [    4.850373] ssv6x5x ops chk: tx=1 start=1 stop=1 config=1 add_if=1 rm_if=1 conf_filter=1 wake_txq=1
    [    4.850402] ssv6x5x chanctx chk: any=1 all=0 emulate=1 add=1 rm=1 chg=1 assign=0 unassign=0
    [    4.850409] ssv6x5x chanctx ops set but not complete
    [    4.850424] Attach SSV6006 family HAL function
    [    4.858285] MAC address from e-fuse
    [    4.858311] EFUSE configuration
    [    4.858315] Read efuse chip identity[79000000]
    
    ip link show:
    6: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DORMANT group default qlen 1000
        link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff

     

  2. @Nick A

    Thanks for the reply. I don’t have enough Linux knowledge, so should I just wait for your new release?
    My box isn’t an X96Q — it’s a generic no-name one — but after trying many, many images, I found that the version you compiled happens to work perfectly and runs smoothly. So far I haven’t found any issues (the only thing missing is Wi-Fi, but that’s not a problem with your build: SV6256P). Even other images made for X96Q LPDDR3 by different people have all kinds of problems.

     

    Another small issue:

    your current compilation option is fully preemptive scheduling. This option is not suitable for server use. I suggest changing it to voluntary preemption or non-preemptive, thank you.

     

    The option of your images:

    CONFIG_PREEMPT_BUILD=y
    # CONFIG_PREEMPT_NONE is not set
    # CONFIG_PREEMPT_VOLUNTARY is not set
    CONFIG_PREEMPT=y
    # CONFIG_PREEMPT_RT is not set
    CONFIG_PREEMPT_COUNT=y
    CONFIG_PREEMPTION=y
    # CONFIG_PREEMPT_DYNAMIC is not set
    # CONFIG_SCHED_CORE is not set
    # CONFIG_SCHED_CLASS_EXT is not set

     

  3. @Nick A

    Could you create a current version image? I’ve tested all the images I could find, and only yours runs perfectly.

    Armbian-unofficial_25.05.0-trunk_X96q-lpddr3-v1-3_bookworm_edge_6.12.11_server.img.xz

     

    However, since this is an "edge" build, it doesn’t include MT7601U wifi card support, while the current version does. I tried compiling it myself, but ran into many errors and couldn’t complete the build.

    If you could create a "current" branch image, that would be ideal. Thanks in advance!

×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines