Skip to content
  • Gerd Hoffmann's avatar
    ipxe: update to current git · d880b28c
    Gerd Hoffmann authored
    
    
    Now that ipxe has separate settings for load / boot banner timeouts
    re-enable the boot banner while keeping the load banner turned off,
    so we don't add a delay to non-pxe boots.
    
    git shortlog:
    
    Adrian Jamróz (2):
          [rhine] Rewrite VIA Rhine driver
          [velocity] Rewrite VIA Velocity driver
    
    Alex Williamson (4):
          [romprefix] Allow ROM banner timeout to be configured independently
          [autoboot] Enable infrastructure to specify an autoboot device location
          [prefix] Allow prefix to specify a PCI autoboot device location
          [romprefix] Store boot bus:dev.fn address as autoboot device location
    
    Alexander Chernyakhovsky (1):
          [ocsp] Handle OCSP responses that don't provide certificates
    
    Bo Yang (1):
          [build] Avoid strict-aliasing warning for gcc 4.3
    
    Brandon Penglase (1):
          [build] Add vmware build target
    
    Christian Hesse (2):
          [build] Update build system for Syslinux 6.x
          [build] Fix LABEL name for .liso images
    
    Daniel P. Berrange (1):
          [zbin] Fix size used for memset in alloc_output_file
    
    Frediano Ziglio (1):
          [romprefix] Fix incorrect pointer offset in undiloader.S
    
    Kevin Tran (1):
          [tg3] Fix various tg3 issues
    
    Marin Hannache (8):
          [linux] Add missing #include <stddef.h>
          [legal] Add FILE_LICENCE for valgrind headers
          [legal] Add FILE_LICENCE for core/errno.c
          [legal] Add FILE_LICENCE for ath9k driver headers
          [legal] Add missing FILE_LICENCE declarations
          [cmdline] Add "poweroff" command
          [nfs] Add support for NFS protocol
          [nfs] Fix an issue with the selection of a local port
    
    Michael Brown (363):
          [netdevice] Separate VLAN support from presence of VLAN-supporting drivers
          [undi] Work around specific devices with known broken interrupt behaviour
          [menu] Prevent character code zero from acting as a shortcut key
          [menu] Prevent separators with shortcut keys from being selected
          [tftp] Allow TFTP block size to be controlled via the PXE TFTP API
          [pcbios] Add extra debugging messages when unhiding iPXE from memory
          [nbiprefix] Set up real-mode stack before jumping to .text16
          [prefix] Use %cs as implicit parameter to uninstall()
          [pcbios] Inhibit all calls to INT 15,e820 and INT 15,e801 during POST
          [romprefix] Display only one "Ctrl-B" prompt per PCI device during POST
          [efi] Update to latest EDK2 headers
          [autoboot] Split main control flow out of main() into a new function ipxe()
          [efi] Add last_opened_snpdev()
          [efi] Expose downloaded images via EFI_SIMPLE_FILE_SYSTEM_PROTOCOL
          [efi] Add our own EFI_LOAD_FILE_PROTOCOL implementation
          [efi] Fix building with newer binutils
          [lkrnprefix] Allow relocation when no initrd is present
          [efi] Fix minor typos in efi_image.c
          [efi] Add EFI-specific debugging macros
          [int13] Split out ISO9660 and El Torito definitions to separate header files
          [smbios] Provide SMBIOS version number via smbios_version()
          [smbios] Mangle UUIDs for SMBIOS version 2.6 and newer
          [dhcp] Use PXE byte ordering for UUID in DHCP option 97
          [uuid] Abstract UUID mangling code out to a separate uuid_mangle() function
          [efi] Provide efi_guid_ntoa() for printing EFI GUIDs
          [efi] Add "reboot" command for EFI
          [cmdline] Add ability to perform a warm reboot
          [efi] Enable "cpuid" command by default for EFI
          [cs89x0] Remove conflicting macro definitions
          [igbvf] Remove conflicting macro definitions
          [prism2] Use standard type names
          [efi] Fetch device path for loaded image during initialisation
          [settings] Expose build architecture and platform via settings
          [bios] Fix screen clearing on buggy BIOSes
          [intel] Remove hardcoded offsets for descriptor ring registers
          [intel] Expose functionality to be shared with intelx driver
          [intel] Add intelx driver for Intel 10 Gigabit Ethernet NICs
          [efi] Remove obsolete EFI I/O implementation using EFI_CPU_IO_PROTOCOL
          [libc] Use __einfo() tuple as first argument to EUNIQ()
          [libc] Redefine low 8 bits of error code as "platform error code"
          [efi] Perform meaningful error code conversions
          [efi] Add sample platform-generated error disambiguations
          [netdevice] Use link-layer address as part of RNG seed
          [build] Allow sparse to find compiler.h
          [build] Define __WINT_TYPE__ if necessary
          [build] Allow sparse to be invoked via "make C=1"
          [build] Avoid sparse undeclared symbol warning for PROVIDE_SYMBOL()
          [process] Mark process descriptor as static in PERMANENT_PROCESS
          [realtek] Print bad MAC address in debug message when inferring no EEPROM
          [build] Use -Wno-decl when running sparse
          [build] Fix uses of literal 0 as a NULL pointer
          [build] Fix dubious uses of bitwise operators
          [build] Default to short wchar_t in stddef.h
          [realtek] Use ID word to detect EEPROM presence
          [errdb] Strip platform error code for non-platform-generated errors
          [pxe] Convert external PXE API errors into iPXE platform-generated errors
          [realtek] Allow reaction time between writing RTL_CAPR and reading RTL_CR
          [romprefix] Report failure cause when unable to open payload
          [realtek] Ensure EEPROM writes reach chip before starting udelay()
          [dhcp] Remove obsolete bootp.h header
          [netdevice] Add netdev_tx_defer() to allow drivers to defer transmissions
          [realtek] Defer packets when no transmit descriptors are available
          [settings] Eliminate settings "tag magic"
          [smbios] Allow access to unreferenced SMBIOS strings
          [smbios] Allow access to multiple instances of SMBIOS structures
          [crypto] Report meaningful error when certificate chain validation fails
          [build] Use $(eval) if available
          [build] Provide "allXXXs" targets for all media on all platforms
          [build] Add efidrv.cab target for UEFI Secure Boot signing
          [netdevice] Add "chip" setting
          [netdevice] Reset MAC address when asked to clear the "mac" setting
          [realtek] Fix reopening of legacy-mode 8139 NIC
          [crypto] Accept OCSP responses containing multiple certificates
          [bzimage] Align initrd images to page boundary
          [bzimage] Fix spurious uninitialised-variable warning on some gcc versions
          [build] Work around bug in gcc >= 4.8
          [autoboot] Use next-server from filename's settings block
          [tcp] Do not send RST for unrecognised connections
          [tcp] Fix comment to match code behaviour
          [test] Add self-tests for base16
          [base16] Generalise base16_decode() to hex_decode()
          [settings] Use hex_decode() to parse hex settings
          [settings] Add "hexraw" setting type
          [netdevice] Add "bustype" and "busloc" settings
          [settings] Add "busdevfn" setting type
          [linux] Add support for accessing PCI configuration space via /proc/bus/pci
          [settings] Add config/settings.h
          [settings] Expose PCI configuration space via settings mechanism
          [settings] Make "netX" settings block function as a symbolic link
          [cmdline] Accept "netX" in iPXE commands
          [lotest] Include sequence number within loopback test packets
          [intel] Incorporate ring producer and consumer counters in diagnostics
          [base16] Ensure base16_encode() always terminates its result string
          [realtek] Report RX error detail in debug messages
          [script] Allow for backslash continuation of script lines
          [settings] Add support for navigation keys in "config" user interface
          [realtek] Allow extra space in RX buffers
          [ifmgmt] Avoid relying on global variable within ifcommon_exec()
          [script] Avoid trying to read final character of a zero-length string
          [legal] Add missing FILE_LICENCE declarations
          [build] Fix %.licence build target
          [settings] Clarify usage of the term "named setting"
          [settings] Avoid potentially large stack allocations
          [settings] Remove temporary name buffer parameter from parse_setting_name()
          [settings] Remove default_type parameter from parse_setting_name()
          [settings] Expose parse_setting_name()
          [settings] Change "not-found" semantics of fetch_setting_copy()
          [settings] Add fetchf_setting_copy()
          [settings] Eliminate call to fetchf_named_setting() in expand_settings()
          [settings] Eliminate call to store_named_setting() in nslookup.c
          [settings] Remove now-unused store_named_setting()
          [parseopt] Allow parsed option to be modified
          [parseopt] Move parse_settings() to parseopt.c
          [parseopt] Add parse_setting()
          [settings] Eliminate call to storef_named_setting() in choose_exec()
          [settings] Eliminate calls to {fetch,store}f_named_setting() in NVO commands
          [settings] Remove now-unused fetchf_named_setting() and storef_named_setting()
          [script] Allow initial whitespace on lines containing labels
          [script] Allow commands following a script label
          [settings] Introduce the generalised concept of a numeric setting
          [cmdline] Add "inc" command
          [pci] Add pci_find_next() to iterate over existent PCI devices
          [cmdline] Add "pciscan" command to allow iteration over PCI devices
          [udp] Move high-frequency debug messages to DBGLVL_EXTRA
          [ipv6] Rename sin_{family,port} to sin6_{family,port} in struct sockaddr_in6
          [tcpip] Allow binding to unspecified privileged ports (below 1024)
          [settings] Expose CPUID instruction via settings mechanism
          [test] Add self-tests for snprintf()
          [settings] Allow numeric_setting_value() to handle long setting values
          [settings] Expose memory map via settings mechanism
          [params] Add support for the general concept of a form parameter list
          [cmdline] Add "params" and "param" commands to manage form parameter lists
          [uri] Allow URIs to incorporate a parameter list
          [http] Add support for HTTP POST
          [settings] Make built-in settings a linker table
          [linux] Give tap devices a name and bus type
          [ipv4] Generalise fragment reassembly mechanism
          [netdevice] Increase maximum network-layer address length
          [netdevice] Add concept of a network device index
          [netdevice] Add method for generating EUI-64 address from link-layer address
          [ethernet] Add support for generating multicast hash for IPv6 addresses
          [linux] Apply MAC address prior to registering network device
          [tcpip] Pass through network device to transport layer protocols
          [neighbour] Generalise concept of neighbour discovery
          [ipv4] Abstract out protocol-specific portions of "route" command
          [ipv6] Replace IPv6 stack
          [ipv6] Fix uninitialised-variable warning
          [tcp] Reduce path MTU to 1280 bytes
          [ipv6] Add inet6_aton()
          [build] Work around bug in gcc >= 4.8
          [neighbour] Add nstat() function to print out neighbour table
          [cmdline] Add "nstat" command
          [tcp] Add AF_INET6 socket opener
          [udp] Add AF_INET6 socket opener
          [netdevice] Add find_netdev_by_index()
          [socket] Add concept of a generalised socket address converter
          [ipv4] Add IPv4 socket address converter
          [ipv6] Add IPv6 socket address converter
          [resolv] Use sock_aton() to allow parsing of arbitrary numeric addresses
          [icmp] Add support for sending ICMP echo requests
          [ping] Add concept of a ping socket
          [ping] Add generic ping mechanism
          [ping] Add top-level ping() function to ping a host
          [cmdline] Add "ping" command
          [ipv6] Handle IPv6 option length correctly
          [ipv6] Extract link layer addresses from router advertisements
          [ipv6] Support stateless address autoconfiguration (SLAAC)
          [ipv6] Treat sin6_scope_id consistently
          [ipv6] Automatically choose source for link-local and multicast destinations
          [pxe] Always retrieve cached DHCPACK and apply to relevant network device
          [ipv6] Add ndp_tx_router_solicitation() to send router solicitations
          [parseopt] Add parse_timeout()
          [netdevice] Make all net_driver methods optional
          [interface] Default to calling intf_restart() in response to intf_close()
          [job] Allow job_progress() to return an ongoing job status code, if known
          [monojob] Add timeout parameter to monojob_wait()
          [monojob] Report ongoing job status as overall return status on timeout
          [cmdline] Rewrite "sync" command to use monojob_wait()
          [autoboot] Fix shell banner timeout
          [ifmgmt] Rewrite iflinkwait() to use monojob_wait()
          [cmdline] Allow "if<xxx>" commands to take options
          [netdevice] Add generic concept of a network device configurator
          [dhcp] Add DHCP network device configurator
          [parseopt] Add parse_netdev_configurator()
          [ifmgmt] Add ifconf() to carry out network device configuration
          [autoboot] Use ifconf() to configure network device
          [cmdline] Add "ifconf" command
          [cmdline] Make "dhcp" command a synonym for "ifconf"
          [dhcp] Remove obsolete dhcp() function
          [ipv6] Add IPv6 network device configurator
          [cmdline] Generate command option help text automatically
          [pxe] Ensure cached DHCPACK is retrieved prior to network device creation
          [base16] Fix comparison of signed and unsigned integers
          [settings] Move user-class setting from dhcp.c to settings.c
          [ipv6] Use given source address only if it is not the unspecified address
          [ipv6] Add "ipv6" setting type
          [dhcpv6] Add basic support for stateful and stateless DHCPv6
          [ipv6] Separate the concepts of prefix and address creation
          [dhcpv6] Allow stateful DHCPv6 to apply obtained IPv6 addresses
          [test] Include failing code within failed test result output
          [main] Defer "initialising devices" message until initialising devices
          [console] Pass escape sequence context to ANSI escape sequence handlers
          [pixbuf] Add generic concept of a pixel buffer
          [image] Allow for non-executable image formats
          [image] Add image_pixbuf() to create pixel buffer from image
          [pnm] Add support for PNM images
          [mucurses] Use "<ESC>[2J" ANSI escape sequence to clear screen
          [console] Allow console input and output to be disabled independently
          [console] Add concept of generic console configuration
          [cmdline] Add "console" command to configure console
          [fbcon] Add generic concept of a frame buffer console
          [vesafb] Add VESA frame buffer console
          [vesafb] Include raw status value within VBE error messages
          [vesafb] Skip modes for which we cannot get mode information
          [vesafb] Return meaningful error when no suitable mode is found
          [vesafb] Select an optimal mode, rather than the first acceptable mode
          [build] Fix building on OpenBSD 5.4
          [console] Allow '?' as an intermediate byte in ANSI escape sequences
          [mucurses] Implement curs_set() to control cursor visibility
          [settings] Hide cursor when not actively editing a setting
          [menu] Hide cursor when displaying menu
          [fbcon] Add support for displaying a cursor
          [settings] Explicitly separate the concept of a completed fetched setting
          [settings] Allow for IPv6 setting types in non-IPv6 builds
          [settings] Add fetch_ipv6_setting()
          [dns] Add support for resolving IPv6 addresses via AAAA records
          [socket] Ensure socket address structure sizes are fixed
          [syslog] Add support for IPv6 syslog server
          [ipv6] Add support for resolving IPv6 addresses via the "nslookup" command
          [linux] Provide access to SMBIOS via /dev/mem
          [dhcpv6] Use DUID-UUID form of client DUID
          [settings] Force settings into alphabetical order within sections
          [settings] Allow for multiple definitions of each predefined setting
          [settings] Merge SETTING_IPv4 and SETTING_IPv6
          [dhcpv6] Add DHCPv6 "filename" setting
          [ipv6] Expose NDP-provided settings (including the DNS server)
          [vesafb] Work around data corruption bug in bochs/qemu VBE implementation
          [settings] Adapt user interface to fit display size
          [login] Adapt user interface to fit display size
          [menu] Adapt user interface to fit display size
          [console] Allow consoles to update the recorded console size
          [fbcon] Update the console width and height after changing mode
          [lkrnprefix] Include iPXE version string in image header
          [fbcon] Always draw cursor using current foreground and background colours
          [console] Add centralised concept of colours and colour pairs
          [mucurses] Use centralised concept of colour pairs
          [cmdline] Add the "colour" and "cpair" commands
          [console] Add concept of a "magic" colour
          [vesafb] Set "magic" colour to transparent when a background picture is used
          [build] Remove obsolete check for GNU as version 2.9.1
          [ipv6] Fix compilation under FreeBSD
          [build] Build ROMs used by qemu and VMware as part of "make all"
          [libc] Add isprint()
          [test] Add okx() macro taking an explicit file name and line number
          [deflate] Add support for DEFLATE decompression
          [deflate] Fix literal data length calculation
          [libc] Add abs()
          [uaccess] Add memcmp_user()
          [test] Rewrite pnm_ok() using okx()
          [test] Generalise pnm_ok() to pixbuf_ok()
          [png] Add support for PNG images
          [vesafb] Handle failures from fbcon_init()
          [fbcon] Centre background picture on console
          [fbcon] Allow for an arbitrary margin around the text area
          [vesafb] Allow for an arbitrary margin around the text area
          [cmdline] Rename "console" command's --bpp option to --depth
          [cmdline] Add margin options to the "console" command
          [fbcon] Allow ANSI CUP with missing arguments
          [cmdline] Always clear screen after reconfiguring console
          [intel] Add some missing PCI IDs
          [dns] Support DNS search lists
          [dns] Update end-of-name pointer after processing CNAME record
          [dhcp] Copy exactly the required length when resizing DHCP options
          [settings] Remove "uristring" setting type
          [params] Use reference counters for form parameter lists
          [uri] Refactor URI parsing and formatting
          [image] Ensure every image has a fully resolved URI
          [tcpip] Add IP statistics collection as per RFC 4293
          [cmdline] Add the "ipstat" command
          [prefix] Ignore PCI autoboot device location if set to 00:00.0
          [tcpip] Provide tcpip_netdev() to determine the transmitting network device
          [tcpip] Provide tcpip_mtu() to determine the maximum transmission unit
          [tcp] Calculate correct MSS from peer address
          [bzimage] Report exact initrd length via bzImage header
          [realtek] Include link status register details in debug messages
          [romprefix] Do not clobber stack segment when returning to BIOS
          [netdevice] Mark devices as open before calling open() method
          [tcp] Update window even if ACK does not acknowledge new data
          [linux] Avoid starting currticks() from zero every time
          [http] Use a retry timer to trigger retried requests
          [http] Automatically retry request on a 503 Service Unavailable
          [mii] Add mii_dump() to dump all MII registers
          [realtek] Dump all MII register contents when link status changes
          [monojob] Reset timeout when progress is made
          [image] Add "--timeout" parameter to image downloading commands
          [efi] Allow for 64-bit EFI_STATUS codes
          [efi] Allow driver to be unloaded
          [efi] Connect driver to devices as part of installation
          [console] Fix display of characters with top bit set
          [lotest] Allow loopback testing on shared networks
          [netdevice] Notify upper-layer drivers when RX processing is (un)frozen
          [efi] Avoid accidentally calling main() twice
          [efi] Unload our own image before exiting UEFI application
          [efi] Disable SNP devices when running iPXE as the application
          [realtek] Add ability to dump all internal registers
          [realtek] Clear bit 24 of RCR
          [bios] Fix screen clearing on even more buggy BIOSes
          [http] Accept Content-Length header with trailing whitespace
          [crypto] Remove dynamically-allocated storage for certificate name
          [crypto] Remove dynamically-allocated storage for certificate OCSP URI
          [build] Remove long-obsolete mechanism for wrapping embedded images
          [build] Disable ccache for all relevant build targets
          [build] Add dependency of generated files upon Makefile
          [crypto] Add pubkey_match() to check for matching public/private key pairs
          [crypto] Generalise X.509 cache to a full certificate store
          [crypto] Use fingerprint when no common name is available for debug messages
          [crypto] Allow signed timestamp error margin to be configured at build time
          [test] Rewrite X.509 tests using okx()
          [test] Rewrite CMS tests using okx()
          [test] Add tests for x509_check_name()
          [test] Add subject alternative names to X.509 server test certificate
          [crypto] Add support for subjectAltName and wildcard certificates
          [crypto] Allow wildcard matches on commonName as well as subjectAltName
          [intel] Avoid completely filling the TX descriptor ring
          [test] Rewrite TCP/IP tests using okx()
          [test] Add self-tests for flsl()
          [libc] Add inline assembly implementation of flsl() using BSR instruction
          [test] Add tests for 64-bit division
          [build] Fix __libgcc attribute for recent gcc versions
          [test] Check for correct -mrtd assumption on libgcc arithmetic functions
          [libc] Add isqrt() function to find integer square roots
          [libc] Add flsll()
          [profile] Add generic profiling infrastructure
          [cmdline] Add "profstat" command to display profiling statistics
          [netdevice] Profile common operations
          [intel] Profile common virtual machine operations
          [intel] Push new RX descriptors in batches
          [librm] Use genuine real mode to accelerate operation in virtual machines
          [ipv4] Profile transmit and receive datapaths
          [tcp] Profile transmit and receive datapaths
          [http] Profile receive datapath
          [downloader] Profile receive datapath
          [build] Allow for a debug level of zero
          [librm] Allow interrupts in protected mode
          [comboot] Use built-in interrupt reflector
          [pcbios] Do not switch to real mode to check for timer interrupt
          [pcbios] Do not switch to real mode to sleep the CPU
          [test] Print out profiling statistics after a successful test run
          [librm] Add a profiling self-test for measuring mode transition times
          [librm] Add meaningful labels at section changes
          [librm] Speed up protected-to-real mode transition under KVM
          [librm] Speed up real-to-protected mode transition under KVM
          [librm] Speed up protected-mode calls under KVM
          [profile] Provide methods for profiling individual stages of operations
          [librm] Add profiling self-tests for complete real_call and prot_call cycles
          [pxe] Profile all PXE API calls
          [pxe] Profile UNDI transmit datapath
          [pxe] Work around missing PXENV_UNDI_OPEN only when necessary
          [undi] Profile all PXE API calls
          [undi] Profile transmit and receive datapaths
          [undi] Report any PXENV_UNDI_ISR errors via netdev_rx_err()
          [undi] Do not switch to real mode to check for NIC interrupt
          [undi] Place an upper limit on the number of PXENV_UNDI_ISR calls per poll
    
    Peter Pickford (1):
          [serial] Enable UART FIFOs
    
    Robin Smidsrød (2):
          [settings] Add "version" builtin setting
          [build] Include ipxe.pxe in default build
    
    Stefan Hajnoczi (2):
          [netdevice] Add vlan_tag() to get the VLAN tag of a network device
          [iscsi] Include 802.1Q VLAN identifier in iBFT
    
    Thomas Miletich (3):
          [3c90x] Stall upload engine before setting RX ring address
          [3c90x] Don't round up transmit packet length
          [3c90x] Fix High-MTU packet reception
    
    lolipop (1):
          [intel] Add Intel I217 Gigabit Ethernet PCI ID
    
    Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
    d880b28c