qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] Docs: Introduce multiport serial support in qemupciserial.inf
@ 2014-01-05 15:04 Miki Mishael
  2014-01-07 14:45 ` Paolo Bonzini
  0 siblings, 1 reply; 13+ messages in thread
From: Miki Mishael @ 2014-01-05 15:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Yan Vugenfirer, Ronen Hod, Gerd Hoffmann, Anthony Liguori,
	Paolo Bonzini, Dmitry Fleytman, Miki Mishael

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..c6988b9 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
 
 [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&SUBSYS_11001AF4&REV_01
+%QEMU-PCI_SERIAL_2_PORT%=ComPort_inst2, PCI\VEN_1B36&DEV_0003&SUBSYS_11001AF4&REV_01
+%QEMU-PCI_SERIAL_4_PORT%=ComPort_inst4, PCI\VEN_1B36&DEV_0004&SUBSYS_11001AF4&REV_01
+
+[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
+
+[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&SUBSYS_11001AF4&REV_01
+%QEMU-PCI_SERIAL_2_PORT%=ComPort_inst2, PCI\VEN_1B36&DEV_0003&SUBSYS_11001AF4&REV_01
+%QEMU-PCI_SERIAL_4_PORT%=ComPort_inst4, PCI\VEN_1B36&DEV_0004&SUBSYS_11001AF4&REV_01
+
+[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
 
 [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"
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH] Docs: Introduce multiport serial support in qemupciserial.inf
  2014-01-05 15:04 [Qemu-devel] [PATCH] Docs: Introduce multiport serial support in qemupciserial.inf Miki Mishael
@ 2014-01-07 14:45 ` Paolo Bonzini
  2014-01-08 15:07   ` Yan Vugenfirer
  0 siblings, 1 reply; 13+ messages in thread
From: Paolo Bonzini @ 2014-01-07 14:45 UTC (permalink / raw)
  To: Miki Mishael
  Cc: Yan Vugenfirer, qemu-devel, Ronen Hod, Gerd Hoffmann,
	Anthony Liguori, Dmitry Fleytman

Il 05/01/2014 16:04, Miki Mishael ha scritto:
> 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..c6988b9 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
>  
>  [QEMU.NTx86]
> -%QEMU-PCI_SERIAL.DeviceDesc% = ComPort, "PCI\VEN_1b36&DEV_0002&CC_0700"
> +%QEMU-PCI_SERIAL_1_PORT%=ComPort_inst1, PCI\VEN_1B36&DEV_0002&SUBSYS_11001AF4&REV_01
> +%QEMU-PCI_SERIAL_2_PORT%=ComPort_inst2, PCI\VEN_1B36&DEV_0003&SUBSYS_11001AF4&REV_01
> +%QEMU-PCI_SERIAL_4_PORT%=ComPort_inst4, PCI\VEN_1B36&DEV_0004&SUBSYS_11001AF4&REV_01

I think checking the subsystem is not necessary (and I think downstreams
could legitimately change it).  Can you check CC and REV but not SUBSYS?

Otherwise I cannot pretend I know what's going on, but it makes sense. :)

Paolo

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH] Docs: Introduce multiport serial support in qemupciserial.inf
  2014-01-07 14:45 ` Paolo Bonzini
@ 2014-01-08 15:07   ` Yan Vugenfirer
  2014-01-08 16:11     ` Paolo Bonzini
  0 siblings, 1 reply; 13+ messages in thread
From: Yan Vugenfirer @ 2014-01-08 15:07 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: qemu-devel list, Ronen Hod, Gerd Hoffmann, Anthony Liguori,
	Dmitry Fleytman, Miki Mishael

[-- Attachment #1: Type: text/plain, Size: 2649 bytes --]


On Jan 7, 2014, at 4:45 PM, Paolo Bonzini <pbonzini@redhat.com> wrote:

> Il 05/01/2014 16:04, Miki Mishael ha scritto:
>> 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..c6988b9 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
>> 
>> [QEMU.NTx86]
>> -%QEMU-PCI_SERIAL.DeviceDesc% = ComPort, "PCI\VEN_1b36&DEV_0002&CC_0700"
>> +%QEMU-PCI_SERIAL_1_PORT%=ComPort_inst1, PCI\VEN_1B36&DEV_0002&SUBSYS_11001AF4&REV_01
>> +%QEMU-PCI_SERIAL_2_PORT%=ComPort_inst2, PCI\VEN_1B36&DEV_0003&SUBSYS_11001AF4&REV_01
>> +%QEMU-PCI_SERIAL_4_PORT%=ComPort_inst4, PCI\VEN_1B36&DEV_0004&SUBSYS_11001AF4&REV_01
> 
> I think checking the subsystem is not necessary (and I think downstreams
> could legitimately change it).  Can you check CC and REV but not SUBSYS?

PNP ID can be reduced to vendor and device ID only, for example: PCI\VEN_1B36&DEV_0002 . But in this case we cannot check revision.

Yan.

> 
> Otherwise I cannot pretend I know what's going on, but it makes sense. :)
> 
> Paolo


[-- Attachment #2: Type: text/html, Size: 4239 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH] Docs: Introduce multiport serial support in qemupciserial.inf
  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
  0 siblings, 2 replies; 13+ messages in thread
From: Paolo Bonzini @ 2014-01-08 16:11 UTC (permalink / raw)
  To: Yan Vugenfirer
  Cc: Michael S. Tsirkin, qemu-devel list, Ronen Hod, Gerd Hoffmann,
	Anthony Liguori, Dmitry Fleytman, Miki Mishael

Il 08/01/2014 16:07, Yan Vugenfirer ha scritto:
>>>
>>> +%QEMU-PCI_SERIAL_1_PORT%=ComPort_inst1,
>>> PCI\VEN_1B36&DEV_0002&SUBSYS_11001AF4&REV_01
>>> +%QEMU-PCI_SERIAL_2_PORT%=ComPort_inst2,
>>> PCI\VEN_1B36&DEV_0003&SUBSYS_11001AF4&REV_01
>>> +%QEMU-PCI_SERIAL_4_PORT%=ComPort_inst4,
>>> PCI\VEN_1B36&DEV_0004&SUBSYS_11001AF4&REV_01
>>
>> I think checking the subsystem is not necessary (and I think downstreams
>> could legitimately change it).  Can you check CC and REV but not SUBSYS?
> 
> PNP ID can be reduced to vendor and device ID only, for example:
> PCI\VEN_1B36&DEV_0002 . But in this case we cannot check revision.

Gerd, Michael, what do you think is better?  Not check revision, or
enforcing subsystem?

Paolo

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH] Docs: Introduce multiport serial support in qemupciserial.inf
  2014-01-08 16:11     ` Paolo Bonzini
@ 2014-01-08 16:38       ` Michael S. Tsirkin
  2014-01-13 10:13       ` Gerd Hoffmann
  1 sibling, 0 replies; 13+ messages in thread
From: Michael S. Tsirkin @ 2014-01-08 16:38 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Yan Vugenfirer, qemu-devel list, Ronen Hod, Gerd Hoffmann,
	Anthony Liguori, Dmitry Fleytman, Miki Mishael

On Wed, Jan 08, 2014 at 05:11:48PM +0100, Paolo Bonzini wrote:
> Il 08/01/2014 16:07, Yan Vugenfirer ha scritto:
> >>>
> >>> +%QEMU-PCI_SERIAL_1_PORT%=ComPort_inst1,
> >>> PCI\VEN_1B36&DEV_0002&SUBSYS_11001AF4&REV_01
> >>> +%QEMU-PCI_SERIAL_2_PORT%=ComPort_inst2,
> >>> PCI\VEN_1B36&DEV_0003&SUBSYS_11001AF4&REV_01
> >>> +%QEMU-PCI_SERIAL_4_PORT%=ComPort_inst4,
> >>> PCI\VEN_1B36&DEV_0004&SUBSYS_11001AF4&REV_01
> >>
> >> I think checking the subsystem is not necessary (and I think downstreams
> >> could legitimately change it).  Can you check CC and REV but not SUBSYS?
> > 
> > PNP ID can be reduced to vendor and device ID only, for example:
> > PCI\VEN_1B36&DEV_0002 . But in this case we cannot check revision.
> 
> Gerd, Michael, what do you think is better?  Not check revision, or
> enforcing subsystem?
> 
> Paolo

AFAIK the 0.9.X spec explicitly says you should look at subsystem.


-- 
MST

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH] Docs: Introduce multiport serial support in qemupciserial.inf
  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
  1 sibling, 1 reply; 13+ messages in thread
From: Gerd Hoffmann @ 2014-01-13 10:13 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Michael S. Tsirkin, Yan Vugenfirer, qemu-devel list, Ronen Hod,
	Anthony Liguori, Dmitry Fleytman, Miki Mishael

On Mi, 2014-01-08 at 17:11 +0100, Paolo Bonzini wrote:
> Il 08/01/2014 16:07, Yan Vugenfirer ha scritto:
> >>>
> >>> +%QEMU-PCI_SERIAL_1_PORT%=ComPort_inst1,
> >>> PCI\VEN_1B36&DEV_0002&SUBSYS_11001AF4&REV_01
> >>> +%QEMU-PCI_SERIAL_2_PORT%=ComPort_inst2,
> >>> PCI\VEN_1B36&DEV_0003&SUBSYS_11001AF4&REV_01
> >>> +%QEMU-PCI_SERIAL_4_PORT%=ComPort_inst4,
> >>> PCI\VEN_1B36&DEV_0004&SUBSYS_11001AF4&REV_01
> >>
> >> I think checking the subsystem is not necessary (and I think downstreams
> >> could legitimately change it).  Can you check CC and REV but not SUBSYS?
> > 
> > PNP ID can be reduced to vendor and device ID only, for example:
> > PCI\VEN_1B36&DEV_0002 . But in this case we cannot check revision.
> 
> Gerd, Michael, what do you think is better?  Not check revision, or
> enforcing subsystem?

No need to check the revision.  There is only one, I doubt this will
ever change, and should we do a rev2 virtual hardware it is supposed to
be backward-compatible to rev1 (otherwise we should hand out a new pci
id to the device).

[ drivers which depend on few features of the hypothetical rev2 hardware
  and don't work with rev1 would need a revision check ]

cheers,
  Gerd

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH] Docs: Introduce multiport serial support in qemupciserial.inf
  2014-01-13 10:13       ` Gerd Hoffmann
@ 2014-01-13 14:48         ` Michael S. Tsirkin
  2014-01-13 14:56           ` Paolo Bonzini
  0 siblings, 1 reply; 13+ messages in thread
From: Michael S. Tsirkin @ 2014-01-13 14:48 UTC (permalink / raw)
  To: Gerd Hoffmann
  Cc: Yan Vugenfirer, qemu-devel list, Ronen Hod, Anthony Liguori,
	Paolo Bonzini, Dmitry Fleytman, Miki Mishael

On Mon, Jan 13, 2014 at 11:13:07AM +0100, Gerd Hoffmann wrote:
> On Mi, 2014-01-08 at 17:11 +0100, Paolo Bonzini wrote:
> > Il 08/01/2014 16:07, Yan Vugenfirer ha scritto:
> > >>>
> > >>> +%QEMU-PCI_SERIAL_1_PORT%=ComPort_inst1,
> > >>> PCI\VEN_1B36&DEV_0002&SUBSYS_11001AF4&REV_01
> > >>> +%QEMU-PCI_SERIAL_2_PORT%=ComPort_inst2,
> > >>> PCI\VEN_1B36&DEV_0003&SUBSYS_11001AF4&REV_01
> > >>> +%QEMU-PCI_SERIAL_4_PORT%=ComPort_inst4,
> > >>> PCI\VEN_1B36&DEV_0004&SUBSYS_11001AF4&REV_01
> > >>
> > >> I think checking the subsystem is not necessary (and I think downstreams
> > >> could legitimately change it).  Can you check CC and REV but not SUBSYS?
> > > 
> > > PNP ID can be reduced to vendor and device ID only, for example:
> > > PCI\VEN_1B36&DEV_0002 . But in this case we cannot check revision.
> > 
> > Gerd, Michael, what do you think is better?  Not check revision, or
> > enforcing subsystem?
> 
> No need to check the revision.  There is only one, I doubt this will
> ever change, and should we do a rev2 virtual hardware it is supposed to
> be backward-compatible to rev1 (otherwise we should hand out a new pci
> id to the device).
> 
> [ drivers which depend on few features of the hypothetical rev2 hardware
>   and don't work with rev1 would need a revision check ]
> 
> cheers,
>   Gerd
> 


Well linux checks revision:


        if (pci_dev->revision != VIRTIO_PCI_ABI_VERSION) {
                printk(KERN_ERR "virtio_pci: expected ABI version %d,
got %d\n",
                       VIRTIO_PCI_ABI_VERSION, pci_dev->revision);
                return -ENODEV;
        }

so it seems better to be consistent.
in any case, we must check subsystem ids, the spec is very
explicit on this point.

-- 
MST

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH] Docs: Introduce multiport serial support in qemupciserial.inf
  2014-01-13 14:48         ` Michael S. Tsirkin
@ 2014-01-13 14:56           ` Paolo Bonzini
  2014-01-13 15:03             ` Michael S. Tsirkin
  0 siblings, 1 reply; 13+ messages in thread
From: Paolo Bonzini @ 2014-01-13 14:56 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Yan Vugenfirer, qemu-devel list, Ronen Hod, Gerd Hoffmann,
	Anthony Liguori, Dmitry Fleytman, Miki Mishael

Il 13/01/2014 15:48, Michael S. Tsirkin ha scritto:
> 
>         if (pci_dev->revision != VIRTIO_PCI_ABI_VERSION) {
>                 printk(KERN_ERR "virtio_pci: expected ABI version %d,
> got %d\n",
>                        VIRTIO_PCI_ABI_VERSION, pci_dev->revision);
>                 return -ENODEV;
>         }
> 
> so it seems better to be consistent.
> in any case, we must check subsystem ids, the spec is very
> explicit on this point.

This is not a virtio device.

Paolo

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH] Docs: Introduce multiport serial support in qemupciserial.inf
  2014-01-13 14:56           ` Paolo Bonzini
@ 2014-01-13 15:03             ` Michael S. Tsirkin
  2014-01-13 15:04               ` Paolo Bonzini
  0 siblings, 1 reply; 13+ messages in thread
From: Michael S. Tsirkin @ 2014-01-13 15:03 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Yan Vugenfirer, qemu-devel list, Ronen Hod, Gerd Hoffmann,
	Anthony Liguori, Dmitry Fleytman, Miki Mishael

On Mon, Jan 13, 2014 at 03:56:49PM +0100, Paolo Bonzini wrote:
> Il 13/01/2014 15:48, Michael S. Tsirkin ha scritto:
> > 
> >         if (pci_dev->revision != VIRTIO_PCI_ABI_VERSION) {
> >                 printk(KERN_ERR "virtio_pci: expected ABI version %d,
> > got %d\n",
> >                        VIRTIO_PCI_ABI_VERSION, pci_dev->revision);
> >                 return -ENODEV;
> >         }
> > 
> > so it seems better to be consistent.
> > in any case, we must check subsystem ids, the spec is very
> > explicit on this point.
> 
> This is not a virtio device.
> 
> Paolo

oh
I didn't realize that - thought it's virtio serial we are talking about.
In that case I agree with Gerd.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH] Docs: Introduce multiport serial support in qemupciserial.inf
  2014-01-13 15:03             ` Michael S. Tsirkin
@ 2014-01-13 15:04               ` Paolo Bonzini
  0 siblings, 0 replies; 13+ messages in thread
From: Paolo Bonzini @ 2014-01-13 15:04 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Yan Vugenfirer, qemu-devel list, Ronen Hod, Gerd Hoffmann,
	Anthony Liguori, Dmitry Fleytman, Miki Mishael

Il 13/01/2014 16:03, Michael S. Tsirkin ha scritto:
>>> > > so it seems better to be consistent.
>>> > > in any case, we must check subsystem ids, the spec is very
>>> > > explicit on this point.
>> > 
>> > This is not a virtio device.
>> > 
>> > Paolo
> oh
> I didn't realize that - thought it's virtio serial we are talking about.
> In that case I agree with Gerd.

Ok, so we all agree.  Miki, can you do v2 with the same ID
(vendor/product/CC)?

Thanks,

Paolo

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Qemu-devel] [PATCH] Docs: Introduce multiport serial support in qemupciserial.inf.
  2014-01-16 12:18 [Qemu-devel] [PATCH V2 00/01] " Miki Mishael
@ 2014-01-16 12:18 ` Miki Mishael
  2014-01-16 14:44   ` Gerd Hoffmann
  2014-01-16 21:12   ` Hervé Poussineau
  0 siblings, 2 replies; 13+ messages in thread
From: Miki Mishael @ 2014-01-16 12:18 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Yan Vugenfirer, Michael Roth, Adam Litke,
	Ronen Hod, Gerd Hoffmann, Anthony Liguori, Paolo Bonzini,
	Dmitry Fleytman

      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
 
 [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
+
+[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
+
+[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
+
+[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
 
 [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"
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH] Docs: Introduce multiport serial support in qemupciserial.inf.
  2014-01-16 12:18 ` [Qemu-devel] [PATCH] " Miki Mishael
@ 2014-01-16 14:44   ` Gerd Hoffmann
  2014-01-16 21:12   ` Hervé Poussineau
  1 sibling, 0 replies; 13+ messages in thread
From: Gerd Hoffmann @ 2014-01-16 14:44 UTC (permalink / raw)
  To: Miki Mishael
  Cc: Michael Roth, Michael S. Tsirkin, Yan Vugenfirer, qemu-devel,
	Adam Litke, Ronen Hod, Anthony Liguori, Paolo Bonzini,
	Dmitry Fleytman

On Do, 2014-01-16 at 07:18 -0500, Miki Mishael wrote:
>       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.

Patch looks good.  Not that I understand everything of it (the
original .inf file was largely a copy + try to adapt job), but the parts
I'm able to parse are sane.

Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>

cheers,
  Gerd

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH] Docs: Introduce multiport serial support in qemupciserial.inf.
  2014-01-16 12:18 ` [Qemu-devel] [PATCH] " Miki Mishael
  2014-01-16 14:44   ` Gerd Hoffmann
@ 2014-01-16 21:12   ` Hervé Poussineau
  1 sibling, 0 replies; 13+ messages in thread
From: Hervé Poussineau @ 2014-01-16 21:12 UTC (permalink / raw)
  To: Miki Mishael
  Cc: Michael S. Tsirkin, qemu-devel, Yan Vugenfirer, Michael Roth,
	Adam Litke, Ronen Hod, Gerd Hoffmann, Anthony Liguori,
	Paolo Bonzini, Dmitry Fleytman

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é

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2014-01-16 21:13 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-05 15:04 [Qemu-devel] [PATCH] Docs: Introduce multiport serial support in qemupciserial.inf 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
  -- strict thread matches above, loose matches on Subject: below --
2014-01-16 12:18 [Qemu-devel] [PATCH V2 00/01] " 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 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).