grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] ELF64 and changelog and 4Gb


From: Ruslan Nikolaev
Subject: Re: [PATCH] ELF64 and changelog and 4Gb
Date: Tue, 19 Jul 2005 18:01:22 -0500

> I agree. This is more readable.

I can change it of course... But it is not so bad:

1. if elf class == 64 => using ELF64 validate & loading code

2. else:

- validate header by grub_dl_check_header(). Function grub_dl_check_header() also will check that elf class is 32-bit.

and so on...

I'm very busy now, but if you want I can update code... As for me I think that is no need to check elf class twice (small optimization).


> Could you provide us detailed information? What information is passed
> precisely?

Ok... But first I have a question about grub2. Does it really provide "mmap" information for OS as multiboot defined or memory size only?

As for 4Gb limit:

1. Memory size variable is a 32-bit. It measures in bytes => max 4Gb. When it passes to OS it converts to KB measuring but it's still truncated to 4Gb.

2. You can see the following code in file "init.c":

 /* Ignore >4GB.  */
 if (entry->addr <= 0xFFFFFFFF && entry->type == 1)
   {
     grub_addr_t addr;
     grub_size_t len;

     addr = (grub_addr_t) entry->addr;
     len = ((addr + entry->len > 0xFFFFFFFF)
     ? 0xFFFFFFFF - addr
     : (grub_size_t) entry->len);
     add_mem_region (addr, len);
   }

Memory regions addr and len also is a 32-bit when BIOS provides it as a 64-bit numbers.

Of course I can be wrong because I don't know grub code very well.

 

New ChangeLog:

2005-07-17 Ruslan Nikolaev <address@hidden>

* multiboot.c (grub_rescue_cmd_multiboot): using ELF64 loading code if ELF CLASS is a 64-bit and CPU CLASS is X86_64


--

___________________________________________________________
Sign-up for Ads Free at Mail.com
http://www.mail.com/?sr=signup


reply via email to

[Prev in Thread] Current Thread [Next in Thread]