-
Notifications
You must be signed in to change notification settings - Fork 40
Can't Get Hummingboard to Boot From eMMC #100
Comments
From the output, looks like the eMMC was not provisioned while in WinPE. After a successful flash, your EFI shell should see multiple block partitions like this: To debug further, I recommend booting into WinPE again and making sure the eMMC flashing step succeeds imx-iotcore/build/tools/make-winpe.cmd Line 107 in 3cccdb0
(minus echo and console redirection to file)In our WinPE startup script, we hardcode %FFU_DISK_NUM% to 1 since we always assume the same SD/eMMC enumeration pattern. If you want to confirm the physical drive number, you can do the following in the WinPE command line:
and confirm which disk number corresponds with the eMMC. If the dism command fails, there is a debug log that gets printed. Please post that here. |
Thanks @christopherco. I will give this a try |
@christopherco, This is pretty uncharted waters for me, so I'm not sure if I'm even asking the right thing. I can confirm our SD card presents as Disk1 on my build machine. Regarding Are you suggesting that I execute |
Overall, this can be a bit confusing. I'll try my best to explain. The SD card gets loaded with a WinPE image. WinPE is a very lightweight Windows image and the UI is a minimal desktop UI and a command prompt. We set up a startnet.cmd to be a startup script that runs on bootup into WinPE. Dism is a executable built in the WinPE environment and is meant to provision images onto drives. In the boot sequence, UEFI finds a bootable Windows image by searching for and executing a EFI/boot/bootarm.efi application in the FAT32 partition (typically dubbed the EFI partition). So after we run WinPE once, to prevent further booting into the WinPE image the script renames the EFI folder to _EFI which prevents UEFI from finding the WinPE's bootarm.efi application. I think what you'll want to do is:
Hope this helps. If you have further questions, I'm happy to answer. |
@christopherco thanks for this detailed response. You clearly know this stuff pretty well, and I'm learning lots from you. Appreciated. I will get back to this eMMC spike shortly. Current working on an end-to-end script supporting a retail build. |
Hi @christopherco, after quite a break I'm back working on this. While I'm still using a Hummingboard, significantly we now have our own carrier board and are no longer using Solid-Run's 'Edge' carrier board. Our own carrier board ('Scout') had no display, and no keyboard - It's an automotive IoT device, and we've been booting from SD, loading apps etc. Today I have worked through the Booting WinPE and Flashing eMMC guidance, resulting in an error-free creation of a boot image. So far, so good. I then booted successfully, and later noted that the |
The boot log appears to indicate you are indeed booting into Windows on both of the boots.
is the message printed from within Windows where the Windows Kernel debugger is trying to establish a connection with the host Windbg session. Usually a good sign that things are up and running successfully. And you can attach to Windbg to confirm everything is still working. Unfortunately we do not print out which boot device we are booting from so it is not possible to definitively tell if we actually did boot from eMMC or not. Probably something we should add 😃 But if your SD card has the What is the behavior you are seeing? |
Hi Christopher, I may have re-represented what happened here. That boot log was from the first boot on WinPE. However I've now ended up with a (bricked?) SOM. Regardless of how the boot jumpers are configured, it won't boot without a SD inserted, and it won't boot with a SD card inserted (generic IoT Core build). I've gone back to doing all on Solid Run's OEM carrierboard known a 'Edge' to remove any likelihood of our own carrier board cause some kind of fault. So the issue has shifted from getting WinPE to boot, to getting the SOM back from the brickyard! Any suggestions on that very gratefully received :) |
I'm having problems getting IotCore os and default app firmware into eMMC. We are looking for ways to deploy our product into the field without having the OS and our app on SD card. The first step is to get vanilla IoT Core booting from eMMC, ie long before we add our app package
Setup:
winpe-mmc.cmd
to build, and then apply a WinPE image to a SD card following this guidanceActions:
winpeinit
. This takes quite a while. The device re-boots, and I can confirm the EFI directory in the root of the SD card had been renamed to _EFIResult:
I would have expected Windows to have booted from eMMC, and the default app to startup.
@dvescovi1 @jordanrh1 - Any suggestions as to what I'm doing wrong and/or what I should try?
The text was updated successfully, but these errors were encountered: