Switch the OSPv2 (mxl25641-hdk-6) and Freedom (wnc-freedom) eMMC flash
flow to the FEAT-29 U-Boot update script, replacing the legacy OSPv2
update_fullimage path and the Freedom untar/flash sysupgrade path. This
exercises the image/update tooling introduced in prplos!1964.
The flow tftpboots the per-board update_script.itb, sources it and runs
update_prpl against the FEAT-29 OS artifacts:
- OSPv2: PRPL_OSP_v2-wgrtd159be_b_wav700-ext4.img (4G variant)
- Freedom: prpl_freedom-kernel.itb + prpl_freedom-rootfs.itb
update_rescue_bank is set to yes so both OS banks carry the same image
and a bank failover cannot boot a stale rootfs. U-Boot/RBE/XBL/SMD are
left unset: those are one-time migration inputs and must not be
reflashed on every refresh. Boards are expected to already be on the
prpl flash layout. Hand-off to Linux uses run bootcmd (bootprpl/bootipq)
instead of reset, which avoids a power cycle and the labgrid autoboot
re-interrupt hazard.
init_command_timeout bounds the whole init_commands sequence and is set
deliberately tight, per board, so a network/perf regression (e.g. image
TFTP throughput roughly halving) trips the timeout instead of silently
passing, while still absorbing TFTP first-packet jitter. Validated runs
executed the init_commands in:
- OSPv2: ~30s (update_script TFTP ~10s + update_prpl ~18s) -> 60s
- Freedom: ~37s (sleep 5 + update_script TFTP ~3.5s + update_prpl ~24s,
two images to both banks) -> 75s
The rootfs_data overlay is erased before update_prpl so every refresh
boots from a clean overlay; update_prpl itself leaves rootfs_data
untouched. The block offsets are hardcoded from each board's GPT because
the target U-Boot has no part command to derive them:
- OSPv2: mmc erase 0x86c00 0x10000 (32 MiB, UPDK 9.2.0)
- Freedom: mmc erase 0x534022 0x40000 (128 MiB)
Because update_prpl needs both the update script and the OS image over
TFTP, generalise the testbed/cdrouter firmware copy to a list via the
new TFTP_IMAGE_FILENAMES variable (falling back to TFTP_IMAGE_FILENAME),
rather than overloading TFTP_IMAGE_UNPACK_COMMAND. The Freedom testbed
job now drives the wnc-freedom-emmc target instead of initramfs, so the
now-unused wnc-freedom-initramfs labgrid target is dropped.
Flip the wnc-freedom and mxl25641-hdk-6 testbed runner tags to the -sfl
variant (dut-wnc-freedom-sfl, dut-mxl25641-hdk-6-b-sfl), to make it
clear, that those devices are converted to the prpl Standard Flash
Layout.
References: FEAT-29
Closes: PCF-2644, PCF-2645
Assisted-by: claude:opus-4-8:1m-context
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
214 lines
6.8 KiB
YAML
214 lines
6.8 KiB
YAML
targets:
|
|
|
|
arcadyan-mozart-initramfs:
|
|
resources:
|
|
ModbusTCPCoil:
|
|
host: quido.testbed-02.vpn.true.cz
|
|
coil: 7
|
|
managed_coils: 8
|
|
exclusive_coil_mode: True
|
|
write_multiple_coils: True
|
|
RawSerialPort:
|
|
port: "/dev/arcadyan-mozart"
|
|
drivers:
|
|
ModbusCoilDriver: {}
|
|
DigitalOutputPowerDriver: {}
|
|
SerialDriver:
|
|
txdelay: 0.01
|
|
ShellDriver:
|
|
console_ready: Please press Enter to activate this console.
|
|
prompt: 'root@[\w()]+:[^ ]+ '
|
|
login_prompt: built-in shell (ash)
|
|
await_login_timeout: 15
|
|
username: kingbanik
|
|
UBootDriver:
|
|
prompt: 'MT7988> '
|
|
interrupt: '0'
|
|
init_commands:
|
|
- setenv ipaddr 192.168.1.1
|
|
- setenv serverip 192.168.1.2
|
|
- tftpboot $loadaddr prplos-mediatek-filogic-arcadyan_mozart-initramfs.itb
|
|
boot_command: bootm $loadaddr
|
|
UBootStrategy: {}
|
|
|
|
prpl-haze-initramfs:
|
|
resources:
|
|
ModbusTCPCoil:
|
|
host: quido.testbed-02.vpn.true.cz
|
|
coil: 4
|
|
managed_coils: 8
|
|
exclusive_coil_mode: True
|
|
write_multiple_coils: True
|
|
RawSerialPort:
|
|
port: "/dev/prpl-haze"
|
|
drivers:
|
|
ModbusCoilDriver: {}
|
|
DigitalOutputPowerDriver: {}
|
|
SerialDriver: {}
|
|
ShellDriver:
|
|
console_ready: Please press Enter to activate this console.
|
|
prompt: 'root@[\w()]+:[^ ]+ '
|
|
login_prompt: built-in shell (ash)
|
|
await_login_timeout: 16
|
|
username: kingbanik
|
|
UBootDriver:
|
|
prompt: 'IPQ807x# '
|
|
init_commands:
|
|
- setenv serverip 10.0.0.1
|
|
- setenv ipaddr 10.0.0.2
|
|
boot_command: tftpboot prplos-qualcommax-ipq807x-prpl_haze-initramfs-uImage.itb && bootm
|
|
boot_command_delay: 3
|
|
UBootStrategy: {}
|
|
|
|
prpl-haze-emmc:
|
|
resources:
|
|
ModbusTCPCoil:
|
|
host: quido.testbed-02.vpn.true.cz
|
|
coil: 4
|
|
managed_coils: 8
|
|
exclusive_coil_mode: True
|
|
write_multiple_coils: True
|
|
RawSerialPort:
|
|
port: "/dev/prpl-haze"
|
|
drivers:
|
|
ModbusCoilDriver: {}
|
|
DigitalOutputPowerDriver: {}
|
|
SerialDriver: {}
|
|
ShellDriver:
|
|
console_ready: Please press Enter to activate this console.
|
|
prompt: 'root@[\w()]+:[^ ]+ '
|
|
login_prompt: built-in shell (ash)
|
|
await_login_timeout: 16
|
|
username: kingbanik
|
|
UBootDriver:
|
|
prompt: 'IPQ807x# '
|
|
init_commands:
|
|
- setenv serverip 10.0.0.1
|
|
- setenv ipaddr 10.0.0.2
|
|
- sleep 5
|
|
- setenv untar_addr_kernel; setenv untar_addr_root; echo
|
|
- tftpboot prplos-ipq807x-generic-prpl_haze-squashfs-sysupgrade.bin
|
|
- untar 0x$fileaddr 0x$filesize kernel root
|
|
- if test -n $untar_addr_kernel; then flash "0:HLOS" 0x$untar_addr_kernel 0x$untar_size_kernel; else echo "kernel is not found"; fi
|
|
- if test -n $untar_addr_root; then flash "rootfs" 0x$untar_addr_root 0x$untar_size_root; else echo "rootfs is not found"; fi
|
|
- flasherase rootfs_data
|
|
UBootStrategy: {}
|
|
|
|
arcadyan-mozart-emmc:
|
|
resources:
|
|
ModbusTCPCoil:
|
|
host: quido.testbed-02.vpn.true.cz
|
|
coil: 7
|
|
managed_coils: 8
|
|
exclusive_coil_mode: True
|
|
write_multiple_coils: True
|
|
RawSerialPort:
|
|
port: "/dev/arcadyan-mozart"
|
|
drivers:
|
|
ModbusCoilDriver: {}
|
|
DigitalOutputPowerDriver: {}
|
|
SerialDriver:
|
|
txdelay: 0.01
|
|
ShellDriver:
|
|
console_ready: Please press Enter to activate this console.
|
|
prompt: 'root@[\w()]+:[^ ]+ '
|
|
login_prompt: built-in shell (ash)
|
|
await_login_timeout: 16
|
|
username: kingbanik
|
|
UBootDriver:
|
|
prompt: 'MT7988> '
|
|
interrupt: '0'
|
|
init_commands:
|
|
- setenv ipaddr 192.168.1.1
|
|
- setenv serverip 192.168.1.2
|
|
- setenv bootfile_upg prplos-mediatek-filogic-arcadyan_mozart-squashfs-sysupgrade.itb
|
|
- setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_production
|
|
boot_command: run boot_production
|
|
UBootStrategy: {}
|
|
|
|
wnc-freedom-emmc:
|
|
resources:
|
|
ModbusTCPCoil:
|
|
host: quido.testbed-02.vpn.true.cz
|
|
coil: 1
|
|
managed_coils: 8
|
|
exclusive_coil_mode: True
|
|
write_multiple_coils: True
|
|
RawSerialPort:
|
|
port: "/dev/wnc-freedom"
|
|
drivers:
|
|
ModbusCoilDriver: {}
|
|
DigitalOutputPowerDriver: {}
|
|
SerialDriver: {}
|
|
ShellDriver:
|
|
console_ready: Please press Enter to activate this console.
|
|
prompt: 'root@[\w()]+:[^ ]+ '
|
|
login_prompt: built-in shell (ash)
|
|
login_timeout: 120
|
|
await_login_timeout: 16
|
|
username: kingbanik
|
|
UBootDriver:
|
|
prompt: 'IPQ9574# '
|
|
init_command_timeout: 75
|
|
init_commands:
|
|
- setenv serverip 10.0.0.1
|
|
- setenv ipaddr 10.0.0.2
|
|
- setenv loadaddr 0x50000000
|
|
- sleep 5
|
|
- tftpboot ${loadaddr} prplos-ipq95xx-generic-prpl_freedom-update_script.itb
|
|
- source ${loadaddr}:update-script
|
|
- setenv tftppath
|
|
- setenv img_kernel prplos-ipq95xx-generic-prpl_freedom-kernel.itb
|
|
- setenv img_rootfs prplos-ipq95xx-generic-prpl_freedom-rootfs.itb
|
|
- setenv img_uboot
|
|
- setenv img_xbl
|
|
- setenv img_smd
|
|
- setenv update_rescue_bank yes
|
|
- mmc dev 0
|
|
- mmc erase 0x534022 0x40000
|
|
- run update_prpl
|
|
boot_command: run bootcmd
|
|
UBootStrategy: {}
|
|
|
|
mxl25641-hdk-6-emmc:
|
|
resources:
|
|
ModbusTCPCoil:
|
|
host: quido.testbed-02.vpn.true.cz
|
|
coil: 0
|
|
managed_coils: 8
|
|
write_multiple_coils: True
|
|
exclusive_coil_mode: True
|
|
RawSerialPort:
|
|
port: "/dev/mxl25641-hdk-6"
|
|
drivers:
|
|
ModbusCoilDriver: {}
|
|
DigitalOutputPowerDriver: {}
|
|
SerialDriver:
|
|
txdelay: 0.01
|
|
ShellDriver:
|
|
console_ready: Please press Enter to activate this console.
|
|
prompt: 'root@[\w()]+:[^ ]+ '
|
|
login_prompt: built-in shell (ash)
|
|
username: kingbanik
|
|
UBootDriver:
|
|
prompt: 'Lightning #'
|
|
console_decodeerrors: 'backslashreplace'
|
|
init_command_timeout: 60
|
|
init_commands:
|
|
- setenv serverip 192.168.1.2
|
|
- setenv ipaddr 192.168.1.1
|
|
- setenv loadaddr 0x8200000
|
|
- tftpboot ${loadaddr} prplos-intel_x86-lgm-PRPL_OSP_v2-update_script.itb
|
|
- source ${loadaddr}:update-script
|
|
- setenv tftppath
|
|
- setenv img_kernel prplos-intel_x86-lgm-PRPL_OSP_v2-wgrtd159be_b_wav700-ext4.img
|
|
- setenv img_uboot
|
|
- setenv img_rbe
|
|
- setenv img_smd
|
|
- setenv update_rescue_bank yes
|
|
- mmc dev 0
|
|
- mmc erase 0x86c00 0x10000
|
|
- run update_prpl
|
|
boot_command: run bootcmd
|
|
UBootStrategy: {}
|