<div dir="ltr">Failing grub code<div>------------------------------------------</div><div><div>static void</div><div>init_cbfsdisk (void)</div><div>{</div><div>  grub_uint32_t ptr;</div><div>  struct cbfs_header *head;</div><div><br></div><div>  ptr = *(grub_uint32_t *) 0xfffffffc;</div><div>  head = (struct cbfs_header *) (grub_addr_t) ptr;</div><div>  grub_dprintf ("cbfs", "head=%p\n", head);</div><div><br></div><div>  /* coreboot current supports only ROMs <= 16 MiB. Bigger ROMs will</div><div>     have problems as RCBA is 18 MiB below end of 32-bit typically,</div><div>     so either memory map would have to be rearranged or we'd need to support</div><div>     reading ROMs through controller directly.</div><div>   */</div><div>  if (ptr < 0xff000000</div><div>      || 0xffffffff - ptr < (grub_uint32_t) sizeof (*head) + 0xf</div><div>      || !validate_head (head))</div><div>    return;</div><div>------------------------------------------</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Mar 19, 2017 at 11:47 AM, Gailu Singh <span dir="ltr"><<a href="mailto:gailu96@gmail.com" target="_blank">gailu96@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Experts,<div><br></div><div>On Intel Leafhill board grub fails to find cbfsdisk. We tried to debug and found that cbfs header address validation fails.</div><div><br></div><div><p class="MsoNormal"><span style="font-size:9.5pt;font-family:arial,sans-serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">According to<span class="m_-5783713353179512145gmail-apple-converted-space"> </span></span><a href="https://github.com/mrnuke/coreboot/blob/master/documentation/cbfs.txt" target="_blank"><span style="font-size:9.5pt;font-family:arial,sans-serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">https://github.com/mrnuke/<wbr>coreboot/blob/master/<wbr>documentation/cbfs.txt</span></a><span style="font-size:9.5pt;font-family:arial,sans-serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">,</span><span style="font-size:9.5pt;font-family:arial,sans-serif"><br>
<span style="background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">"A pointer to the location of the header
will be located at offset -4 </span><span style="background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">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". <span></span></span></span></p><p class="MsoNormal"><span style="font-size:9.5pt;font-family:arial,sans-serif"><span style="background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"><br></span></span></p><p class="MsoNormal"><span style="font-size:9.5pt;font-family:arial,sans-serif"><span style="background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">We checked the coreboot.rom in hex editor and address in last 4 bytes</span></span><span style="font-size:12.6667px"> is all ones (FFFFFFFF) as a result grub is not able to find cbfs header.</span></p><p class="MsoNormal"><span style="font-size:12.6667px"><br></span></p><p class="MsoNormal"><span style="font-size:12.6667px">We have earlier used coreboot on baytrail and in the coreboot.rom cbfs header address in last 4 byte was a valid pointer.</span></p><p class="MsoNormal"><span style="font-size:12.6667px"><br></span></p><p class="MsoNormal"><span style="font-size:12.6667px">What is the location grub can find cbfs header on this board?</span></p></div><div><br></div></div>
</blockquote></div><br></div>