i.MX Windows10 IoT custom build FFU missing MergedFMs file

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX Windows10 IoT custom build FFU missing MergedFMs file

Jump to solution
3,238 Views
errolleighton1
Contributor II

I am attempting to build a custom FFU for Win IoT on the i.MX7 Sabre board by following the procedure outlined in Chapter 10 of the i.MX Windows10 IoT User’s Guide. I believe I have setup all the prerequisites correctly (WindowsKits ADK/SDK/WDK, and the IoTCoreOSPackages). The installed NXP SDK is from the Windows10_IoTCore_Packages_ARM32_en-us_17763_253.iso which appears to be the latest release (January 2020). I modified the BuildFFU.bat file to enable the i.MX7 processor by uncommenting lines 38-40:

      cd /d %BATCH_HOME%
      echo "Building Sabre_iMX7D_1GB FFU"
      call BuildImage Sabre_iMX7D_1GB Sabre_iMX7D_1GB_TestOEMInput.xml

The build seems to go okay until it tries to access the file Sabre_iMX7D_1GB_DeviceFM.xml from inside the folder mx-iotcore\build\board\Sabre_iMX7D_1GB\MergedFMs\ as directed by Sabre_iMX7D_1GB_TestOEMInput.xml. The MergedFMs folder exists but is empty. There is a file named Sabre_iMX7D_1GB_DeviceFM.xml located in imx-iotcore\build\board\Sabre_iMX7D_1GB\InputFMs\. When I copied this file to the MergedFMs folder and tried to build the errors suggested the content was not correct even though the file name matched. So I don't think that was the correct thing to do. 

So my question is: where is the missing Sabre_iMX7D_1GB_DeviceFM.xml file that is supposed to be inside the MergedFMs folder? Or am I just missing something else?

Labels (2)
1 Solution
2,843 Views
Frantisek_Prochaska
NXP Employee
NXP Employee

Unfortunately the merger application had crashed without providing any information. I believe the cab is alright at least it can be opened and my tool chain successfully assembles it into ffu, but i couldn't check much more. The problem is probably one of the kits or maybe the incompatibility with other kits. You can always try reinstalling those, just make sure not to break any of your other projects please. Creating a backup or just switching to a fresh clean machine even a virtual one could be an option. I couldn't provide much further help though.

View solution in original post

0 Kudos
15 Replies
2,843 Views
Frantisek_Prochaska
NXP Employee
NXP Employee

Hi,

I believe this is not the first error reported by Visual Studio. This file is usually missing when any of the ffu source files is missing. Could you post a complete build log or just provide the first error message that was reported?

Regards

0 Kudos
2,843 Views
errolleighton1
Contributor II

Hi Frantisek,

I've attached the log - it's pretty short. Also, I get the same error when building for the i.MX6 or i.MX7. Maybe I'm missing something obvious?

Regards,

0 Kudos
2,843 Views
Frantisek_Prochaska
NXP Employee
NXP Employee

I have checked the log. It's just the ffu assembly phase but there isn't anything about the BSP compilation step I was looking for, so I am not sure why are the files missing. Possibly you haven't run the BuildFFU.bat as a part of the build\solution\iMXPlatform\iMXPlatform.sln from Visual Studio. Possibly you might not have built the drivers yet but that's just a guess.

There is something you could try.

 1) launch Visual studio as administrator

 2) open the solution and click "build solution" (This will build the BSP and also assemble the testing ffu you want.)

 3) If the build is successful the ffu files can be found in imx-iotcore\build\solution\iMXPlatform\Build\FFU.

 4) attach the log here if it fails

Note:

I assume you have already passed through the required preparation steps described in chapter 10 of the "i.MX_Win10_User's_Guide, the Building Windows 10 IoT Core for NXP i.MX Processors".

0 Kudos
2,843 Views
Frantisek_Prochaska
NXP Employee
NXP Employee

Just a little note to build:

  • any USB drives or SD cards shouldn't be connected to computer
  • internet connection over http is required for the signing step
0 Kudos
2,838 Views
errolleighton1
Contributor II

Hi Frantisek,

This morning I re-downloaded the W1860_1_0_1_IMX-IOTCORE-B191011.zip and started from scratch just to be sure I hadn't somehow corrupted a configuration by mistake. I'm reasonably sure all the prerequisites spelled out at he start of Chapter 10 in the i.MX Windows 10 IoT User’s Guide have been met. I opened VS2017 as Administrator and loaded the solution and ran Build Solution from the Build menu. I think the auto-generated log created by the build is not very complete, and when I inspected it at the end of the build it was identical to the one I previously sent. So this time I copied the entire Output Window text to a file and have attached it here. In the attached Build.log you can see that all the drivers seem to build and get signed okay, but the build still fails when it tries to construct the FFU because it can't find 

Sabre_iMX6Q_1GB_DeviceFM.xml in path imx-iotcore\build\\board\Sabre_iMX6Q_1GB\MergedFMs\. This has been my problem all along. I feel like I'm missing some earlier configuration step but I haven't found any documentation to suggest what that might be. Hopefully this more complete log provides you with a clue.

0 Kudos
2,838 Views
Frantisek_Prochaska
NXP Employee
NXP Employee

Hi Errol,

thank you for the log. I see there are really no other errors in there just as you described. I have also tried to reproduce the error you mentioned but the ffu assembled correctly. You will probably have to contact Microsoft for support regarding this problem.

However there is fmlog.txt in the end of your log so you could check that first:

  • "If the error was a Feature Manifest XML error, please check C:\Nuvasive\Embedded\Win_IoT\NXP_MCIMX6Q_Sabre\W1860_1_0_1_IMX-IOTCORE-B191011\imx-iotcore\build\solution\iMXPlatform\GenerateTestFFU\fmlog.txt".
0 Kudos
2,843 Views
errolleighton1
Contributor II

Good catch Frantisek!

I've uploaded the contents of fmlog.txt and inside you can see that it failed while attempting to run NXP.Sabre_iMX6Q_1GB.BootLoader.cab located in path C:\Nuvasive\Embedded\Win_IoT\NXP_MCIMX6Q_Sabre\W1860_1_0_1_IMX-IOTCORE-B191011\imx-iotcore\build\\solution\iMXPlatform\Build\FFU\bspcabs\ARM\Release\. I checked the folder and the file exists but I'm not sure how to test it. Is there an independent method of testing .cab files?  I've uploaded the .cab file here in case you have a means to diagnose it.

0 Kudos
2,844 Views
Frantisek_Prochaska
NXP Employee
NXP Employee

Unfortunately the merger application had crashed without providing any information. I believe the cab is alright at least it can be opened and my tool chain successfully assembles it into ffu, but i couldn't check much more. The problem is probably one of the kits or maybe the incompatibility with other kits. You can always try reinstalling those, just make sure not to break any of your other projects please. Creating a backup or just switching to a fresh clean machine even a virtual one could be an option. I couldn't provide much further help though.

0 Kudos
2,843 Views
errolleighton1
Contributor II

Frantisek,

Your suggestion was a good one. I cleaned out all the SDKs and the BSPs from the other board manufacturers and then reinstalled the required SDKs. Now I can build the FFU. Thanks very much for your help. I do appreciate all the time you put into this.

Errol

2,843 Views
Frantisek_Prochaska
NXP Employee
NXP Employee

I'm glad I was able to help. Good luck!

Frantisek

0 Kudos
2,843 Views
errolleighton1
Contributor II

Okay, so I opened the .cab file and extracted it's contents. Inside the update.mum file is the following section:

<customInformation>
<phoneInformation phoneRelease="Invalid" phoneOwner="NXP" phoneOwnerType="OEM" phoneComponent="NXP.Sabre_iMX6Q_1GB.BootLoader" phoneSubComponent="" phoneGroupingKey="" />
<file name="\Windows\servicing\Packages\update.mum" size="859" staged="681" compressed="681" sourcePackage="" cabpath="update.mum" />
<file name="\windows\system32\catroot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\update.cat" size="1163" staged="825" compressed="825" sourcePackage="" cabpath="update.cat" />
<file name="\windows\WinSxS\arm_nxp-sabre_imx6q_1gb..otloader-deployment_31bf3856ad364e35_1.0.0.0_none_7f4cb71c7779f511.manifest" size="694" staged="580" compressed="580" sourcePackage="" cabpath="arm_nxp-sabre_imx6q_1gb..otloader-deployment_31bf3856ad364e35_1.0.0.0_none_7f4cb71c7779f511.manifest" />
<file name="\windows\WinSxS\arm_nxp.sabre_imx6q_1gb.bootloader_31bf3856ad364e35_1.0.0.0_none_3b50b38b05c7df6d.manifest" size="1054" staged="763" compressed="763" sourcePackage="" cabpath="arm_nxp.sabre_imx6q_1gb.bootloader_31bf3856ad364e35_1.0.0.0_none_3b50b38b05c7df6d.manifest" />
<file name="\BOOTLOADER.bin" size="649348" staged="394866" compressed="394866" sourcePackage="" cabpath="arm_nxp.sabre_imx6q_1gb.bootloader_31bf3856ad364e35_1.0.0.0_none_3b50b38b05c7df6d\BOOTLOADER.bin" />
</customInformation>

The full path isn't shown for these files, but I'm assuming it's looking in C:\Windows. If that's the case then none of these files exist on my system. That suggests I'm missing an SDK. Do you agree? Do you know which one I might be missing?

0 Kudos
2,843 Views
errolleighton1
Contributor II

Here are the SDK versions currently installed on my machine. The ADK, WDK and IoT Core Packages are all v. 17763.

pastedImage_1.png

0 Kudos
2,843 Views
Frantisek_Prochaska
NXP Employee
NXP Employee

Now the WDK and ADK version seems to be the thing. Hope the update will help.

Let's see the documentation, eg. User's guide provided (chapters 10.1.1.2 and 10.1.1.3) or the archived Microsoft Readme:

Required tools:

Windows Kits from Windows 10, version 1809

  • IMPORTANT: Make sure that any previous versions of the ADK and WDK have been uninstalled!
  • Install ADK version 1809
  • Install WDK version 1809
    • Make sure that you allow the Visual Studio Extension to install after the WDK install completes.
  • If the WDK installer says it could not find the correct SDK version, install SDK version 1809

IoT Core OS Packages

  • Visit the Windows IoT Core Downloads page and download "Windows 10 IoT Core Packages – Windows 10 IoT Core, version 1809 (LTSC)".
  • Open the iso and install Windows_10_IoT_Core_ARM_Packages.msi
  • Install Windows_10_IoT_Core_ARM64_Packages.msi for ARM64 builds.
0 Kudos
2,843 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello Errol,

The release of win10IoT for MX7 is pretty new, this is marked as a bug please report to support@microsoft.com

Regards

0 Kudos
2,843 Views
errolleighton1
Contributor II

Hi Bio_TICFSL,

Thanks for your reply. The missing file would appear to be part of the NXP Win IoT download, not Microsoft. Just so I am clear, are you saying that it's missing because NXP needs to receive it from Microsoft before it can be included in the NXP SDK?

Since you seem to have some insight on this, do you know if the other NXP boards that support Win IoT also have this problem?

Regards

0 Kudos