Skip to content

TFTP no rollover on uint16_t block counter #720

@korneliuszo

Description

@korneliuszo

Describe the bug

TFTP in bootloader fails in loading files big enough.

Steps to reproduce the behaviour

  • Set TFTP_FILE_TIMEOUT to big enough value to not trigger it.
  • Send file bigger than 64k*block_size (in my case 114M with 1468 blocks)

Device (s)

Raspberry Pi 5

Bootloader configuration.

TFTP_FILE_TIMEOUT=300000

System

SRC_URI = "
git://github.com/raspberrypi/rpi-eeprom.git;protocol=https;branch=master
"

SRCREV = "1bd0a1052b2e74d7af04de18d30b5edb12d8a423"
PV = "v2025.03.10-2712"

Bootloader logs

23.93 RX: 221 IP: 0 IPV4: 220 MAC: 220 UDP: 220 UDP RECV: 220 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
23.02 RX: 222 IP: 0 IPV4: 221 MAC: 221 UDP: 221 UDP RECV: 221 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
23.10 Loading 'initrd.xz' to 0x00000000 offset 0x0
23.14 TFTP_GET: 04:bf:1b:66:88:a1 192.168.0.1 initrd.xz

23.20 RX: 222 IP: 0 IPV4: 221 MAC: 221 UDP: 221 UDP RECV: 221 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
26.59 ARP TX resp: sender: 2c:cf:67:84:a1:44 192.168.0.101 target: 192.168.0.1
49.99 ARP TX resp: sender: 2c:cf:67:84:a1:44 192.168.0.101 target: 192.168.0.1
76.11 ARP TX resp: sender: 2c:cf:67:84:a1:44 192.168.0.101 target: 192.168.0.1
100.87 ARP TX resp: sender: 2c:cf:67:84:a1:44 192.168.0.101 target: 192.168.0.1
124.51 ARP TX resp: sender: 2c:cf:67:84:a1:44 192.168.0.101 target: 192.168.0.1
148.15 ARP TX resp: sender: 2c:cf:67:84:a1:44 192.168.0.101 target: 192.168.0.1

USB boot

No response

NVMe boot

No response

Network (TFTP boot)

dnsmasq-tftp: failed sending /tftpboot/initrd.xz to 192.168.0.101

port=0

dhcp-range's IP address should be set to the broadcast address of your existing home network.

dhcp-range=192.168.0.100,192.168.0.105
log-dhcp
enable-tftp
tftp-root=/tftpboot
pxe-service=0,"Raspberry Pi Boot"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions