I hadn’t done anything with my Apollo Lake-based AAEON UP Squared board for a while. It was time to pull it down off the shelf, install Windows 10, and use SourcePoint to debug the platform.
The first step in installing Windows 10 on the UP Squared is to create a compatible boot medium: specifically, a UEFI drive that will boot and install the OS. There are some good directions here: https://www.windowscentral.com/how-create-windows-10-usb-bootable-media-uefi-support. Note that I used the Rufus utility to create the bootable flash stick; the UP Squared board currently just boots to UEFI, and we need to format the stick with a (GUID partition table) GPT partition scheme to make it compatible. Using the Microsoft Media Creation Tool to create the bootable drive did not work.
So, first download the ISO file from https://www.microsoft.com/en-us/software-download/windows10. At the time of writing, I downloaded Windows 10 20H2.
Then use Rufus to format the USB stick. The stick I used was 16GB in size. Note that the Partition scheme is GPT, Target System is UEFI (non CSM), and File system is NTFS with Cluster size 4096 bytes (default):
It took a couple of minutes, and then I had an old HP 16GB bootable USB stick (I think I got this from a trade show sometime), that I inserted in the top USB Type A connector:
Then, it was just a matter of powering up the board, and following the installation instructions. Note that I kept the USB port at the top left hand side available, as this will be where I plug in the Intel Direct Connect Interface (DCI) cable for debugging – so, it’s useful to add a little USB hub onto the Type A USB port on the bottom, as a mouse is helpful (but not necessarily required) during the Windows installation process.
You see the typical steps involved in the installation:
Until, finally, the Windows desktop appears, nice and clean:
Opening up “This PC” in Windows Explorer shows the configuration with the main C: drive and the partitioned USB stick:
Now, it’s time to fire up SourcePoint and try some debugging. I set a breakpoint at the entry point to DXEMAIN, ran a little further, and captured some Intel processor trace data:
I then cleared the breakpoint, powered down the platform, and then rebooted and halted when I saw the “Windows flag”. Doing a “LoadCurrent” gave the following:
So, I need the Windows .pdb symbol files (or, should I say, a symbol server) to proceed further. It would be nice to tie this all in with WinDbg. I’ll write about that in a coming episode!
Want to learn more about the UP Squared board as a platform for open-source learning and development? See the earlier four episodes of the UP Squared Chronicles below:
Episode 1: Open source firmware explorations using DCI on the AAEON UP Squared board
Episode 2: Building the UEFI Image
Episode 3: Intel Processor Trace