could bootblock guru's look at this?

From: Julian Elischer <julian_at_elischer.org>
Date: Sat, 11 Dec 2004 22:00:44 -0800
We need to decide what to do with this PR

-------- Original Message --------
Subject: Re: kern/66248: [panic] bootloader is confused by booting from USB 
flash, trashes main drives boot block
Date: Mon, 8 Nov 2004 17:20:21 GMT
From: Hans Petter Selasky <hselasky_at_c2i.net>
Reply-To: Hans Petter Selasky <hselasky_at_c2i.net>
To: freebsd-usb_at_freebsd.org

The following reply was made to PR kern/66248; it has been noted by GNATS.

From: Hans Petter Selasky <hselasky_at_c2i.net>
To: jhb_at_freebsd.org, freebsd-gnats-submit_at_freebsd.org, bremner_at_unb.ca
Cc:
Subject: Re: kern/66248: [panic] bootloader is confused by booting from USB 
flash, trashes main drives boot block
Date: Mon, 8 Nov 2004 18:24:03 +0100

  --SUOF0GtieIMvvwua
  Content-Type: text/plain; charset=us-ascii
  Content-Disposition: inline

  Hi,

  Attached patch for /src/sys/boot/i386/boot0/boot0.S closes kern/66248
  Apply using: cat boot0.S.diff | patch -N -l


  When the boot0 boot-manager is used on a floppy or USB drive, the floppy's or
  USB's boot-sector gets written to the hdd!

  Solution: Only update the boot-sector when there is a valid drive number or
  the drive number is set manually.

  To make the patch fit into the code I had to disable the "beep-signal".

  Yours
  -HPS


  --SUOF0GtieIMvvwua
  Content-Type: text/plain; charset=us-ascii
  Content-Disposition: attachment; filename="boot0.S.diff"

  *** boot0.S.ref	Wed Oct 20 17:24:19 2004
  --- boot0.S	Wed Oct 20 17:30:56 2004
  ***************
  *** 103,112 ****
     * Check what flags were loaded with us, specifically, Use a predefined Drive.
     * If what the bios gives us is bad, use the '0' in the block instead, as well.
     */
  ! 		testb $0x20,_FLAGS(%bp)		# Set number drive?
    		jnz main.1			# Yes
    		testb %dl,%dl			# Drive number valid?
    		js main.2			# Possibly (0x80 set)
    main.1:		movb _SETDRV(%bp),%dl		# Drive number to use
    /*
     * Whatever we decided to use, now store it into the fake
  --- 103,117 ----
     * Check what flags were loaded with us, specifically, Use a predefined Drive.
     * If what the bios gives us is bad, use the '0' in the block instead, as well.
     */
  ! 		testb $0x20,_FLAGS(%bp)		# Set drive number?
    		jnz main.1			# Yes
    		testb %dl,%dl			# Drive number valid?
    		js main.2			# Possibly (0x80 set)
  + /*
  +  * Only update the boot-sector when there is a valid drive number or
  +  * the drive number is set manually.
  +  */
  + 		orb $0x40,_FLAGS(%bp)		# Disable updates
    main.1:		movb _SETDRV(%bp),%dl		# Drive number to use
    /*
     * Whatever we decided to use, now store it into the fake
  ***************
  *** 203,210 ****
    /*
     * Start of input loop.  Beep and take note of time
     */
  ! main.10:	movb $ASCII_BEL,%al		# Signal
    		callw putchr			#  beep!
    		xorb %ah,%ah			# BIOS: Get
    		int $0x1a			#  system time
    		movw %dx,%di			# Ticks when
  --- 208,218 ----
    /*
     * Start of input loop.  Beep and take note of time
     */
  ! main.10:
  ! #ifdef BEL
  ! 		movb $ASCII_BEL,%al		# Signal
    		callw putchr			#  beep!
  + #endif
    		xorb %ah,%ah			# BIOS: Get
    		int $0x1a			#  system time
    		movw %dx,%di			# Ticks when

  --SUOF0GtieIMvvwua--
_______________________________________________
freebsd-usb_at_freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscribe_at_freebsd.org"
Received on Sun Dec 12 2004 - 05:00:47 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:24 UTC