UART devices of DragonBoard 410C are broken in latest release of Windows IoT 2018

Hi, I know that all Windows IoT is referred back to Windows forums, but just FYI, here is the post I made in their forum because I suspect that this is somehow ACPI related and Qualcomm should be aware of it.
/------------ start of quote -----------/
Hi, the UART device in DragonBoard 410C is broken on this release. Searching by symbolic names UART0, UART1 gives no results. Searching for all SerialDevices we get the ACPI device names:

[UART1] → “\\?\ACPI#QCOM2424#2#{86e0d1e0-8089-11d0-9ce4-08003e301f73}” string
[UART0] → “\\?\ACPI#QCOM2424#1#{86e0d1e0-8089-11d0-9ce4-08003e301f73}” string

However, SerialDevice.FromIdAsync() still returns null with any of those device names. I’m forced to roll back to 2017 release to keep working. That version is not perfect either. StreamReader takes almost 1 second to react after new data arrives, trying different values with .ReadTimeout or .InputStreamOptions.XXX doesn’t make any difference. Something is wrong inside SerialDevice class.

Update:
Meantime, I learned at the Microsoft IoT forum that this is an open issue since May of this year (!!). Microsoft position is that the problem is in a faulty driver in the BSP stack and it was reported to Qualcomm back then. Can we expect a fix from Qualcomm any time soon?, Qualcomm points to 96boards as the official support forum, but I haven’t seen any official statement from them about this or in the Windows IoT one. Are we second class citizens in the eyes of Qualcomm?
For those interested here is the post mentioned above: [17661] DragonBoard 410c no UART

Sorry For the inconvenience , Let me check this and update you ASAP .

Thanks ,
Sivaram

Full Disclosure : I am a employee from Qualcomm india

Hi Sivaram,
Thanks for looking into it. I’m looking forward for your findings.

@GUILLERMO

May I know which build are you using ?

@GUILLERMO

Please test with latest windows BSP package from below , this as fixes for UART issues https://developer.qualcomm.com/hardware/dragonboard-410c/software

Thanks,
Sivaram

Hi Snarra,
I just re-flashed the latest stable version 10.0.17134.1 dated Apr-10-2018. from: https://developer.microsoft.com/en-us/windows/iot/Downloads

  1. Do I need to flash also the BSP drivers from the link you provided, or are they supposed to be included in the MS image?

  2. If both have to be flashed, does it matter in which order? (I guess windows goes first).

… one more question:
I downloaded the DB410C BSP package from the link provided. It is supposed to contain precompiled images, but I can’t find any .FFU file in there. Do they have other extension?

Hi ,

you need to build an FFU using Qualcomm BSP .

please use below steps .

Steps Followed

"D:\Kit\wpk\redstone2\latest\Program Files\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_arm
set %QCPackageDir% = C:\QDN\db410c_bsp\prebuilt\8016\cabfiles
set wdkcontentroot=D:\Kit\wpk\redstone2\latest\Program Files\Windows Kits\10
set MSPackageDir=C:\QDN\db410c_bsp\prebuilt\MobileOS\MSPackages
set OSContentRoot=C:\QDN\db410c_bsp\prebuilt\MobileOS
set device=8016
set qcplatform=8916
set QCNHDebug=
set bsproot=C:\QDN\db410c_bsp\prebuilt\8016
call postbld.bat

Thanks,
Sivaram

Hi Sivaram,

Sorry for the delayed reply. I didn’t have time to get back to this until now.

I tried the steps you listed above adjusting to the correct paths in my system. Unfortunately things are not that easy, to start with, the MobileOS folder is not in the db410c_bsp folder tree as it comes in the ZIP file. There is a BSP customization PDF here https://developer.qualcomm.com/download/db410c/windows-10-iot-bsp-customization-guide.pdf which I read cover to cover. Chapter 2, Building FFU Image describes the same steps and gives a couple of additional hints. You have to install Microsoft’s Driver Development Kit (DDK) that matches the version expected by this BSP, and the Application Deployment Kit (ADK) that also matches the same DDK. According to this doc, after installed both I need to copy the MobileOS from the ADK installation into the BSP folder tree. Well, after hours searching for the freaking correct versions of DDK and ADK, installing them, guess what: MobileOS is nowhere to be found!

I spent countless hours in this and came out empty handed. There is one thing I do not understand. Back in 2016 when I first installed the “DragonBoard Update Tool”, and then Windows IoT Core in my first 410C, somehow I had both FFU out of the box . I didn’t have to do anything like this!. Unfortunately since then my working computer disk crashed. I had to rebuilt and all those original files are gone.
That BSP compiling environment should be somewhere at Qualcomm ready to run, why don’t they complete job and generate this freaking FFU and save everybody of all this nightmare?