qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Hervé Poussineau" <hpoussin@reactos.org>
To: Miki Mishael <mmishael@redhat.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
	qemu-devel@nongnu.org, Yan Vugenfirer <yvugenfi@redhat.com>,
	Michael Roth <mdroth@linux.vnet.ibm.com>,
	Adam Litke <aglitke@linux.vnet.ibm.com>,
	Ronen Hod <rhod@redhat.com>, Gerd Hoffmann <kraxel@redhat.com>,
	Anthony Liguori <aliguori@amazon.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Dmitry Fleytman <dfleytma@redhat.com>
Subject: Re: [Qemu-devel] [PATCH] Docs: Introduce multiport serial support in	qemupciserial.inf.
Date: Thu, 16 Jan 2014 22:12:35 +0100	[thread overview]
Message-ID: <52D84B43.7030902@reactos.org> (raw)
In-Reply-To: <1389874718-6785-2-git-send-email-mmishael@redhat.com>

Hi,

Miki Mishael a écrit :
>       Support for pci-serial-2x and pci-serial-4x
>       added to inf file.
>       Standard Windows driver mf.sys used to
>       split single function
>       device into per-port nodes.
>
> Signed-off-by: Miki Mishael <mmishael@redhat.com>
> Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
> ---
>  docs/qemupciserial.inf | 227 ++++++++++++++++++++++++++++++-------------------
>  1 file changed, 140 insertions(+), 87 deletions(-)
>
> diff --git a/docs/qemupciserial.inf b/docs/qemupciserial.inf
> index 3474310..d3aadb0 100644
> --- a/docs/qemupciserial.inf
> +++ b/docs/qemupciserial.inf
> @@ -11,99 +11,152 @@
>  ; (Com+Lpt)" from the list.  Click "Have a disk".  Select this file.
>  ; Procedure may vary a bit depending on the windows version.
>  
> -; FIXME: This file covers the single port version only.
> +; This file covers all options: pci-serial, pci-serial-2x, pci-serial-4x
> +; for both 32 and 64 bit platforms.
>  
>  [Version]
> -Signature="$CHICAGO$"
> -Class=Ports
> -ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
> +Signature="$Windows NT$"
> +Class=MultiFunction
> +ClassGUID={4d36e971-e325-11ce-bfc1-08002be10318}
>  Provider=%QEMU%
> -DriverVer=09/24/2012,1.3.0
> -
> -[SourceDisksNames]
> -3426=windows cd
> -
> -[SourceDisksFiles]
> -serial.sys 		= 3426
> -serenum.sys 		= 3426
> -
> -[DestinationDirs]
> -DefaultDestDir  = 11        ;LDID_SYS
> -ComPort.NT.Copy = 12        ;DIRID_DRIVERS
> -SerialEnumerator.NT.Copy=12 ;DIRID_DRIVERS
> -
> -; Drivers
> -;----------------------------------------------------------
> +DriverVer=12/29/2013,1.3.0
> +[ControlFlags]
> +ExcludeFromSelect=*
>  [Manufacturer]
> -%QEMU%=QEMU,NTx86
> +%QEMU%=QEMU,NTx86,NTAMD64
>   

OK, you want to enable driver on Windows 32 bit and Windows 64 bit, and 
Windows 2003 SP1+ requires NTAMD64 to be specified.

>  
>  [QEMU.NTx86]
> -%QEMU-PCI_SERIAL.DeviceDesc% = ComPort, "PCI\VEN_1b36&DEV_0002&CC_0700"
> -
> -; COM sections
> -;----------------------------------------------------------
> -[ComPort.AddReg]
> -HKR,,PortSubClass,1,01
> -
> -[ComPort.NT]
> -AddReg=ComPort.AddReg, ComPort.NT.AddReg
> -LogConfig=caa
> -SyssetupPnPFlags = 1
> -
> -[ComPort.NT.HW]
> -AddReg=ComPort.NT.HW.AddReg
> -
> -[ComPort.NT.AddReg]
> -HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
> -
> -[ComPort.NT.HW.AddReg]
> -HKR,,"UpperFilters",0x00010000,"serenum"
> -
> -;-------------- Service installation
> -; Port Driver (function driver for this device)
> -[ComPort.NT.Services]
> -AddService = Serial, 0x00000002, Serial_Service_Inst, Serial_EventLog_Inst
> -AddService = Serenum,,Serenum_Service_Inst
> -
> -; -------------- Serial Port Driver install sections
> -[Serial_Service_Inst]
> -DisplayName    = %Serial.SVCDESC%
> -ServiceType    = 1               ; SERVICE_KERNEL_DRIVER
> -StartType      = 1               ; SERVICE_SYSTEM_START (this driver may do detection)
> -ErrorControl   = 0               ; SERVICE_ERROR_IGNORE
> -ServiceBinary  = %12%\serial.sys
> -LoadOrderGroup = Extended base
> -
> -; -------------- Serenum Driver install section
> -[Serenum_Service_Inst]
> -DisplayName    = %Serenum.SVCDESC%
> -ServiceType    = 1               ; SERVICE_KERNEL_DRIVER
> -StartType      = 3               ; SERVICE_DEMAND_START
> -ErrorControl   = 1               ; SERVICE_ERROR_NORMAL
> -ServiceBinary  = %12%\serenum.sys
> -LoadOrderGroup = PNP Filter
> -
> -[Serial_EventLog_Inst]
> -AddReg = Serial_EventLog_AddReg
> -
> -[Serial_EventLog_AddReg]
> -HKR,,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\IoLogMsg.dll;%%SystemRoot%%\System32\drivers\serial.sys"
> -HKR,,TypesSupported,0x00010001,7
> -
> -; The following sections are COM port resource configs.
> -; Section name format means:
> -; Char 1 = c (COM port)
> -; Char 2 = I/O config: 1 (3f8), 2 (2f8), 3 (3e8), 4 (2e8), a (any)
> -; Char 3 = IRQ config: #, a (any)
> -
> -[caa]                   ; Any base, any IRQ
> -ConfigPriority=HARDRECONFIG
> -IOConfig=8@100-ffff%fff8(3ff::)
> -IRQConfig=S:3,4,5,7,9,10,11,12,14,15
> +%QEMU-PCI_SERIAL_1_PORT%=ComPort_inst1, PCI\VEN_1B36&DEV_0002
> +%QEMU-PCI_SERIAL_2_PORT%=ComPort_inst2, PCI\VEN_1B36&DEV_0003
> +%QEMU-PCI_SERIAL_4_PORT%=ComPort_inst4, PCI\VEN_1B36&DEV_0004
>   

Here is your Windows 32 bit section.

> +
> +[ComPort_inst1]
> +Include=mf.inf
> +Needs=MFINSTALL.mf
> +
> +[ComPort_inst2]
> +Include=mf.inf
> +Needs=MFINSTALL.mf
> +
> +[ComPort_inst4]
> +Include=mf.inf
> +Needs=MFINSTALL.mf
> +
> +[ComPort_inst1.HW]
> +AddReg=ComPort_inst1.NTAMD64.RegHW
> +
> +[ComPort_inst2.HW]
> +AddReg=ComPort_inst2.NTAMD64.RegHW
> +
> +[ComPort_inst4.HW]
> +AddReg=ComPort_inst4.NTAMD64.RegHW
>   

And you are calling in your 32-bit sections the 64-bit counterpart.

> +
> +[ComPort_inst1.Services]
> +Include=mf.inf
> +Needs=MFINSTALL.mf.Services
> +
> +[ComPort_inst2.Services]
> +Include=mf.inf
> +Needs=MFINSTALL.mf.Services
> +
> +[ComPort_inst4.Services]
> +Include=mf.inf
> +Needs=MFINSTALL.mf.Services
> +
> +[ComPort_inst1.RegHW]
> +HKR,Child0000,HardwareID,,*PNP0501
> +HKR,Child0000,VaryingResourceMap,1,00, 00,00,00,00, 08,00,00,00
> +HKR,Child0000,ResourceMap,1,02
> +
> +[ComPort_inst2.RegHW]
> +HKR,Child0000,HardwareID,,*PNP0501
> +HKR,Child0000,VaryingResourceMap,1,00, 00,00,00,00, 08,00,00,00
> +HKR,Child0000,ResourceMap,1,02
> +HKR,Child0001,HardwareID,,*PNP0501
> +HKR,Child0001,VaryingResourceMap,1,00, 08,00,00,00, 08,00,00,00
> +HKR,Child0001,ResourceMap,1,02
> +
> +[ComPort_inst4.RegHW]
> +HKR,Child0000,HardwareID,,*PNP0501
> +HKR,Child0000,VaryingResourceMap,1,00, 00,00,00,00, 08,00,00,00
> +HKR,Child0000,ResourceMap,1,02
> +HKR,Child0001,HardwareID,,*PNP0501
> +HKR,Child0001,VaryingResourceMap,1,00, 08,00,00,00, 08,00,00,00
> +HKR,Child0001,ResourceMap,1,02
> +HKR,Child0002,HardwareID,,*PNP0501
> +HKR,Child0002,VaryingResourceMap,1,00, 10,00,00,00, 08,00,00,00
> +HKR,Child0002,ResourceMap,1,02
> +HKR,Child0003,HardwareID,,*PNP0501
> +HKR,Child0003,VaryingResourceMap,1,00, 18,00,00,00, 08,00,00,00
> +HKR,Child0003,ResourceMap,1,02
> +
> +[QEMU.NTAMD64]
> +%QEMU-PCI_SERIAL_1_PORT%=ComPort_inst1, PCI\VEN_1B36&DEV_0002
> +%QEMU-PCI_SERIAL_2_PORT%=ComPort_inst2, PCI\VEN_1B36&DEV_0003
> +%QEMU-PCI_SERIAL_4_PORT%=ComPort_inst4, PCI\VEN_1B36&DEV_0004
>   
Here is your device list for Windows 64-bit (as required by Windows 2003 
SP1+)

> +
> +[ComPort_inst1.NTAMD64]
> +Include=mf.inf
> +Needs=MFINSTALL.mf
> +
> +[ComPort_inst2.NTAMD64]
> +Include=mf.inf
> +Needs=MFINSTALL.mf
> +
> +[ComPort_inst4.NTAMD64]
> +Include=mf.inf
> +Needs=MFINSTALL.mf
> +
> +[ComPort_inst1.NTAMD64.HW]
> +AddReg=ComPort_inst1.NTAMD64.RegHW
> +
> +[ComPort_inst2.NTAMD64.HW]
> +AddReg=ComPort_inst2.NTAMD64.RegHW
> +
> +[ComPort_inst4.NTAMD64.HW]
> +AddReg=ComPort_inst4.NTAMD64.RegHW
> +
> +[ComPort_inst1.NTAMD64.Services]
> +Include=mf.inf
> +Needs=MFINSTALL.mf.Services
> +
> +[ComPort_inst2.NTAMD64.Services]
> +Include=mf.inf
> +Needs=MFINSTALL.mf.Services
> +
> +[ComPort_inst4.NTAMD64.Services]
> +Include=mf.inf
> +Needs=MFINSTALL.mf.Services
> +
> +[ComPort_inst1.NTAMD64.RegHW]
> +HKR,Child0000,HardwareID,,*PNP0501
> +HKR,Child0000,VaryingResourceMap,1,00, 00,00,00,00, 08,00,00,00
> +HKR,Child0000,ResourceMap,1,02
> +
> +[ComPort_inst2.NTAMD64.RegHW]
> +HKR,Child0000,HardwareID,,*PNP0501
> +HKR,Child0000,VaryingResourceMap,1,00, 00,00,00,00, 08,00,00,00
> +HKR,Child0000,ResourceMap,1,02
> +HKR,Child0001,HardwareID,,*PNP0501
> +HKR,Child0001,VaryingResourceMap,1,00, 08,00,00,00, 08,00,00,00
> +HKR,Child0001,ResourceMap,1,02
> +
> +[ComPort_inst4.NTAMD64.RegHW]
> +HKR,Child0000,HardwareID,,*PNP0501
> +HKR,Child0000,VaryingResourceMap,1,00, 00,00,00,00, 08,00,00,00
> +HKR,Child0000,ResourceMap,1,02
> +HKR,Child0001,HardwareID,,*PNP0501
> +HKR,Child0001,VaryingResourceMap,1,00, 08,00,00,00, 08,00,00,00
> +HKR,Child0001,ResourceMap,1,02
> +HKR,Child0002,HardwareID,,*PNP0501
> +HKR,Child0002,VaryingResourceMap,1,00, 10,00,00,00, 08,00,00,00
> +HKR,Child0002,ResourceMap,1,02
> +HKR,Child0003,HardwareID,,*PNP0501
> +HKR,Child0003,VaryingResourceMap,1,00, 18,00,00,00, 08,00,00,00
> +HKR,Child0003,ResourceMap,1,02
>   

All those sections are the same as the non-NTAMD64 parts. You should be 
able to remove them, and Windows will use the other one without 
decoration instead.
MSDN says: "Include other device-specific sections that are required to 
install the device, but do not include an *.ntamd64* platform extension 
on names of these sections"

>  
>  [Strings]
>  QEMU="QEMU"
> -QEMU-PCI_SERIAL.DeviceDesc="QEMU Serial PCI Card"
> -
> -Serial.SVCDESC   = "Serial port driver"
> -Serenum.SVCDESC = "Serenum Filter Driver"
> +QEMU-PCI_SERIAL_1_PORT="1x QEMU PCI Serial Card"
> +QEMU-PCI_SERIAL_2_PORT="2x QEMU PCI Serial Card"
> +QEMU-PCI_SERIAL_4_PORT="4x QEMU PCI Serial Card"
>   

Regards,

Hervé

  parent reply	other threads:[~2014-01-16 21:13 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-16 12:18 [Qemu-devel] [PATCH V2 00/01] Docs: Introduce multiport serial support in qemupciserial.inf Miki Mishael
2014-01-16 12:18 ` [Qemu-devel] [PATCH] " Miki Mishael
2014-01-16 14:44   ` Gerd Hoffmann
2014-01-16 21:12   ` Hervé Poussineau [this message]
  -- strict thread matches above, loose matches on Subject: below --
2014-01-05 15:04 Miki Mishael
2014-01-07 14:45 ` Paolo Bonzini
2014-01-08 15:07   ` Yan Vugenfirer
2014-01-08 16:11     ` Paolo Bonzini
2014-01-08 16:38       ` Michael S. Tsirkin
2014-01-13 10:13       ` Gerd Hoffmann
2014-01-13 14:48         ` Michael S. Tsirkin
2014-01-13 14:56           ` Paolo Bonzini
2014-01-13 15:03             ` Michael S. Tsirkin
2014-01-13 15:04               ` Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52D84B43.7030902@reactos.org \
    --to=hpoussin@reactos.org \
    --cc=aglitke@linux.vnet.ibm.com \
    --cc=aliguori@amazon.com \
    --cc=dfleytma@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=mdroth@linux.vnet.ibm.com \
    --cc=mmishael@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rhod@redhat.com \
    --cc=yvugenfi@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).