Thank you for your help, I have changed my operation, but my coreboot still step to grub.
/************************************* LOG *********************************************************/ Check fallback/payload Got a payload Loading segment from rom address 0xfff29ff8 data (compression=1) New segment dstaddr 0x8200 memsize 0xd8b8 srcaddr 0xfff2a04c filesize 0x3a69 (cleaned up) New segment addr 0x8200 size 0xd8b8 offset 0xfff2a04c filesize 0x3a69 Loading segment from rom address 0xfff2a014 data (compression=1) New segment dstaddr 0x15ab8 memsize 0x69914 srcaddr 0xfff2dab5 filesize 0x1d0c0 (cleaned up) New segment addr 0x15ab8 size 0x69914 offset 0xfff2dab5 filesize 0x1d0c0 Loading segment from rom address 0xfff2a030 Entry Point 0x00008200 Loading Segment: addr: 0x0000000000008200 memsz: 0x000000000000d8b8 filesz: 0x0000000000003a69 lb: [0x0000000000100000, 0x0000000000164000) Post relocation: addr: 0x0000000000008200 memsz: 0x000000000000d8b8 filesz: 0x0000000000003a69 using LZMA [ 0x00008200, 0000e51b, 0x00015ab8) <- fff2a04c Clearing Segment: addr: 0x000000000000e51b memsz: 0x000000000000759d dest 00008200, end 00015ab8, bouncebuffer 7fe28000 Loading Segment: addr: 0x0000000000015ab8 memsz: 0x0000000000069914 filesz: 0x000000000001d0c0 lb: [0x0000000000100000, 0x0000000000164000) Post relocation: addr: 0x0000000000015ab8 memsz: 0x0000000000069914 filesz: 0x000000000001d0c0 using LZMA [ 0x00015ab8, 0007f3cc, 0x0007f3cc) <- fff2dab5 dest 00015ab8, end 0007f3cc, bouncebuffer 7fe28000 Loaded segments Jumping to boot code at 8200 entry = 0x00008200 lb_start = 0x00100000 lb_size = 0x00064000 adjust = 0x7fd8c000 buffer = 0x7fe28000 elf_boot_notes = 0x0011622c adjusted_boot_notes = 0x7fea222c
/****************************************************************************************************/ I have added "grub_printf("Enter grub_main()!\n")" in the top of grub_main()(defined in grub-core/kern/main.c). Unfortunately, nothing can be printed out when booting. I don't know it is stopped before grub C code or I don't open some grub2 option which close the standard output mode.
2011/5/31 Cui Leineverforget_2002@163.com:
I am working hard at building coreboot with grub2 payload. Now I can build a grub2 payload as follow: 1: Download the lastest grub2 source code. 2: ./autogen.sh ./configure --with-platform=coreboot make 3: Use grub-mkimage to generate a "payload.elf", detail: ./grub-mkimage -d . -O i386-coreboot -o ../coreboot-v4/payload.elf --prefix='/boot/grub2' memdisk cpio -m ../memdisk.tar
Accoding the coreboot website(http://www.coreboot.org/Talk:GRUB2),
memdisk is a virtual disk in grub image and it is suggested that grub.cfg is contained in a memdisk image. So I made folders boot/grub2 in my work folder and add a new grub.cfg and some modules(such as memdisk.mod cpio.mod ...) into the boot/grub2, then tar boot/grub2 to memdisk.tar(according to the website tar can be used to build a memdisk image).
Problems: 1: I don't know wether grub2 can found my grub.cfg ,if I set " --prefix='/boot/grub2' " ? On the coreboot website,a sample is --prefix='(ata0)/boot/grub2'. I think the ata0 is hard disk. but I use the memdisk image, what should I do ?
I use this to create a custom grub2 efi app with memdisk embedded -
/bin/grub-mkimage --directory=/usr/lib/grub/x86_64-efi --memdisk="${memdisk_64_img}" --prefix='(memdisk)/efi/grub2' --format=x86_64-efi --compression=xz --output="${grub2_efi_mp}/efi/boot/bootx64.efi" ${GRUB2_MODULES}
Hope this helps.
2: I want my grub.cfg in memdisk to load the grub.cfg from my hard disk.
Because I have install the ubuntu11.04 on my hard disk, a grub.cfg file should be in the /boot/grub. So my grub.cfg just like this: search -f -s /boot/grub/grub.cfg configfile /boot/grub/grub.cfg
Is this practicable?
Make it
search --file --no-floppy --set=root /boot/grub/grub.cfg configfile (${root})/boot/grub/grub.cfg
3: I want the gurb can boot into the grub-shell, how to ?
I can't understand the question. You want grub to boot into grub-shell? Don't create a ${prefix}/grub.cfg file.
BRs,
Rock.C
Regards.
Keshav