linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* bzImage loading directly from floppy
@ 2001-05-25 20:25 Pavel Machek
  0 siblings, 0 replies; only message in thread
From: Pavel Machek @ 2001-05-25 20:25 UTC (permalink / raw)
  To: kernel list, patches

Hi!

...is broken. If imagesize is 0xf123, bootsect_second only returns
0xf000 in ax, which is < 0xf123, so it continues loading. Then,
bootsect_second returns 0x10000, but it is 16 bit register, so it is
0x0000, and that's also < 0xf123. So it is looping forever.

It can be fixed like this: (Another possible workaround is to set max
size in tools/misc.c to 0xefff instead of 0xffff. OTOH it would be
nice to be able to boot images up to 2.88MB directly from floppy).
								Pavel
(Okay to commit into x86-64 tree?)

--- linux/arch/i386/boot/setup.S	Tue May  8 12:11:01 2001
+++ linux/arch/x86_64/boot/setup.S	Fri May 25 22:18:57 2001
@@ -771,6 +774,8 @@
 	incb	%cs:bootsect_dst_base+2		# to 0x10000
 bootsect_ex:
 	movb	%cs:bootsect_dst_base+2, %ah
+	cmpb	$0x20, %ah
+	je	realbig
 	shlb	$4, %ah				# we now have the number of
 						# moved frames in %ax
 	xorb	%al, %al
@@ -779,6 +784,13 @@
 	popw	%cx
 	lret
 
+realbig:
+	movw	$0xffff,%ax
+	popw	%bx
+	popw	%si
+	popw	%cx
+	lret
+
 bootsect_gdt:
 	.word	0, 0, 0, 0
 	.word	0, 0, 0, 0

-- 
I'm pavel@ucw.cz. "In my country we have almost anarchy and I don't care."
Panos Katsaloulis describing me w.r.t. patents at discuss@linmodems.org

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2001-05-26 10:42 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-05-25 20:25 bzImage loading directly from floppy Pavel Machek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).