Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Jun 2011 15:53:17 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/boot/i386/zfsboot zfsldr.S
Message-ID:  <201106231553.p5NFrWPw011135@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
jhb         2011-06-23 15:53:17 UTC

  FreeBSD src repository

  Modified files:
    sys/boot/i386/zfsboot zfsldr.S 
  Log:
  SVN rev 223477 on 2011-06-23 15:53:17Z by jhb
  
  The recent change to increase the zfsboot size to 64k made a few BIOSes
  unhappy (probably they don't handle crossing the 64k boundary, etc.).
  Fix this by changing zfsldr to use a loop reading from the disk one
  sector at a time.  To avoid trashing the saved copy of the MBR which is
  used for disk I/O, read zfsboot2 at address 0x9000.  This has the
  advantage that BTX no longer needs to be relocated as it is read into
  the correct location.  However, the loop to relocate zfsboot2.bin can
  now cross a 64k boundary, so change it to use relative segments instead.
  (This will need further work if zfsboot2.bin ever exceeds 64k.)
  
  While here, stop storing a relocated copy of zfsldr at 0x700.  This was
  only used by the xread hack which has recently been removed (and even
  that use was dubious).  Also, include the BIOS error code as hex when
  reporting read errors to aid in debugging.
  
  Much thanks to Henri Hennebert for patiently testing various iterations
  of the patch as well as fixing the zfsboot2.bin relocation to use
  relative segments.
  
  MFC after:      1 week
  
  Revision  Changes    Path
  1.5       +63 -62    src/sys/boot/i386/zfsboot/zfsldr.S



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201106231553.p5NFrWPw011135>