NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

port-i386/56956: i386/pxeboot: cannot load netbsd kernel larger than 32 MiB with TFTP



>Number:         56956
>Category:       port-i386
>Synopsis:       i386/pxeboot: cannot load netbsd kernel larger than 32 MiB with TFTP
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-i386-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Aug 07 05:10:00 +0000 2022
>Originator:     Wataru Ashihara
>Release:        9.2 (http://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-9.2/i386/installation/misc/pxeboot_ia32.bin)
>Organization:
>Environment:
>Description:
In PXE boot, TFTP-loading "netbsd" binary fails with the following error:

    >> NetBSD/x86 PXE boot, Revision 5.1 (Wed May 12 13:15:55 UTC 2021) (from NetBSD
     9.2)
    >> Memory: 625/2094828 k
    Press return to boot now, any other key for boot menu
    booting netbsd - starting in 0 seconds.     
    PXE BIOS Version 2.1
    Using PCI device at bus 0 device 3 function 0
    Ethernet address 52:54:00:ff:08:00
    28306576+1562064+535088read section headers: Unknown error: code 60
    boot: Input/output error
    Boot fai

This happens when x86 machine receives TFTP data block 65536. Instead of
replying the ack, the machine shows the error above.

    x86 machine                                    TFTP server
                 <-- Data packet, Block: 65533
                 --> Acknowlegement, Block: 65533
                 <-- Data packet, Block: 65534
                 --> Acknowlegement, Block: 65534
                 <-- Data packet, Block: 65535
                 --> Acknowlegement, Block: 65535
                 <-- Data packet, Block: 65536
                 (no ack, showing error above)

And this happens when "netbsd" is larger than 512 B * 65536 = 32 MiB, when
compiling kernel without optimization (-O0).

QEMU with gdb told me the error occurs at here:
https://github.com/NetBSD/src/blob/0caacf7bc9bb96e96c948dd08a8dab0542c0220b/sys/lib/libsa/tftp.c#L121

>How-To-Repeat:

>Fix:
Use NFS as a workaround.



Home | Main Index | Thread Index | Old Index