All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Sebastian Herbszt" <herbszt@gmx.de>
To: Gleb Natapov <gleb@redhat.com>, bochs-developers@lists.sourceforge.net
Cc: qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: [Bochs-developers] [PATCH v2 4/6] Execute rombios32 code from romaddress 0xe0000.
Date: Sat, 8 Nov 2008 00:20:56 +0100	[thread overview]
Message-ID: <B3159364EEA14CA68F724F6CEF26D67E@FSCPC> (raw)
In-Reply-To: <20081103092640.8058.55798.stgit@dhcp-1-237.local>

Gleb Natapov wrote:

> Signed-off-by: Gleb Natapov <gleb@redhat.com>
> ---
> 
> bios/Makefile.in      |    1 +
> bios/rombios.c        |   17 +----------------
> bios/rombios32.ld     |    8 +++-----
> bios/rombios32start.S |    9 ++++++++-
> 4 files changed, 13 insertions(+), 22 deletions(-)
> 
> diff --git a/bios/Makefile.in b/bios/Makefile.in
> index b055910..af674b4 100644
> --- a/bios/Makefile.in
> +++ b/bios/Makefile.in
> @@ -106,6 +106,7 @@ rombios32.o: rombios32.c acpi-dsdt.hex
> ifeq ("1", "0")
> acpi-dsdt.hex: acpi-dsdt.dsl
>  iasl -tc -p $@ $<
> + sed -i -e's/^unsigned/const unsigned/' $@
> endif
> 
> rombios32start.o: rombios32start.S
> diff --git a/bios/rombios.c b/bios/rombios.c
> index 03540cb..098543c 100644
> --- a/bios/rombios.c
> +++ b/bios/rombios.c
> @@ -10026,13 +10026,6 @@ rombios32_05:
>   mov gs, ax
>   cld
> 
> -  ;; copy rombios32 code to ram (ram offset = 1MB)
> -  mov esi, #0xfffe0000
> -  mov edi, #0x00040000
> -  mov ecx, #0x10000 / 4
> -  rep
> -    movsd
> -
>   ;; init the stack pointer
>   mov esp, #0x00080000
> 
> @@ -10041,17 +10034,9 @@ rombios32_05:
>   push #0x04b2
> 
>   ;; call rombios32 code
> -  mov eax, #0x00040000
> +  mov eax, #0x000e0000
>   call eax
> 
> -  ;; reset the memory (some boot loaders such as syslinux suppose
> -  ;; that the memory is set to zero)
> -  mov edi, #0x00040000
> -  mov ecx, #0x40000 / 4
> -  xor eax, eax
> -  rep
> -    stosd
> -
>   ;; return to 16 bit protected mode first
>   db 0xea
>   dd rombios32_10
> diff --git a/bios/rombios32.ld b/bios/rombios32.ld
> index c7f6066..113a2c0 100644
> --- a/bios/rombios32.ld
> +++ b/bios/rombios32.ld
> @@ -3,14 +3,12 @@ OUTPUT_ARCH(i386)
> ENTRY(_start);
> SECTIONS
> {
> -        . = 0x00040000;
> +        . = 0x000e0000;
>         .text     : { *(.text)    }
>         .rodata    : { *(.rodata) }
> -        . = ALIGN(4096);
> -        .data     : { *(.data)    }
> -        __bss_start = . ;
> -        .bss      : { *(.bss) *(COMMON) }
>         _end = . ;
> +        .data 0x700 : AT (_end) { __data_start = .; *(.data); __data_end = .;}
> +        .bss      : { __bss_start = .; *(.bss) *(COMMON); __bss_end = .;}
>         /DISCARD/ : { *(.stab)
>                      *(.stabstr)
>                      *(.comment)

The .data section is currently empty because all data is read-only and put
into .rodata, .rodata.str1.1 and .rodata.str1.4. As soon as we put something
into .data we get a link error because .data now overlaps .rodata.str1.1.
The error is gone if we put all .rodata input sections into .rodata output
section with ".rodata    : { *(.rodata*)".

> diff --git a/bios/rombios32start.S b/bios/rombios32start.S
> index 601e2b0..1900261 100644
> --- a/bios/rombios32start.S
> +++ b/bios/rombios32start.S
> @@ -32,10 +32,17 @@ _start:
>   /* clear bss section */
>   xor %eax, %eax
>   mov $__bss_start, %edi
> -  mov $_end, %ecx
> +  mov $__bss_end, %ecx
>   sub %edi, %ecx
>   rep stosb

We do overwrite data at 0x700 here. Is this acceptable for S3 resume?

> +  /* copy data section */
> +  mov $_end, %esi
> +  mov $__data_start, %edi
> +  mov $__data_end, %ecx
> +  sub %edi, %ecx
> +  rep movsb
> +

As described above this is currently a no-op, because
__data_start = __data_end = 0x700.

>   jmp rombios32_init
> 
>   .code16
> 

- Sebastian

  reply	other threads:[~2008-11-07 23:23 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-03  9:26 [Qemu-devel] [PATCH v2 0/6] Support for S3 ACPI state (suspend to memory) in BIOS Gleb Natapov
2008-11-03  9:26 ` [Qemu-devel] [PATCH v2 1/6] Move PIC initialization out of line to save space in post code area Gleb Natapov
2008-11-06 21:42   ` [Qemu-devel] Re: [Bochs-developers] [PATCH v2 1/6] Move PIC initialization out ofline " Sebastian Herbszt
2008-11-03  9:26 ` [Qemu-devel] [PATCH v2 2/6] Add S3 state to DSDT. Handle resume event in the BIOS Gleb Natapov
2008-11-06 23:03   ` [Qemu-devel] Re: [Bochs-developers] [PATCH v2 2/6] Add S3 state to DSDT. Handleresume " Sebastian Herbszt
2008-11-10  8:24     ` Gleb Natapov
2008-11-03  9:26 ` [Qemu-devel] [PATCH v2 3/6] Preserve memory content during SMM init Gleb Natapov
2008-11-03  9:26 ` [Qemu-devel] [PATCH v2 4/6] Execute rombios32 code from rom address 0xe0000 Gleb Natapov
2008-11-07 23:20   ` Sebastian Herbszt [this message]
2008-11-08  7:51     ` [Qemu-devel] Re: [Bochs-developers] [PATCH v2 4/6] Execute rombios32 code from romaddress 0xe0000 Gleb Natapov
2008-11-10 19:25       ` [Qemu-devel] Re: [Bochs-developers] [PATCH v2 4/6] Execute rombios32 code fromromaddress 0xe0000 Sebastian Herbszt
2008-11-10 21:18         ` Gleb Natapov
2008-11-03  9:26 ` [Qemu-devel] [PATCH v2 5/6] Don't use unreserved memory in BIOS Gleb Natapov
2008-11-07  0:25   ` [Qemu-devel] Re: [Bochs-developers] " Kevin O'Connor
2008-11-07  0:31     ` Michael Brown
2008-11-09 17:40     ` [Qemu-devel] Re: [Bochs-developers] [PATCH v2 5/6] Don't use unreservedmemory " Sebastian Herbszt
2008-11-09 19:43       ` Kevin O'Connor
2008-11-10 19:55         ` [Qemu-devel] Re: [Bochs-developers] [PATCH v2 5/6] Don't use unreservedmemory inBIOS Sebastian Herbszt
2008-11-03  9:26 ` [Qemu-devel] [PATCH v2 6/6] Don't power down vga card on entering S3 state Gleb Natapov

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=B3159364EEA14CA68F724F6CEF26D67E@FSCPC \
    --to=herbszt@gmx.de \
    --cc=bochs-developers@lists.sourceforge.net \
    --cc=gleb@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.