<div dir="ltr">Hello everyone,<div><br></div><div>The fix for the efi timers that was pushed up (commit 5cf5ffea2874434ffdc64c3242f2c53ed7ec1d40) fixes this issue. Thanks Michael!</div><div><br></div><div>Vish</div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Dec 1, 2016 at 2:45 PM Vishvananda Ishaya <<a href="mailto:vishvananda@gmail.com">vishvananda@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg">There was a bug introduced earlier this year booting grub in uefi mode. Our setup looks like the following:<div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">ipxe script:</div><div class="gmail_msg">





<p class="m_-4150239541969891638inbox-inbox-p1 gmail_msg"><span class="m_-4150239541969891638inbox-inbox-s1 gmail_msg">#!ipxe<br class="gmail_msg"></span>chain <span class="m_-4150239541969891638inbox-inbox-s2 gmail_msg"><a href="http://192.168.0.1/script.ipxe" class="gmail_msg" target="_blank">http://192.168.0.1/script.ipxe</a></span></p></div><div class="gmail_msg"><span class="m_-4150239541969891638inbox-inbox-s2 gmail_msg">192.168.0.1 is a webserver that serves up a grub.efi file and another script at /script.ipxe:</span></div><div class="gmail_msg"><span class="m_-4150239541969891638inbox-inbox-s2 gmail_msg"><br class="gmail_msg"></span></div><div class="gmail_msg"><span class="m_-4150239541969891638inbox-inbox-s2 gmail_msg"><span class="m_-4150239541969891638inbox-inbox-inbox-inbox-s1 gmail_msg">#!ipxe<br class="gmail_msg"></span>chain<span class="m_-4150239541969891638inbox-inbox-Apple-converted-space gmail_msg"> </span><span class="m_-4150239541969891638inbox-inbox-inbox-inbox-s2 gmail_msg">grub.uefi</span><br class="gmail_msg"></span></div><div class="gmail_msg"><span class="m_-4150239541969891638inbox-inbox-s2 gmail_msg"><span class="m_-4150239541969891638inbox-inbox-inbox-inbox-s2 gmail_msg"><br class="gmail_msg"></span></span></div><div class="gmail_msg"><span class="m_-4150239541969891638inbox-inbox-s2 gmail_msg"><span class="m_-4150239541969891638inbox-inbox-inbox-inbox-s2 gmail_msg">This successfully chains into grub, but attempting to boot in grub fails:</span></span></div><div class="gmail_msg"><span class="m_-4150239541969891638inbox-inbox-s2 gmail_msg"><span class="m_-4150239541969891638inbox-inbox-inbox-inbox-s2 gmail_msg"><br class="gmail_msg"></span></span></div><div class="gmail_msg"><span class="m_-4150239541969891638inbox-inbox-s2 gmail_msg"><span class="m_-4150239541969891638inbox-inbox-inbox-inbox-s2 gmail_msg">insmod net</span></span></div><div class="gmail_msg"><span class="m_-4150239541969891638inbox-inbox-s2 gmail_msg"><span class="m_-4150239541969891638inbox-inbox-inbox-inbox-s2 gmail_msg">insmod efinet</span></span></div><div class="gmail_msg"><span class="m_-4150239541969891638inbox-inbox-s2 gmail_msg"><span class="m_-4150239541969891638inbox-inbox-inbox-inbox-s2 gmail_msg">insmod http</span></span></div><div class="gmail_msg"><span class="m_-4150239541969891638inbox-inbox-s2 gmail_msg"><span class="m_-4150239541969891638inbox-inbox-inbox-inbox-s2 gmail_msg"><div class="gmail_msg">net_add_addr eno0 efinet0 192.168.10.10</div><div class="gmail_msg">set net_default_server=192.168.10.1</div><div class="gmail_msg">echo 'Loading kernel'</div><div class="gmail_msg">linux (http)/kernel initrd=initrd console=ttyS0,9600 console=tty0</div><div class="gmail_msg">echo 'Loading initrd'</div><div class="gmail_msg">initrd (http)/initrd</div><div class="gmail_msg">boot</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">The boot just hangs. With debug on, grub prints out a bunch of memory mapping statements like "mmap/efi/mmap.c:66: EFI memory region 0xff000000-0x100000000: 11" but eventually stops . This same process worked with an older version of ipxe. Git-bisect shows that the following commit as the offender:</div>





<div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">commit <b class="gmail_msg">757ab983811ac8d3f65efb65b8309738bd33bea3</b><br class="gmail_msg"></div><div class="gmail_msg">
<p class="m_-4150239541969891638inbox-inbox-p1 gmail_msg"><span class="m_-4150239541969891638inbox-inbox-s1 gmail_msg">Author: Michael Brown <<a href="mailto:mcb30@ipxe.org" class="gmail_msg" target="_blank"><span class="m_-4150239541969891638inbox-inbox-s2 gmail_msg">mcb30@ipxe.org</span></a>></span></p>
<p class="m_-4150239541969891638inbox-inbox-p1 gmail_msg"><span class="m_-4150239541969891638inbox-inbox-s1 gmail_msg">Date:   Wed May 4 13:04:33 2016 +0100</span></p>
<p class="m_-4150239541969891638inbox-inbox-p1 gmail_msg"><span class="m_-4150239541969891638inbox-inbox-s1 gmail_msg">    [efi] Use a timer event to generate the currticks() timer</span></p><p class="m_-4150239541969891638inbox-inbox-p1 gmail_msg">For further verification if we git-revert both 694c18addc0dfdf51369f6d598dd0c8ca4bf2861 (which made a small modification to the timers) and 757ab983811ac8d3f65efb65b8309738bd33bea3 the boot process works again. We have tested using edk2 in qemu/kvm and real x86_64 hardware with the same result.</p><p class="m_-4150239541969891638inbox-inbox-p1 gmail_msg">This leads me to believe there is something wrong with the timer code, but it isn't obvious what it might be. Adding DEBUG=efi_timer:3 only seems to print the line "EFI timer started at 20 ticks per second". For now we have just reverted the patches since we don't need ARM support, but we would be happy to help test if anyone has an idea what might be causing the freeze.<br class="gmail_msg"></p><p class="m_-4150239541969891638inbox-inbox-p1 gmail_msg">Vish</p>





</div></span></span></div><div class="gmail_msg"><span class="m_-4150239541969891638inbox-inbox-s2 gmail_msg"><span class="m_-4150239541969891638inbox-inbox-inbox-inbox-s2 gmail_msg"><br class="gmail_msg"></span></span></div></div></blockquote></div>