From: Vivek Goyal <vgoyal@in.ibm.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Andrew Morton <akpm@osdl.org>,
linux kernel mailing list <linux-kernel@vger.kernel.org>,
Reloc Kernel List <fastboot@lists.osdl.org>,
ak@suse.de, horms@verge.net.au, lace@jankratochvil.net,
hpa@zytor.com, magnus.damm@gmail.com, lwang@redhat.com,
dzickus@redhat.com, maneesh@in.ibm.com
Subject: Re: [PATCH 12/12] i386 boot: Add an ELF header to bzImage
Date: Fri, 6 Oct 2006 14:38:46 -0400 [thread overview]
Message-ID: <20061006183846.GF19756@in.ibm.com> (raw)
In-Reply-To: <m1bqop38nw.fsf@ebiederm.dsl.xmission.com>
On Fri, Oct 06, 2006 at 06:56:03AM -0600, Eric W. Biederman wrote:
> Andrew Morton <akpm@osdl.org> writes:
>
> > On Thu, 05 Oct 2006 09:29:42 -0600
> > ebiederm@xmission.com (Eric W. Biederman) wrote:
> >
> >>
> >> In the lazy programmer school of fixes.
> >>
> >> I haven't really tested this in any configuration.
> >> But reading video.S it does use variable in the bootsector.
> >> It does seem to initialize the variables before use.
> >> But obviously something is missed.
> >>
> >> By zeroing the uninteresting parts of the bootsector just after we
> >> have determined we are loaded ok. We should ensure we are
> >> always in a known state the entire time.
> >>
> >> Andrew if I am right about the cause of your video not working
> >> when you set an enhanced video mode this should fix your boot
> >> problem.
> >>
> >> Singed-off-by: Eric Biederman <ebiederm@xmission.com>
> >>
> >> diff --git a/arch/i386/boot/setup.S b/arch/i386/boot/setup.S
> >> index 53903a4..246ac88 100644
> >> --- a/arch/i386/boot/setup.S
> >> +++ b/arch/i386/boot/setup.S
> >> @@ -287,6 +287,13 @@ # Check if an old loader tries to load a
> >> loader_panic_mess: .string "Wrong loader, giving up..."
> >>
> >> loader_ok:
> >> +# Zero initialize the variables we keep in the bootsector
> >> + xorw %di, %di
> >> + xorb %al, %al
> >> + movw $497, %cx
> >> + rep
> >> + stosb
> >> +
> >> # Get memory size (extended mem, kB)
> >>
> >> xorl %eax, %eax
> >
> > That fixed the vga=0x263 crash.
>
> Good. We still have to be paranoid and address HPA's missing cld issues,
> But otherwise it looks like we are in good shape.
>
Hi Eric,
I have added cld in the regenerated patch below.
Also one more minor nit. stosb relies on being %es set properly. By the
time control reaches loader_ok, i could not find %es being set explicitly
hence I am assuming we are relying on bootloader to set it up for us.
Maybe we can be little more paranoid and setup the %es before stosb. I
have done this change too in the attached patch. Pleaese have a look.
I know little about assembly code.
In the lazy programmer school of fixes.
I haven't really tested this in any configuration.
But reading video.S it does use variable in the bootsector.
It does seem to initialize the variables before use.
But obviously something is missed.
By zeroing the uninteresting parts of the bootsector just after we
have determined we are loaded ok. We should ensure we are
always in a known state the entire time.
Andrew if I am right about the cause of your video not working
when you set an enhanced video mode this should fix your boot
problem.
Singed-off-by: Eric Biederman <ebiederm@xmission.com>
Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com>
---
arch/i386/boot/setup.S | 11 +++++++++++
1 file changed, 11 insertions(+)
diff -puN arch/i386/boot/setup.S~i386-set-bootset-to-zero-fix arch/i386/boot/setup.S
--- linux-2.6.18-git17/arch/i386/boot/setup.S~i386-set-bootset-to-zero-fix 2006-10-06 12:42:19.000000000 -0400
+++ linux-2.6.18-git17-root/arch/i386/boot/setup.S 2006-10-06 12:49:37.000000000 -0400
@@ -287,6 +287,17 @@ good_sig:
loader_panic_mess: .string "Wrong loader, giving up..."
loader_ok:
+# Zero initialize the variables we keep in the bootsector
+ movw %cs, %ax # aka SETUPSEG
+ subw $DELTA_INITSEG, %ax # aka INITSEG
+ movw %ax, %es
+ xorw %di, %di
+ xorb %al, %al
+ movw $497, %cx
+ cld
+ rep
+ stosb
+
# Get memory size (extended mem, kB)
xorl %eax, %eax
_
next prev parent reply other threads:[~2006-10-06 18:39 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-03 17:00 [RFC][PATCH 0/12] ELF Relocatable x86 bzImage (V2) Vivek Goyal
2006-10-03 17:04 ` [PATCH 1/12] i386: Distinguish absolute symbols Vivek Goyal
2006-10-07 6:35 ` Andrew Morton
2006-10-08 16:47 ` Vivek Goyal
2006-10-09 7:35 ` Gerd Hoffmann
2006-10-09 13:49 ` Vivek Goyal
2006-10-03 17:06 ` [PATCH 2/12] i386: align data section to 4K boundary Vivek Goyal
2006-10-04 11:17 ` Andi Kleen
2006-10-04 15:18 ` H. Peter Anvin
2006-10-03 17:09 ` [PATCH 3/12] i386: Force section size to be non-zero to prevent a symbol becoming absolute Vivek Goyal
2006-10-04 11:02 ` Andi Kleen
2006-10-04 14:07 ` Eric W. Biederman
2006-10-04 14:45 ` Vivek Goyal
2006-10-04 16:09 ` Andrew Morton
2006-10-04 16:14 ` Vivek Goyal
2006-10-03 17:10 ` [PATCH 4/12] i386: define __pa_symbol() Vivek Goyal
2006-10-04 8:26 ` Franck Bui-Huu
2006-10-04 19:44 ` Vivek Goyal
2006-10-06 13:10 ` Franck Bui-Huu
2006-10-06 18:33 ` Vivek Goyal
2006-10-03 17:12 ` [PATCH 5/12] i386 setup.c: Reserve kernel memory starting from _text Vivek Goyal
2006-10-03 17:15 ` [PATCH 6/12] i386: CONFIG_PHYSICAL_START cleanup Vivek Goyal
2006-10-03 18:45 ` Dave Hansen
2006-10-03 18:52 ` Vivek Goyal
2006-10-03 18:59 ` Eric W. Biederman
2006-10-03 19:35 ` Vivek Goyal
2006-10-03 17:17 ` [PATCH 7/12] Make linux/elf.h safe to be included in assembly files Vivek Goyal
2006-10-03 17:19 ` [PATCH 8/12] elf: Add ELFOSABI_STANDALONE to elf.h Vivek Goyal
2006-10-03 17:21 ` [PATCH 9/12] kallsyms: Generate relocatable symbols Vivek Goyal
2006-10-03 17:22 ` [PATCH 10/12] i386: Relocatable kernel support Vivek Goyal
2006-10-03 17:24 ` [PATCH 11/12] i386: Implement CONFIG_PHYSICAL_ALIGN Vivek Goyal
2006-10-03 17:25 ` [PATCH 12/12] i386 boot: Add an ELF header to bzImage Vivek Goyal
2006-10-04 3:13 ` Andrew Morton
2006-10-04 4:28 ` Vivek Goyal
2006-10-04 4:40 ` H. Peter Anvin
2006-10-04 8:04 ` Eric W. Biederman
2006-10-04 15:18 ` H. Peter Anvin
2006-10-05 4:12 ` Eric W. Biederman
2006-10-05 4:17 ` H. Peter Anvin
2006-10-04 20:22 ` Vivek Goyal
2006-10-04 20:27 ` H. Peter Anvin
2006-10-04 20:48 ` Vivek Goyal
2006-10-04 20:52 ` H. Peter Anvin
2006-10-04 21:06 ` Vivek Goyal
2006-10-04 21:09 ` H. Peter Anvin
2006-10-04 5:37 ` Andrew Morton
2006-10-05 4:06 ` Eric W. Biederman
2006-10-05 4:12 ` H. Peter Anvin
2006-10-05 4:44 ` Andrew Morton
2006-10-05 6:13 ` Eric W. Biederman
2006-10-05 6:31 ` Andrew Morton
2006-10-05 6:48 ` Eric W. Biederman
2006-10-05 21:54 ` Vivek Goyal
2006-10-05 15:25 ` H. Peter Anvin
2006-10-05 15:35 ` Eric W. Biederman
2006-10-05 15:29 ` Eric W. Biederman
2006-10-05 15:44 ` H. Peter Anvin
2006-10-06 6:59 ` Andrew Morton
2006-10-06 12:56 ` Eric W. Biederman
2006-10-06 18:38 ` Vivek Goyal [this message]
2006-10-06 18:54 ` H. Peter Anvin
2006-10-06 19:09 ` Eric W. Biederman
2006-10-06 21:54 ` H. Peter Anvin
2006-10-09 14:33 ` Vivek Goyal
2006-10-10 3:14 ` Andrew Morton
2006-10-10 4:51 ` Eric W. Biederman
2006-10-10 14:30 ` Vivek Goyal
2006-10-10 18:46 ` Andrew Morton
2006-10-10 21:40 ` Vivek Goyal
2006-10-11 2:35 ` Andrew Morton
2006-10-06 19:01 ` Eric W. Biederman
2006-10-04 7:08 ` Eric W. Biederman
2006-10-04 14:23 ` Vivek Goyal
2006-10-05 3:09 ` Eric W. Biederman
2006-10-04 17:03 ` Vivek Goyal
2006-10-05 6:25 ` Eric W. Biederman
2006-10-05 21:34 ` Vivek Goyal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20061006183846.GF19756@in.ibm.com \
--to=vgoyal@in.ibm.com \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=dzickus@redhat.com \
--cc=ebiederm@xmission.com \
--cc=fastboot@lists.osdl.org \
--cc=horms@verge.net.au \
--cc=hpa@zytor.com \
--cc=lace@jankratochvil.net \
--cc=linux-kernel@vger.kernel.org \
--cc=lwang@redhat.com \
--cc=magnus.damm@gmail.com \
--cc=maneesh@in.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox