2 Replies Latest reply on Apr 16, 2018 12:06 PM by MDV55

    ITK5 crash with PY0069 for NUC5CPYH


      We're comfortable at using ITK5 and ITK6 for creating firmware/BIOS images with good results over the last few years. We need to create a legacy boot (non-UEFI) "BIOS" image for an existing product. Our current customized .bio based on PY0056 won't load on NUC5PHY units that we're receiving from  our distributor since the bio on the devices (0057 and 0066) is newer than our 0056 based customized bios. It fails with a Blue Screen "Incompatible Bios Version. Update Aborted!"


      Our legacy tool chain to push code to this product line on NUC5 is base on Legacy Boot (non-UEFI) processes, so we don't want to convert this process to UEFI for these last few units going through our supply chain. I know that if we use ITK6, then the only option is to use a UEFI boot process.


      Quoting N.Scott.Pearson in this message "The only way that this becomes a problem is if you are supporting only Legacy boot devices. In this case, then yes, the UEFI Shell is always going to start. To fix this - don't use Legacy Boot!" Unfortunately, our current tool chain for this legacy product does use Legacy Boot.


      Is there any work around for this crash?








      Version: ITK v5.0.4.575

      Executing on Win7-64


      Steps to reproduce

      • Download PY0069.bio from Intel downloads for NUC5CPYH
      • Start ITK5
      • On the ITK Welcome window, select "Customize a BIOS file"
        • In the File Selection window, select the PY0069.bio downloaded above
      • In the Settings panel, Open the following hierarchy:
        • Intel Desktop Board
          • Boot
            • Boot Config
              • UEFI Boot
                • Boot USB Devices First - in the "Current Settings" column, click on "Don't Change"
                  • in the pop up box, click "Enable" - ITK5 will crash
        • 1. Re: ITK5 crash with PY0069 for NUC5CPYH

          Hi Mike, here we go again...


          You are attempting to use ITK5 to work around a perceived problem with ITK6. The problem is that, at one point, changes had to be made to the .BIO file architecture to address a security issue and these changes have made these files incompatible with ITK5. This is no surprise; ITK6 was developed specifically because of security concerns raised against ITK5.


          The perceived problem with ITK6 is that you cannot boot from a Legacy-formatted device because the UEFI Shell will always have boot precedence over all Legacy-formatted devices and the UEFI Shell has to be enabled in order to run the ITK6 (UEFI) executable. Well, the answer is simple; don't enable the UEFI Shell! Instead, put a copy of the EFI Shell onto a USB flash drive and use F10 to boot from this flash disk.


          Anticipating your next question, what you need to do to create this flash drive is as follows:


          1. Format the USB flash drive. Do this on a Windows-based PC (do not use Linux- or MACOS-based PCs), selecting the FAT32 file system and disabling the Quick format option.
          2. On this USB flash disk, create folders \EFI and \EFI\BOOT.
          3. Place a copy of the UEFI Shell executable (file bootx86.efi) into the \EFI\BOOT folder. You can get this executable from the EFI Developer's Kit (EDK). For more information, start here: https://github.com/tianocore/tianocore.github.io/wiki/Efi-shell.
          4. Place copies of the necessary ITK6 files onto this USB flash disk as well.
          5. Ensure you properly eject this drive before removing it from the PC's USB port.


          Hope this helps,


          1 of 1 people found this helpful
          • 2. Re: ITK5 crash with PY0069 for NUC5CPYH

            Hi Scott


            Thanks for your thorough and thoughtful reply.


            My key learning here is "changes had to be made to the .BIO file architecture to address a security issue and these changes have made these files incompatible with ITK5".


            We'll write ITK5 out of our workflow and adapt them based on your procedure below.