[gPXE-devel] [PULL] ipxe-sync

Stefan Hajnoczi stefanha at gmail.com
Tue Jul 6 04:33:39 EDT 2010


I have merged most commits from Michael Brown's tree.  It includes a revamp of
the prefix code for better BIOS compatibility (at the same time memory
restrictions are eliminated), the QLogic 7322 HCA infiniband driver, EFI
updates, an accurate error code database which should replace contrib/errcode,
and a number of bug fixes.

If you run under KVM you will notice that it now takes longer to "gPXE
initialising devices...".  This performance regression is introduced by commit
"[prefix] Use flat real mode for access to high memory" 5dfcac56.  I haven't
looked yet but suspect the root cause lies in KVM and not gPXE since -no-kvm
avoids the slowdown.

Outstandinding commits for another pull:

[script] Accept "#!gpxe" as well as "#!ipxe" as a script magic marker

  I think gPXE should accept both #!gpxe and #!ipxe for compatibility.
  Thoughts?

[tcp] Update received sequence number before delivering received data

  Piotr and Guo-Fu had a concern about this fix.  Comments?

[interface]-related changes

  Haven't had time to look yet.

Possibly sync up baseXX encoding changes that differ in gPXE and iPXE.

Without further ado, here are the details:

The following changes since commit e9d7419f1c4795e8c53630121cad86247ffa522f:

  [tls] Handle multiple handshake records (2010-06-29 08:07:02 +0100)

are available in the git repository at:
  git://git.etherboot.org/scm/people/stefanha/gpxe.git ipxe-sync

Geoff Lywood (1):
      [efi] Build iPXE script support into EFI binaries by default

Joshua Oreman (1):
      [refcnt] Add ref_no_free handler

Michael Brown (40):
      [romprefix] Remove .xrom prefix
      [romprefix] Remove .hrom prefix
      [prefix] Use flat real mode instead of real mode
      [prefix] Use flat real mode for access to high memory
      [prefix] Add .text16.early section
      [prefix] Move flatten_real_mode to .text16.early
      [prefix] Move flatten_real_mode to libflat.S
      [prefix] Add A20-enabling code in libflat
      [librm] Use libflat to enable A20 line on each real-to-protected transition
      [relocate] Remove the even megabyte constraint
      [prefix] Default to 1MB mark as fallback high memory load point
      [romprefix] Provide indication of successful call to install_prealloc
      [build] Generate random build identifier
      [pcbios] Always show INT 15,88 result under DEBUG=memmap
      [prefix] Use area at top of INT 15,88 memory map for temporary decompression
      [romprefix] Split PMM allocations for image source and decompression area
      [romprefix] Inhibit the use of relocation during POST
      [main] Match "starting execution" and "initialising devices" message style
      [build] Replace obsolete makerom.pl with quick script using Option::ROM
      [romprefix] Add .mrom format, allowing loading of large ROMs
      [build] Fix building with binutils 2.16
      [lacp] Add simple LACP implementation
      [pxe] Treat PXENV_RESTART_TFTP as unreturnable
      [qib7322] Add support for QLogic 7322 HCA
      [build] Inhibit "skipping incompatible" message from ld
      [build] Add rtl8139.rom to the default build target list
      [build] Remove PACKED macro
      [efi] Synchronise EFI header files
      [legal] Add FILE_LICENCE declarations to EFI header files
      [efi] Tidy up output of EFI header import script
      [pxe] Remove obsolete pxe_errortab.c
      [qib7322] Fix whitespace errors
      [process] Hold reference to process during call to step()
      [libc] Enable automated extraction of error usage reports
      [errdb] Add errdb.pl script to build error database
      [refcnt] Add ref_init() wrapper function
      [retry] Add timer_init() wrapper function
      [retry] Use start_timer_fixed() instead of direct timeout manipulation
      [build] Avoid hard-coding the path to perl
      [romprefix] Do not check for BBS compatibility

Shao Miller (1):
      [qib7322] Fix uninitialized variables warning

 contrib/errdb/.gitignore                           |    1 +
 contrib/errdb/errdb.pl                             |  108 +
 src/Makefile                                       |   18 +-
 src/Makefile.housekeeping                          |   68 +-
 src/arch/i386/Makefile.pcbios                      |   17 +-
 src/arch/i386/core/relocate.c                      |   56 +-
 src/arch/i386/drivers/net/undiload.c               |   10 -
 src/arch/i386/firmware/pcbios/gateA20.c            |  176 -
 src/arch/i386/firmware/pcbios/memmap.c             |   10 +-
 src/arch/i386/image/nbi.c                          |    7 -
 src/arch/i386/include/gateA20.h                    |    7 -
 src/arch/i386/include/librm.h                      |    5 -
 src/arch/i386/include/pxe.h                        |    8 +-
 src/arch/i386/include/pxe_api.h                    |  104 +-
 src/arch/i386/include/pxe_call.h                   |    4 +
 src/arch/i386/include/pxe_types.h                  |    4 +-
 src/arch/i386/include/registers.h                  |   24 +-
 src/arch/i386/interface/pxe/pxe_call.c             |   10 +
 src/arch/i386/interface/pxe/pxe_errors.c           |  103 -
 src/arch/i386/interface/pxe/pxe_preboot.c          |   10 +-
 src/arch/i386/interface/pxeparent/pxeparent.c      |   10 -
 src/arch/i386/prefix/hromprefix.S                  |   12 -
 src/arch/i386/prefix/libprefix.S                   |  436 +-
 src/arch/i386/prefix/mromprefix.S                  |  428 ++
 src/arch/i386/prefix/romprefix.S                   |  676 +--
 src/arch/i386/prefix/undiloader.S                  |    1 +
 src/arch/i386/prefix/xromprefix.S                  |    9 -
 src/arch/i386/scripts/i386.lds                     |   30 +-
 src/arch/i386/transitions/libflat.S                |  419 ++
 src/arch/i386/transitions/librm.S                  |   40 +-
 src/arch/x86/scripts/efi.lds                       |    2 +
 src/config/defaults/efi.h                          |    1 +
 src/core/downloader.c                              |    2 +-
 src/core/hw.c                                      |    1 +
 src/core/image.c                                   |    2 +-
 src/core/main.c                                    |    4 +-
 src/core/posix_io.c                                |    2 +-
 src/core/process.c                                 |    2 +
 src/core/proto_eth_slow.c                          |  406 --
 src/core/refcnt.c                                  |   12 +
 src/core/resolv.c                                  |    3 +
 src/doxygen.cfg                                    |    1 -
 src/drivers/block/srp.c                            |    1 +
 src/drivers/infiniband/qib7322.c                   | 2433 +++++++
 src/drivers/infiniband/qib7322.h                   |  364 +
 src/drivers/infiniband/qib_7322_regs.h             | 7261 ++++++++++++++++++++
 src/drivers/net/ipoib.c                            |    6 +-
 src/hci/strerror.c                                 |   34 +-
 src/hci/wireless_errors.c                          |  164 +-
 src/image/embedded.c                               |   12 +-
 src/image/segment.c                                |   25 +-
 src/include/compiler.h                             |    3 -
 src/include/errno.h                                |  567 ++-
 src/include/gpxe/efi/Base.h                        |   12 +
 src/include/gpxe/efi/Guid/HiiFormMapMethodGuid.h   |    2 +
 src/include/gpxe/efi/Guid/PcAnsi.h                 |    2 +
 src/include/gpxe/efi/Guid/SmBios.h                 |    2 +
 src/include/gpxe/efi/Guid/WinCertificate.h         |    2 +
 src/include/gpxe/efi/Ia32/ProcessorBind.h          |    2 +
 src/include/gpxe/efi/IndustryStandard/Pci22.h      |    2 +
 src/include/gpxe/efi/IndustryStandard/PeImage.h    |    2 +
 src/include/gpxe/efi/Pi/PiBootMode.h               |    2 +
 src/include/gpxe/efi/Pi/PiDependency.h             |    2 +
 src/include/gpxe/efi/Pi/PiDxeCis.h                 |    2 +
 src/include/gpxe/efi/Pi/PiFirmwareFile.h           |    2 +
 src/include/gpxe/efi/Pi/PiFirmwareVolume.h         |    2 +
 src/include/gpxe/efi/Pi/PiHob.h                    |    2 +
 src/include/gpxe/efi/Pi/PiMultiPhase.h             |    2 +
 src/include/gpxe/efi/Pi/PiS3BootScript.h           |    2 +
 src/include/gpxe/efi/Pi/PiStatusCode.h             |    2 +
 src/include/gpxe/efi/PiDxe.h                       |    3 +-
 src/include/gpxe/efi/ProcessorBind.h               |    5 +
 src/include/gpxe/efi/Protocol/ComponentName2.h     |    2 +
 src/include/gpxe/efi/Protocol/Cpu.h                |    2 +
 src/include/gpxe/efi/Protocol/CpuIo.h              |    2 +
 src/include/gpxe/efi/Protocol/CpuIo2.h             |    2 +
 src/include/gpxe/efi/Protocol/DebugSupport.h       |    2 +
 src/include/gpxe/efi/Protocol/DevicePath.h         |    2 +
 src/include/gpxe/efi/Protocol/DriverBinding.h      |    2 +
 .../gpxe/efi/Protocol/NetworkInterfaceIdentifier.h |    2 +
 src/include/gpxe/efi/Protocol/PciIo.h              |    2 +
 src/include/gpxe/efi/Protocol/PciRootBridgeIo.h    |    2 +
 src/include/gpxe/efi/Protocol/SimpleNetwork.h      |    2 +
 src/include/gpxe/efi/Protocol/SimpleTextIn.h       |    2 +
 src/include/gpxe/efi/Protocol/SimpleTextOut.h      |    2 +
 src/include/gpxe/efi/Uefi.h                        |    2 +
 src/include/gpxe/efi/Uefi/UefiBaseType.h           |    2 +
 src/include/gpxe/efi/Uefi/UefiGpt.h                |    2 +
 .../gpxe/efi/Uefi/UefiInternalFormRepresentation.h |    2 +
 src/include/gpxe/efi/Uefi/UefiMultiPhase.h         |    2 +
 src/include/gpxe/efi/Uefi/UefiPxe.h                |    2 +
 src/include/gpxe/efi/Uefi/UefiSpec.h               |    3 +-
 src/include/gpxe/efi/X64/ProcessorBind.h           |    2 +
 src/include/gpxe/efi/efi.h                         |   13 +-
 src/include/gpxe/efi/import.pl                     |   89 +-
 src/include/gpxe/errfile.h                         |    2 +
 src/include/gpxe/errortab.h                        |    5 +
 src/include/gpxe/eth_slow.h                        |  255 +
 src/include/gpxe/ieee80211.h                       |    1 +
 src/include/gpxe/net80211_err.h                    |  633 ++
 src/include/gpxe/refcnt.h                          |   36 +
 src/include/gpxe/retry.h                           |   12 +
 src/net/80211/net80211.c                           |   56 +-
 src/net/80211/sec80211.c                           |   16 +-
 src/net/aoe.c                                      |    4 +-
 src/net/dhcppkt.c                                  |    1 +
 src/net/eth_slow.c                                 |  267 +
 src/net/ethernet.c                                 |    3 +
 src/net/infiniband.c                               |   12 +-
 src/net/infiniband/ib_cmrc.c                       |    1 +
 src/net/infiniband/ib_mi.c                         |    2 +-
 src/net/infiniband/ib_srp.c                        |   13 +-
 src/net/ipv4.c                                     |    5 +-
 src/net/netdevice.c                                |   22 +-
 src/net/tcp.c                                      |    6 +-
 src/net/tcp/ftp.c                                  |    2 +-
 src/net/tcp/http.c                                 |    2 +-
 src/net/tcp/iscsi.c                                |   57 +-
 src/net/tls.c                                      |    2 +-
 src/net/udp.c                                      |    1 +
 src/net/udp/dhcp.c                                 |    8 +-
 src/net/udp/dns.c                                  |    3 +-
 src/net/udp/slam.c                                 |    6 +-
 src/net/udp/tftp.c                                 |   77 +-
 src/usr/iwmgmt.c                                   |   18 -
 src/util/.gitignore                                |    1 +
 src/util/Option/ROM.pm                             |    3 +-
 src/util/einfo.c                                   |  167 +
 src/util/fixrom.pl                                 |   34 +
 src/util/makerom.pl                                |  232 -
 src/util/zbin.c                                    |   61 +-
 131 files changed, 13953 insertions(+), 2389 deletions(-)
 create mode 100644 contrib/errdb/.gitignore
 create mode 100755 contrib/errdb/errdb.pl
 delete mode 100644 src/arch/i386/firmware/pcbios/gateA20.c
 delete mode 100644 src/arch/i386/include/gateA20.h
 delete mode 100644 src/arch/i386/interface/pxe/pxe_errors.c
 delete mode 100644 src/arch/i386/prefix/hromprefix.S
 create mode 100644 src/arch/i386/prefix/mromprefix.S
 delete mode 100644 src/arch/i386/prefix/xromprefix.S
 create mode 100644 src/arch/i386/transitions/libflat.S
 delete mode 100644 src/core/proto_eth_slow.c
 create mode 100644 src/drivers/infiniband/qib7322.c
 create mode 100644 src/drivers/infiniband/qib7322.h
 create mode 100644 src/drivers/infiniband/qib_7322_regs.h
 create mode 100644 src/include/gpxe/eth_slow.h
 create mode 100644 src/include/gpxe/net80211_err.h
 create mode 100644 src/net/eth_slow.c
 create mode 100644 src/util/einfo.c
 create mode 100755 src/util/fixrom.pl
 delete mode 100755 src/util/makerom.pl


More information about the gPXE-devel mailing list