Cannot boot into WinPe for Windows 10 IoT

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

Cannot boot into WinPe for Windows 10 IoT

13,218 Views
hankwang
Contributor V

Hi,

      I have a 8MP CPU with 4GB DDR. When the system is ready to enter WinPE, the system will crash.

      I use windbg to observe the problem. I see "Missing Image Name". I guess the problem is related to

DDR size?

Since i have an sd card with a windows 10 IoT image, I flashed the EVK bootloader in the sd card.

I can boot into WinPE normally. I only modify the DDR parameter in the same sdcard. The sd card is put

in my system, but the system will crash on boot wiepe screen.

Do you have any ideas?

Missing Image Name.jpg

0 Kudos
Reply
33 Replies

9,209 Views
jakub_zigacek
NXP Employee
NXP Employee

Hi @hankwang,

can you please try to set the size of Bank1 to 0 as it was in W1.3.0?

giMX8TokenSpaceGuid.PcdBank1MemorySize|0x0000000000000000

Note:

While using signed firmware, you need to have written "RPMB write key" in eMMC, otherwise boot will fail. So if you do not need to use TPM, please use unsigned firmware.

Best Regards, Jakub

0 Kudos
Reply

9,199 Views
hankwang
Contributor V

hi, yes. I have set giMX8TokenSpaceGuid.PcdBank1MemorySize to 0. And I'm not using signed firmware, I'm only using unsigned firmware. I checked this BSOD cause is memory issue.

Is there anything else for memory setting that needs to be modified?

0 Kudos
Reply

9,176 Views
jakub_zigacek
NXP Employee
NXP Employee

Hi @hankwang,

what board are you please using for these test, EVK or custom board?

Do you have in your project correct DDR timing file for your board? For example lpddr4_timing.c. But if firmware from 1.3.0 is working, this should not be an issue, both 1.3.0 and 1.4.1 use the same timing files for EVK.

I have tested this patch on i.MX8MP EVK board with 4GB DDR chip and was able to install with Win PE and enter Windows without an issue.

Best Regards, Jakub

0 Kudos
Reply

9,131 Views
hankwang
Contributor V

As far as I know, the 8MP EVK board  only has 6GB DDR. Do you use 6G DDR to simulate 4G DDR?

I have a custom 8MP CPU with 4G DDR. Maybe you can find a real 4G DDR to test.

0 Kudos
Reply

9,113 Views
jakub_zigacek
NXP Employee
NXP Employee

Hi  @hankwang,

I have borrowed EVK with DDR slot. We have one for testing various DDR chips. I have in it this 32Gb one https://tw.micron.com/products/dram/lpdram/part-catalog/mt53e1g32d2fw-046-aut.

jakub_zigacek_0-1693203838804.jpeg

I have also information, that the firmware_uuu_8MP-EVK-4GB.bin works with BSP 1.4.1 on another custom board with only 4GB DDR.

I will try to ask at our R&D if they are aware of some other differences between 1.3.0 and 1.4.1.

Best Regards, Jakub

0 Kudos
Reply

9,110 Views
hankwang
Contributor V

@jakub_zigacek  Thank you for your reply. Please notify me if there are any updates.

 

0 Kudos
Reply

9,066 Views
jakub_zigacek
NXP Employee
NXP Employee

Hi @hankwang,

I discussed this issue with our DDR expert. He would like to check datasheet of your DDR chip, because of variety of possible DDR internal organization. Can you please provide this datasheet?

Best Regards, Jakub

0 Kudos
Reply

9,063 Views
hankwang
Contributor V

hi, This is our DDR name. But I still search the datasheet. Perhaps you can download directly from the Micron website.

https://tw.micron.com/products/dram/lpdram/part-catalog/mt53e1g32d2fw-046-wt?login

DDR Name: MT53E1G32D2FW-046 WT

Also, I can start Windows10 IoT for W1.3.0.

0 Kudos
Reply

9,057 Views
jakub_zigacek
NXP Employee
NXP Employee

Hi @hankwang,

Do you have MT53E1G32D2FW-046 WT:A or MT53E1G32D2FW-046 WT:B?

Because A has one chip select and B has two chip selects.

You are using firmware from W1.3.0 as it is in downloaded zip from NXP pages?

Best Regards, Jakub

0 Kudos
Reply

9,052 Views
hankwang
Contributor V

Sorry that DDR is MT53E1G32D2FW-046 WT:A (one chip). 

Yes, W1.3.0 download from NXP website. I just modified backlight control pin  in the mu_platform_nxp folder.
and DDR parameters(lpddr4_timing.c & imx8mp_evk.h) in the u-boot-imx folder.

And I set LVDS0 to display in galcore.inf.

; HKR,,Display0Interface,%REG_DWORD%,%DISP_INTERFACE_HDMI%
HKR,,Display0Interface,%REG_DWORD%,%DISP_INTERFACE_LVDS0%

0 Kudos
Reply

9,013 Views
jakub_zigacek
NXP Employee
NXP Employee

Hi @hankwang,

here is a timing file for your DDR chip. But it is prepared for our EVK and thus the mapping of data bits could be different then on your board. You need to change this structure, if you have different mapping 

/* PHY Initialize Configuration */
struct dram_cfg_param ddr_ddrphy_cfg[] = {
...

But if your timing file is tested for example with linux and DDR works well, we have to look elsewhere.

Best Regards, Jakub

0 Kudos
Reply

8,870 Views
hankwang
Contributor V

Hi , I am using the new DDR parameters. But the bootloader will stop while ddr is training.

Also, may I know what size is required for eMMC for W1.4.1 Windows 10 IoT install?

Because my eMMC is 8G. After I installed W1.3.1 Windows 10 IoT, the remianing eMMC is 584MB. 

Is my eMMC too small to install W1.4.1 Windows 10 IoT?

0 Kudos
Reply

8,654 Views
jakub_zigacek
NXP Employee
NXP Employee

Hi @hankwang,

  1. can I please ask, what is your partnumber of i.MX8M Plus? There are the variants without the VPU and with only 2x A53 cores, on them the BSP will not work without removing VPU driver or setting correct CPU number.jakub_zigacek_0-1693987859998.png
  2. I was able the MemTest86 to get running on the EVK. With help e.g. the 7-zip File Manager you can extract the content of memtest86-usb.img\0.MemTest86.fat\EFI\BOOT\ folder into EFI\BOOT\ folder on your SD card. It will then boot Memtest86 instead of our EFI.
    jakub_zigacek_1-1693988232255.png
  3. Regarding mixing firmware and Windows drivers version as I suggested, there is a information from R&D that PWM driver from BSP-1.4.1 fails with BSOD when older firmware is used. So for testing 1.4.1 BSP installation with 1.3.0 firmware, one have to remove PWM driver from IoTEntOnNXP\drivers\PWM\ folder to create SD card Windows installation without PWM driver.
  4. 8GB eMMC: There is a "COMPRESS" attribute for partition creating with diskpart. It can be added to script diskpart_win_iot_enterprise.txt on SD card for Windows partition to help with installation on 8GB storage. But I did not test it by myself yet.
    format quick fs=ntfs label="Windows" COMPRESS

Best Regards, Jakub

 

0 Kudos
Reply

8,631 Views
hankwang
Contributor V

Thank you for the information

My CPU part number is MIMX8ML8CVNKZAB.

Since we have new board with 6G DDR and 32G eMMC in the future. we will not use 4G DDR and 8G eMMC to install Windows 10 IoT. But we have 8MP with 2G DDR and 16G eMMC needs to install windows 10 iot. Bootloader cannot detect 2GB, always shows 3GB. I have create a new ticket https://community.nxp.com/t5/i-MX-Processors/8MP-CPU-with-2D-DDR-bootloader-display-error-for-Window....

Now we just test w1.3.0 in the 8MP with 4G DDR and 8G eMMC.

But I will try 1.3.0 firmware and remove the PWM driver in the Windows to test if the system does not have a bsod.

0 Kudos
Reply

8,840 Views
jakub_zigacek
NXP Employee
NXP Employee

Hi @hankwang,

can you please sent us boot log from console , your timing file, schematic ( DDR section ) a DDR datasheet?

I would like to get back to what works on your board. You have written:

Yes, W1.3.0 download from NXP website. I just modified backlight control pin  in the mu_platform_nxp folder.
and DDR parameters(lpddr4_timing.c & imx8mp_evk.h) in the u-boot-imx folder. + inf file changes.

I expect, that now you have in eMMC installed W1.3.0. Can you please try to do the same changes you have did to 1.3.0 to 1.4.1 firmware? Plus set zero to bank1 size, like it is in 1.3.0.

giMX8TokenSpaceGuid.PcdBank1MemorySize|0x000000000000000

And try to boot the board with this firmware?

Second thing what can be tried is to use firmware of 1.3.0 together with 1.4.1 windows installation on SD card, to see if the installation will finished correctly.

 

About the eMMC size if 8GB is enough, I would say that without optimization of install image it is not enough. Microsoft offers some help to reduce its size here https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/compact-os?view=windows-10#si.... There is stated that 8GB is not enough for usage even if you are able to install it.

https://learn.microsoft.com/en-us/windows/iot/iot-enterprise/optimize/reduce-disk-footprint

From document linked here:

jakub_zigacek_0-1693550131338.png

jakub_zigacek_1-1693550432980.png

Best Regards, Jakub

0 Kudos
Reply

9,253 Views
jakub_zigacek
NXP Employee
NXP Employee

Hi @hankwang,

BSP from version 1.4.0 uses whole 6GB RAM of i.MX8MP EVK for Windows 10 IoT:
• 3/2023: W1.4.0
– Supported boards:
...
– 8MPLUSLPD4-EVK Evaluation Kit
...
– New features:
– General
– 8MPLUSLPD4-EVK: The size of SDRAM was increased to 6 GB. Note: This change requires
windows10.0-kb5019275-arm64_c6c2abc31137d43e762304bd1542ba413d2b8b9e.msu to be
installed. The patch is applied in installation script (make-winpe-enterprise.cmd) by default.

Uboot still uses only first 3GB of RAM.
Limiting RAM size to 3GB before version 1.4.0 was done by setting PcdBank1MemorySize to 0x0.
You can either try to limit it to 3GB as it was before by setting this:
/mu_platform_nxp/NXP/MX8M_PLUS_EVK/MX8M_PLUS_EVK.dsc:
giMX8TokenSpaceGuid.PcdBank1MemorySize|0x000000000000000
(alternatively you can try to use firmware from W1.3.0, but it is without warranty, when use together with Windows drivers from different version)
or you can try to set it to 1GB to allow Windows to used all 4GB, not only 3GB

giMX8TokenSpaceGuid.PcdBank1MemorySize|0x0000000040000000

You can find firmware for 8MPLUSLPD4-EVK Evaluation Kit for 4GB RAM and patch file for firmware of BSP 1.4.1. Firmware is signed with test key.

Best Regards, Jakub

0 Kudos
Reply

5,062 Views
aber
Contributor III
Hi jakub_zigacek
I also encountered the same problem using 4G DDR on imx8mp. I can start up normally using the bin you compiled, but the bin I compiled myself has been stuck on the blue screen of Winpe. Just like everyone else.
Could you please help analyze what the problem is. thank you very much indeed。
--- a/mu_platform_nxp/NXP/MX8M_PLUS_EVK/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.c
+++ b/mu_platform_nxp/NXP/MX8M_PLUS_EVK/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.c
@@ -412,7 +412,7 @@ STATIC CONST ARM_TYPE16 mArmDefaultType16 = {
MemoryArrayLocationSystemBoard, //on motherboard
MemoryArrayUseSystemMemory, //system RAM
MemoryErrorCorrectionNone,
- 0x2000000, //8GB
+ 0x1000000, //4GB
0xFFFE, //No error information structure
0x1, //soldered memory
},
@@ -431,7 +431,7 @@ STATIC CONST ARM_TYPE17 mArmDefaultType17 = {
0xFFFE, //no errors
0xFFFF, // unknown total width
0xFFFF, // unknown data width
- 0x1800, // 6GB
+ 0x1000, // 4GB
0x05, // Chip
0, //not part of a set
1, //Device locator
diff --git a/mu_platform_nxp/NXP/MX8M_PLUS_EVK/MX8M_PLUS_EVK.dsc b/mu_platform_nxp/NXP/MX8M_PLUS_EVK/MX8M_PLUS_EVK.dsc
index 05e9358..10ce715 100644
--- a/mu_platform_nxp/NXP/MX8M_PLUS_EVK/MX8M_PLUS_EVK.dsc
+++ b/mu_platform_nxp/NXP/MX8M_PLUS_EVK/MX8M_PLUS_EVK.dsc
@@ -176,7 +176,7 @@
# 3GB in the 5GB bank of memory above 32 bit address space
giMX8TokenSpaceGuid.PcdBank1MemoryBase|0x0000000100000000
#TODO: se the "Bank1 Size" to 4G to enable RAM above 4G, USB is not working with upper RAM
- giMX8TokenSpaceGuid.PcdBank1MemorySize|0x00000000C0000000
+ giMX8TokenSpaceGuid.PcdBank1MemorySize|0x0000000040000000
# giMX8TokenSpaceGuid.PcdBank1MemorySize|0x000000000000000
0 Kudos
Reply

4,915 Views
jakub_zigacek
NXP Employee
NXP Employee

Hi @aber,

if you can install and run Windows on your board with firmware_uuu_8MP-EVK-4GB.bin from one of my previous post, than is seems, that your firmware is failing due to not correct DDR timing file. Because you have changed PcdBank1MemorySize correctly. Changes in SmbiosPlatformDxe.c file are "cosmetic" in sense that these values are only shown in Task Manager, as far as I know.

Can you please try to run Memtest86+ on your board with your firmware if it shows any error? You only need to copy EFI folder from Memtest86+ image to your installation SD card and boot from it.  7-Zip File Manager can open Memtest86+ image file for example.

I can try to find timing file I have used for building year ago, but it was prepared for NXP EVK and thus not calibrated for your board.

Best Regards, Jakub

0 Kudos
Reply

4,705 Views
aber
Contributor III

Hi jakub_zigacek

    Thank you very much for your reply. I also suspect it's a DDR configuration issue. But I don't know what the problem is. The attachments are my DDR datasheet and MX8M_Plus_LPDDR4_RPA_v9.xlsx configuration file. Can you help me check them?

0 Kudos
Reply

4,666 Views
jakub_zigacek
NXP Employee
NXP Employee

Hi @aber,

your configuration related to your datasheet looks correct. But please check the BoardDataBusConfig section, which is the same with the NXP EVK and it is only possible to check it against schematic. If our design uses different data bus mapping, BoardDataBusConfig needs to be changed accordingly.

 

Best Regards, Jakub

0 Kudos
Reply