could bootblock guru's look at this?
John Baldwin
jhb at FreeBSD.org
Thu Jan 6 13:20:57 PST 2005
On Sunday 12 December 2004 01:00 am, Julian Elischer wrote:
> We need to decide what to do with this PR
I just don't like loosing the bell but I guess it can go in. It also needs to
be merged into boot0ext.S, but that wouldn't have to lose the bell as that
version has more room for code.
> -------- 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"
> _______________________________________________
> freebsd-current at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
--
John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve" = http://www.FreeBSD.org
More information about the freebsd-current
mailing list