Why dows windows 10 have no uart port number

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

Why dows windows 10 have no uart port number

651 Views
hankwang
Contributor IV

Hi,  I have the W1.5 version installed on an MX8M Plus board. We see the uart settings, but there is no uart number in the port category  of native uart. We want to know how to generate the serial number? Because we want to use putty or tera term to test the uart function.

Thanks

Labels (1)
0 Kudos
5 Replies

617 Views
jakub_zigacek
NXP Employee
NXP Employee

Hi @hankwang,

SerCx2 framework is used for serial interface of i.MX as it is demanded by contract with Microsoft under which BSP development is done. As such no COM interfaces are created for the UARTs.

It is possible to use these ports when instruction described at MSFT pages is followed - Device Interface publication for a SerCx or SerCx2 managed Serial Port.

This is statement to this issue from Microsoft:

"Accessing serial ports from application is different on SerCx/SerCx2 devices compared to Serial.sys devices. Namely, the SerCx2 device needs to publish device interfaces. Using COM interfaces with SerCx2 is not supported. Please follow this guide on how to expose a SerCx2 serial port to applications: Device Interface publication for a SerCx or SerCx2 managed Serial Port - Windows drivers | Microsoft... Once the application gets a handle to the SerCx2 serial port and configures it, it can interact with it as it would've in the past with COM ports."

There is an UART example in BSP sources also available in location:
<BSP sources folder>\examples\UART\UART-read-write\UART-read-write-source

There is theoretical possibility to create another driver with Serial.sys and leave it to the customer which one he wants to use. But this needs to be decided by Microsoft based on customers demands for "old" COM interface. If this might be the case for you, I can only support you if you decide to contact Microsoft with such a request.

Best Regards, Jakub

0 Kudos

310 Views
Alex_Chang_633
Contributor III

Hi @jakub_zigacek ,

We have the similar questions in i.MX8M Quad EVK.

If W21H2-1-5-0-imx-windows-bsp.zip doesn't include COM Ports in the Windows 10 21H2, how do we configure WinDbg to debug Windows Driver?

So far we read i.MX Windows 10 IoT Quick Start Guide (IMXWSG_1.5.0.pdf - Page 4/30) and try to follow introunction to configure COM Port for debug.

IMXWQSG_1.5.0_4.30.png

Or we have wrong understanding about this description.

Can you give us some advice how to enable/configure Serial Port on iMX8M Quad EVK when it boots up into Windows 10 IOT 21H2?

Thansk for you and NXP Teams support.

0 Kudos

276 Views
jakub_zigacek
NXP Employee
NXP Employee

Hi @Alex_Chang_633,

to configure WinDbg two commands :

bcdedit /dbgsettings SERIAL DEBUGPORT:1 BAUDRATE:921600

bcdedit /debug on

(make-winpe-enterprise.cmd can be used for inspiration)

need to be run on a target board to configure kernel debug over serial port. The same port, as U-boot uses as console output, is configured in the BSP by default.
This port is needed to be set up for WinDBG on the host computer. For example:

Start WinDBG

Open cmd as Administrator

"C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\windbg.exe" -k com:port=COM3,baud=921600

aslc and dcs files need to be touch only in case when you want to change the UART used for the debug by the target Windows system.

Please be aware that there is a caveat. When baudrate over 115200 is used, Windbg do not want to get connected to the target machine. It was found, that when any VM is running on the host machine, than the Windbg is able to connect over the serial port to the target. So please run for example Ubuntu in the VM virtualBox. It is unexpected, but working solution for this connection issue.

 

In short, on EVK with unmodified NXP BSP, you only need to run the commands on target's admin command line:
bcdedit.exe /dbgsettings SERIAL DEBUGPORT:1 BAUDRATE:921600
bcdedit /debug on

Then on host computer start WinDbg with same COM, as on which you are able to see uboot output with serial terminal like Putty. (while Ubuntu is running in VM).
Then please restart your board and you should be able see something like this after a while target boots up:

jakub_zigacek_0-1709799944080.png

It is possible to change UART baudrate to 115200 with CONFIG_BAUDRATE in file uboot-imx/configs/imx8mq_evk_nt_uuu_defconfig and debug without VM machine running. But it will be considerably slower to work with and for example creating full memory dump will take cca at least 4 days for transferring 5GB dump with 11kB/s. I just tried it to run and after half an hour still have only this:

jakub_zigacek_1-1709802099819.png

Even with 921600 it will be cca 12 hour. There could be some data compression involved and it could be somehow faster.

Best regards, Jakub

0 Kudos

248 Views
Alex_Chang_633
Contributor III

Hi @jakub_zigacek ,

Thanks for your solutions.

We will try your way to configure debug environment.

Again, thank you and NXP Teams help.

Have a nice day,

Alex

0 Kudos

620 Views
michal_hromadka
NXP Employee
NXP Employee

@jakub_zigacek please, can you help here?

 

0 Kudos