On 1/12/17 6:18 AM, Daniel Kiper wrote: >>>> >>>> So as an aside, IMHO this is where the series should end and the next >>>> set of patches should be a follow on. >>> >>> Hmmm... Why? If you do not apply rest of patches then MB2 does not >>> work on all EFI platforms. >>> >>> Daniel >> >> So I should have expanded more in my other email. I've got this series >> pulled in on top of 4.8 along with different fixes as discussed on this >> thread: >> >> https://github.com/cardoe/xen/tree/48-and-daniel >> >> This boots up on my NUC but reports the other CPUs as stuck and the >> error is -5. This starts to come up on the Lenovo and it gets to near >> where it starts the dom0 kernel and then blanks the screen and hard >> hangs. This causes cr0 crashes on the other boards I've got access to. >> >> I've also got the series only to this point with the fixes. >> >> https://github.com/cardoe/xen/tree/48-and-daniel-sans-relocate >> >> The later version boots up on my NUC with all CPUs. It still hangs on >> the Lenovo. It works on the other boards. It also appears work under QEMU. > > AIUI, you are trying to add full (legacy BIOS and EFI) MB2 support to iPXE. Great!. > Though I think that you should do this in steps. First of all you should have MB2 > fully running on legacy BIOS platforms. It is much simpler. If it works move to EFI > platforms. OVMF is good choice for start but of course finally tests should be done > on real hardware. You can do tests on legacy BIOS with just patch #01. If everything > works then apply whole patch series to Xen and add MB2 reloc functionality. If it > works move to EFI platform tests. It is important that you do EFI platform tests with > whole patch series. This way you avoid issues related to overwriting BS/RS code/data. > > Daniel > Daniel, I appreciate your input. I do like the approach of splitting things up into small incremental pieces, that's the way all this work should be happening. You should also be aware that iPXE takes the approach of least amount of functionality/code to make things work. So from their view there's no reason for adding MB2 support for BIOS since it provides no advantage over MB1 when booting from the BIOS. Now MB2 solves a problem with booting over EFI vs MB1 so they'll be willing to take a change there. I'll also disagree that BIOS is easier than EFI since with EFI its just load the ELF into memory and set a few pointers in tags. With BIOS it requires me to build up the memory map into a MB2 structure. As far as it goes I've got iPXE booting MB2 EFI payloads just fine. The issues I've explained here happen when I use Grub or iPXE to boot Xen so its not implementation specific to my iPXE code. -- Doug Goldstein