[MinnowBoard] UART and COM ports problem

Rouzanov, Ivan ivan.rouzanov at intel.com
Wed Jul 1 15:07:25 UTC 2015


Anteja,

COM port is a specific interface. In Windows COM-port is defined by serial.sys.
Iaiouart.sys is SerCx driver but it is a driver for HSUART, there is only one COM port – that is the PCU COM-port with legacy I/O interface which is already exposed as COM1.

Thanks,
Ivan.

From: Anteja Vuk Macek [mailto:anteja.vm at dolotron.com]
Sent: Wednesday, July 1, 2015 5:43 AM
To: Rouzanov, Ivan; edk2-devel(email list); elinux-minnowboard
Subject: Re: [MinnowBoard] UART and COM ports problem


Hello,



I tried with IOCTL, but problem was I couldn't  open driver file with CreateFile method because I couldn't find path ( something like this   \\\\.\\PCI#VEN_8086&DEV_0F0E&SUBSYS_72708086&REV_0C#3&11583659&0&F5#{badc33d6-be37-4372-b90e-bbf2d986b0eb}<file:///\\\PCI%23VEN_8086&DEV_0F0E&SUBSYS_72708086&REV_0C%233&11583659&0&F5%23%7bbadc33d6-be37-4372-b90e-bbf2d986b0eb%7d>  ). For UART I have iaiouart.sys driver and I want to know if this driver return SerCx framework. I find for Windows 8 UART driver ( uart16550pc.sys ), but  I don't know if I need some kind of bridge driver between two drivers.

Best regards,
Anteja
>On Tue, Jun 30, 2015 at 7:33 AM, Anteja Vuk Macek <anteja.vm at dolotron.com<mailto:anteja.vm at dolotron.com>> wrote:
>Hi Ivan,
>
>Thank you for advice, but I want two COM ports.  I found  LPC_DEV.ASL ACPI_table  in Vlv2TbltDeviceRefCodePkg where was ASL code for the device IUR3  HID - PNP0501.

Device(IUR3) // Internal UART
{
  Name(_HID, EISAID("PNP0501"))

  Name(_UID,1)

  // Status Method for internal UART

  Method(_STA,0,Serialized)
  {
    // Only report resources to the OS if internal UART is
    // not set to Disabled in BIOS Setup.

    If(LEqual(USEL,0))
    {
      If(LEqual(PU1E,1))
      {
        Store(1,UI3E) // Enable IRQ3 for UART
        Store(1,UI4E) // Enable IRQ4 for UART
        Store(1,C1EN) // Enable UART
        Return(0x000F)
      }
    }

    Return(0x0000)
  }

  // Disable Method for internal UART

  Method(_DIS,0,Serialized)
  {
    Store(0,UI3E)
    Store(0,UI4E)
    Store(0,C1EN)
  }

  // Current Resource Setting Method for internal UART

  Method(_CRS,0,Serialized)
  {
    // Create the Buffer that stores the Resources to
    // be returned.

    Name(BUF0,ResourceTemplate()
    {
      IO(Decode16,0x03F8,0x03F8,0x01,0x08)
      IRQNoFlags() {3}
    })

    Name(BUF1,ResourceTemplate()
    {
      IO(Decode16,0x03F8,0x03F8,0x01,0x08)
      IRQNoFlags() {4}
    })

    If (LLessEqual(SRID, 0x04))
    {
      Return(BUF0)
    } Else
    {
      Return(BUF1)
    }
  }
}

I want to make second IUR device.  I don't know value of variables : SEL, PU1E, UI3E, UI4E and C1EN  and where it was defined.  Also,  I would like to know what I need to change to write ASL code for second IURx device.
Best regards,

Anteja

>On Thu, Jun 25, 2015 at 11:16 AM, Rouzanov, Ivan <ivan.rouzanov at intel.com<mailto:ivan.rouzanov at intel.com>> wrote:
>Anteja,
>
>As far as I understand we have 2 UARTs but only one follows legacy COM-interface and the other one does not so Windows inbox driver serial.sys does not work with it so you only have one COM port.
>(Basically COMx is just a symbolic link serial.sys creates to point to its device object, so if it does not service a device like in the case of the second HSUART, then it is not a COM-port).
>f you need to use COM-port and have ability to debug, I'd suggest to use Ethernet for debugging and free up COM1 for your other needs.
>
>I hope this helps.
>Best regards,
>van Rouzanov.
>
>
>
>Message: 3
>Date: Wed, 24 Jun 2015 10:06:02 +0200
>From: Anteja Vuk Macek <anteja.vm at dolotron.com<mailto:anteja.vm at dolotron.com>>
>To: EDK2 email list <edk2-devel at lists.sourceforge.net<mailto:edk2-devel at lists.sourceforge.net>>,  MinnowMax
>       Community <elinux-minnowboard at lists.elinux.org<mailto:elinux-minnowboard at lists.elinux.org>>
>Subject: [MinnowBoard] UART and COM ports problem
>Message-ID:
>       <CAOPTR2BQg0h5KT8dogxr60t3++i4tCHPFchyo6qWqKYkqGWZhw at mail.gmail.com<mailto:CAOPTR2BQg0h5KT8dogxr60t3%2B%2Bi4tCHPFchyo6qWqKYkqGWZhw at mail.gmail.com>>
>Content-Type: text/plain; charset="utf-8"
>
>Hi all,
>
>On MinnowMax I work  on Windows 8.1 with UART.
> In BIOS Setup I enable UART.   In  LSS & SCC Configuration menu in BIOS
>Setup I enable : LSS HSUART #1 Support  , LSS HSUART #1 FlowCtrl  , LSS HSUART #2 Support  , and LSS HSUART #2 FlowCtrl .  But I don't know if I need to in BIOS Setup in Miscellaneous configuration  set  UART >interface on  Super IO UART, for now I set  Internal UART for UART interface.
>I install Intel driver (
>https://downloadcenter.intel.com/download/24228/Intel-embedded-drivers-for-Windows-8-1-32-bit-
>)
>and I got two UART controllers.
>
>Problem :
>Problem is that I have only one COM port ( COM1)  and it is for debugging.  I looking in inf (iaiouart.inf ) file of driver for which device is , and I find APCI/INT33BC device.  The COM1 is device
>APCI/PNP0501 .
>
>What I need to do to get COM 2 device ?  I saw  BaseSerialPortLib 16550 module in  MdeModulePkg/Library for what it is this module.  Need I add some module for UART or Serial port in fdf (PlatformPkg.fdf ) file to get
>COM2 device, or add  COM2  in ACPI_table? Where I can find ACPI_table in source of firmware?
>
>Best regards,
>
>Anteja
>


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.elinux.org/pipermail/elinux-minnowboard/attachments/20150701/bf8f6248/attachment-0001.html>


More information about the elinux-MinnowBoard mailing list