Failing grub code ------------------------------------------ static void init_cbfsdisk (void) { grub_uint32_t ptr; struct cbfs_header *head;
ptr = *(grub_uint32_t *) 0xfffffffc; head = (struct cbfs_header *) (grub_addr_t) ptr; grub_dprintf ("cbfs", "head=%p\n", head); /* coreboot current supports only ROMs <= 16 MiB. Bigger ROMs will have problems as RCBA is 18 MiB below end of 32-bit typically, so either memory map would have to be rearranged or we'd need to support reading ROMs through controller directly. */ if (ptr < 0xff000000 || 0xffffffff - ptr < (grub_uint32_t) sizeof (*head) + 0xf || !validate_head (head)) return; ------------------------------------------ On Sun, Mar 19, 2017 at 11:47 AM, Gailu Singh <gail...@gmail.com> wrote: > Hi Experts, > > On Intel Leafhill board grub fails to find cbfsdisk. We tried to debug and > found that cbfs header address validation fails. > > According to https://github.com/mrnuke/coreboot/blob/master/ > documentation/cbfs.txt, > "A pointer to the location of the header will be located at offset -4 from > the end of the ROM. This translates to address 0xFFFFFFFC on a normal x86 > system. The pointer will be to physical memory somewhere between - > 0xFFFFB000 and 0xFFFFFFF0". > > > We checked the coreboot.rom in hex editor and address in last 4 bytes is > all ones (FFFFFFFF) as a result grub is not able to find cbfs header. > > > We have earlier used coreboot on baytrail and in the coreboot.rom cbfs > header address in last 4 byte was a valid pointer. > > > What is the location grub can find cbfs header on this board? > >
-- coreboot mailing list: coreboot@coreboot.org https://www.coreboot.org/mailman/listinfo/coreboot