[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Grub2 can not detect usb disk
From: |
Vladimir 'φ-coder/phcoder' Serbinenko |
Subject: |
Re: Grub2 can not detect usb disk |
Date: |
Thu, 30 Jun 2011 15:44:16 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110626 Iceowl/1.0b2 Icedove/3.1.11 |
On 30.06.2011 04:38, Cui Lei wrote:
> I have found the the last version which can boot my machine, it is
> the r2348. The r2349 can not boot it.
> So I checked out the changelog from 2348 to 2349 :
>
.config from coreboot would be useful as well
> /*************************************************************************************************************/
> === modified file 'ChangeLog'
> --- ChangeLog 2010-05-01 12:06:53 +0000
> +++ ChangeLog 2010-05-01 12:32:48 +0000
> @@ -1,5 +1,20 @@
> 2010-05-01 Vladimir Serbinenko <address@hidden>
>
> + Use LBIO on coreboot.
> +
> + * conf/i386-coreboot.rmk (kernel_img_SOURCES): Change
> + kern/i386/multiboot_mmap.c to kern/i386/coreboot/mmap.c.
> + * include/grub/i386/coreboot/memory.h (GRUB_LINUXBIOS_MEMBER_LINK):
> + New declaration.
> + * kern/i386/coreboot/init.c (grub_machine_init): Don't call
> + grub_machine_mmap_init on coreboot.
> + * kern/i386/coreboot/mmap.c (grub_linuxbios_table_iterate): Handle
> + GRUB_LINUXBIOS_MEMBER_LINK.
> + (grub_machine_mmap_iterate): Fix declaration.
> + * kern/i386/coreboot/startup.S: Don't save mbi location on coreboot.
> +
> +2010-05-01 Vladimir Serbinenko <address@hidden>
> +
> Split coreboot and multiboot ports.
>
> * conf/i386-multiboot.rmk: New file.
>
> === modified file 'conf/i386-coreboot.rmk'
> --- conf/i386-coreboot.rmk 2010-04-10 23:14:31 +0000
> +++ conf/i386-coreboot.rmk 2010-05-01 12:32:48 +0000
> @@ -10,7 +10,7 @@
> kernel_img_SOURCES = kern/i386/coreboot/startup.S \
> kern/i386/misc.S \
> kern/i386/coreboot/init.c \
> - kern/i386/multiboot_mmap.c \
> + kern/i386/coreboot/mmap.c \
> kern/i386/halt.c \
> kern/main.c kern/device.c \
> kern/disk.c kern/dl.c kern/file.c kern/fs.c kern/err.c \
>
> === modified file 'include/grub/i386/coreboot/memory.h'
> --- include/grub/i386/coreboot/memory.h 2008-11-20 20:30:24 +0000
> +++ include/grub/i386/coreboot/memory.h 2010-05-01 12:32:48 +0000
> @@ -44,8 +44,9 @@
>
> struct grub_linuxbios_table_item
> {
> -#define GRUB_LINUXBIOS_MEMBER_UNUSED 0
> -#define GRUB_LINUXBIOS_MEMBER_MEMORY 1
> +#define GRUB_LINUXBIOS_MEMBER_UNUSED 0x00
> +#define GRUB_LINUXBIOS_MEMBER_MEMORY 0x01
> +#define GRUB_LINUXBIOS_MEMBER_LINK 0x11
> grub_uint32_t tag;
> grub_uint32_t size;
> };
>
> === modified file 'kern/i386/coreboot/init.c'
> --- kern/i386/coreboot/init.c 2010-02-06 23:52:31 +0000
> +++ kern/i386/coreboot/init.c 2010-05-01 12:32:48 +0000
> @@ -117,7 +117,9 @@
> return 0;
> }
>
> +#ifdef GRUB_MACHINE_MULTIBOOT
> grub_machine_mmap_init ();
> +#endif
> grub_machine_mmap_iterate (heap_init);
>
> grub_tsc_init ();
>
> === modified file 'kern/i386/coreboot/mmap.c'
> --- kern/i386/coreboot/mmap.c 2008-08-17 16:32:18 +0000
> +++ kern/i386/coreboot/mmap.c 2010-05-01 12:32:48 +0000
> @@ -57,13 +57,23 @@
> (long) table_header->size);
> for (; table_item->size;
> table_item = (grub_linuxbios_table_item_t) ((long) table_item
> + (long) table_item->size))
> - if (hook (table_item))
> - return 1;
> + {
> + if (table_item->tag == GRUB_LINUXBIOS_MEMBER_LINK
> + && check_signature ((grub_linuxbios_table_header_t)
> (grub_addr_t)
> + *(grub_uint64_t *) (table_item + 1)))
> + {
> + table_header = (grub_linuxbios_table_header_t) (grub_addr_t)
> + *(grub_uint64_t *) (table_item + 1);
> + goto signature_found;
> + }
> + if (hook (table_item))
> + return 1;
> + }
>
> return 0;
> }
>
> -void
> +grub_err_t
> grub_machine_mmap_iterate (int NESTED_FUNC_ATTR (*hook)
> (grub_uint64_t, grub_uint64_t, grub_uint32_t))
> {
> mem_region_t mem_region;
>
> === modified file 'kern/i386/coreboot/startup.S'
> --- kern/i386/coreboot/startup.S 2009-12-24 14:09:06 +0000
> +++ kern/i386/coreboot/startup.S 2010-05-01 12:32:48 +0000
> @@ -66,10 +66,12 @@
> .long -0x1BADB002 - MULTIBOOT_MEMORY_INFO
>
> codestart:
> +#ifdef GRUB_MACHINE_MULTIBOOT
> cmpl $MULTIBOOT_BOOTLOADER_MAGIC, %eax
> jne 0f
> movl %ebx, EXT_C(startup_multiboot_info)
> 0:
> +#endif
>
> /* initialize the stack */
> movl $GRUB_MEMORY_MACHINE_PROT_STACK, %esp
>
> /***********************************************************************************************************************/
>
> I guess it may be because the file "kern/i386/coreboot/mmap.c", but it
> has too much diffs with the multiboot_mmap.c
> and I am not familiar with the mmap at all, so I don't know how to
> found out the causes.
>
> Rock.
>
>> On 28.06.2011 12:02, Cui Lei wrote:
>>> Sorry , I don't know what the meaning of the "bisect" and how to do?
>>> Could you tell me some message in detail ?
>> You take a revision which doesn't work (1.99rc2 = r3229) and a working
>> one (1.98 = r2249). Then you try a revision in the middle, e.g. r2749.
>> If it works the error is in the range 2749..3229, otherwise in
>> 2249..2749, then you try a revision inside this range and in 10 steps
>> you'll have the exact revision which causes your problem.
>>> Thanks a lot.
>>>
>>> BRs,
>>>
>>> Rock.
>>>
>>>> On 28.06.2011 10:45, Rock Cui wrote:
>>>>> I had tried to use the grub1.99rc2 as a payload of coreboot at the
>>>>> beginning, but it can not boot my machine,
>>>> Could you try to bisect? Recent bzr worked fine in qemu+coreboot. Your
>>>> machine may present some special aspect and bisect is probably the
>>>> fastest way in your case.
>>>>> so I changed to 1.98
>>>> As I said USB support in 1.98 wasn't good enough. Basically it worked
>>>> only in qemu.
>>>>> , then booting succeed. I want to insmod the uhci.mod and usbms.mod to
>>>>> support USB,
>>>>> but they are not exit in my build folder. If I run "configure" with
>>>>> "--with-platform=pc", they will be there, but
>>>>> with "--with-platform=coreboot", I can not found them. I don't know
>>>>> what should I do to get them for i386-coreboot, so I use the two
>>>>> modules which were built with "--with-platform=pc" in my payload.elf.
>>>> USB modules weren't enabled in 1.98 on coreboot.
>>>>> Surprising, they can be insmoded and run in the grub-shell , but
>>>>> unfortunately, I got those logs, they can not
>>>>> work.
>>>> it's already surprising they didn't crash GRUB altogether.
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Grub-devel mailing list
>>>> address@hidden
>>>> https://lists.gnu.org/mailman/listinfo/grub-devel
>>> _______________________________________________
>>> Grub-devel mailing list
>>> address@hidden
>>> https://lists.gnu.org/mailman/listinfo/grub-devel
>>
>>
>> _______________________________________________
>> Grub-devel mailing list
>> address@hidden
>> https://lists.gnu.org/mailman/listinfo/grub-devel
>
>
> _______________________________________________
> Grub-devel mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/grub-devel
--
Regards
Vladimir 'φ-coder/phcoder' Serbinenko
signature.asc
Description: OpenPGP digital signature
- Re: Grub2 can not detect usb disk, (continued)
- Re: Grub2 can not detect usb disk, Rock Cui, 2011/06/27
- Re: Grub2 can not detect usb disk, Vladimir 'φ-coder/phcoder' Serbinenko, 2011/06/28
- Re: Grub2 can not detect usb disk, Rock Cui, 2011/06/28
- Re: Grub2 can not detect usb disk, Vladimir 'φ-coder/phcoder' Serbinenko, 2011/06/28
- Re: Grub2 can not detect usb disk, Cui Lei, 2011/06/28
- Re: Grub2 can not detect usb disk, Vladimir 'φ-coder/phcoder' Serbinenko, 2011/06/28
- Re: Grub2 can not detect usb disk, Graeme Russ, 2011/06/28
- Re: Grub2 can not detect usb disk, Cui Lei, 2011/06/29
- Re: Grub2 can not detect usb disk, Vladimir 'φ-coder/phcoder' Serbinenko, 2011/06/30
- Re: Grub2 can not detect usb disk, Rock Cui, 2011/06/30
- Re: Grub2 can not detect usb disk,
Vladimir 'φ-coder/phcoder' Serbinenko <=