Skip to content

w1 / onewire on rk3399 requires 'setexpr' in U-Boot or a workaround on rock se4 #7879

@NiklausS

Description

@NiklausS

Creating a bug report/issue

  • I have searched the existing open and closed issues

Required Information

  • DietPi version | cat /boot/dietpi/.version
    G_DIETPI_VERSION_CORE=9
    G_DIETPI_VERSION_SUB=20
    G_DIETPI_VERSION_RC=1
    G_GITBRANCH='master'
    G_GITOWNER='MichaIng'

  • Distro version | trixie

  • Kernel version | Linux DietPi 6.12.61-current-rockchip64 Fix warning when running scp over openssh-server #1 SMP PREEMPT Sat Dec 6 21:25:03 UTC 2025 aarch64 GNU/Linux

  • SBC model | ROCK 4 (aarch64)

  • Power supply used | (EG: 5V 1A RAVpower)

  • SD card used | (EG: SanDisk ultra)

Additional Information (if applicable)

onewire support and u-boot regression
when defining
param_w1_pin=xxx
overlays=rk3399-w1-gpio
is not working

Steps to reproduce

when setting up w1 - onewire, the current boot results in:

 ## Executing script at 09000000`
Unknown command 'setexpr' - try 'help'
Unknown command 'setexpr' - try 'help'

Expected behaviour

  • ...

Actual behaviour

  • ...

Fix

  1. enable setexpr into u-boot build
    or
  2. Change the params dietpiEnv.txt a bit more specific to
...
#param_w1_bank=gpio4, param_w1_pin=0x16 <- ABCD-> C=2  Pin=6 -> 2*8+6 = 22 => GPIO4_C6
overlays=rk3399-w1-gpio  # Radxa-spezifisch
param_w1_bank=gpio4
param_w1_pin=0x1E
...

and change rockchip-fixup.cmd - remove all lines with setexpr and change the section for w1

...
if test -n "${param_w1_pin}"; then
    fdt get value tmp_pinctrl /__symbols__ ${param_w1_bank}
    fdt get value tmp_phandle ${tmp_pinctrl} phandle
    echo "fdt set /onewire@0 gpios <${tmp_phandle} ${param_w1_pin} 0 0"
    fdt set /onewire@0 gpios "<${tmp_phandle} ${param_w1_pin} 0 0>"
fi
...

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions