Re: [edk2] [PATCH v2 0/3] Ovmf: Stop using ISA drivers within IntelFrameworkModulePkg

2019-03-26 Thread Wu, Hao A
> -Original Message-
> From: Laszlo Ersek [mailto:ler...@redhat.com]
> Sent: Wednesday, March 27, 2019 11:37 AM
> To: Wu, Hao A
> Cc: Anthony PERARD; Justen, Jordan L; edk2-devel@lists.01.org; Julien Grall
> Subject: Re: [edk2] [PATCH v2 0/3] Ovmf: Stop using ISA drivers within
> IntelFrameworkModulePkg
> 
> On 03/27/19 01:20, Wu, Hao A wrote:
> >> -Original Message-
> >> From: Laszlo Ersek [mailto:ler...@redhat.com]
> >> Sent: Tuesday, March 26, 2019 11:15 PM
> >> To: Wu, Hao A
> >> Cc: Anthony PERARD; Justen, Jordan L; edk2-devel@lists.01.org; Julien Grall
> >> Subject: Re: [edk2] [PATCH v2 0/3] Ovmf: Stop using ISA drivers within
> >> IntelFrameworkModulePkg
> >>
> >> Hi Hao,
> >>
> >> On 03/26/19 16:01, Laszlo Ersek wrote:
> >>> On 03/26/19 14:03, Anthony PERARD wrote:
> >>>> On Mon, Mar 25, 2019 at 12:29:25PM +0100, Laszlo Ersek wrote:
> >>>>> (4) Julien, Anthony: can you please fetch this series (github URL at the
> >>>>> top) and see if the PS/2 keyboard, and the serial port, still work on
> >>>>> Xen, to interact e.g. with the UEFI shell?
> >>>>
> >>>> Yes, I can still interact with the UEFI shell with this series applied,
> >>>> both via the console and via VNC (which uses respectively the serial
> >>>> port and PS/2 I think).
> >>>
> >>> Thank you -- can you please follow up with a Tested-by, or do you prefer
> >>> if I push the set without it?
> >>
> >> ... actually, I just realize that you can push this series just fine,
> >> after Anthony's answer -- so please excuse my confusing comment; I'll of
> >> course let you push the series.
> >
> > Hello Laszlo,
> >
> > Sure, I will push the series.
> >
> > But one thing to confirm, for patch 2/3, it only got a couple of 'Ack'
> > tags and a 'Tested-by' tag. I am not sure if this meets the criteria for
> > pushing.
> 
> Yes, if you get an Acked-by from at least one "M" person for the package
> (and no open questions remain), that's sufficient. For edk2, my
> interpretation of "Acked-by" is: "although I haven't reviewed in detail,
> I agree/approve".

Got it.

Thanks all for the feedbacks and review/test effort.

Series has been pushed via commits:
c455bc8c8d..a068102296

Best Regards,
Hao Wu

> 
> Thanks,
> Laszlo
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [PATCH v2 0/3] Ovmf: Stop using ISA drivers within IntelFrameworkModulePkg

2019-03-26 Thread Laszlo Ersek
On 03/27/19 01:20, Wu, Hao A wrote:
>> -Original Message-
>> From: Laszlo Ersek [mailto:ler...@redhat.com]
>> Sent: Tuesday, March 26, 2019 11:15 PM
>> To: Wu, Hao A
>> Cc: Anthony PERARD; Justen, Jordan L; edk2-devel@lists.01.org; Julien Grall
>> Subject: Re: [edk2] [PATCH v2 0/3] Ovmf: Stop using ISA drivers within
>> IntelFrameworkModulePkg
>>
>> Hi Hao,
>>
>> On 03/26/19 16:01, Laszlo Ersek wrote:
>>> On 03/26/19 14:03, Anthony PERARD wrote:
>>>> On Mon, Mar 25, 2019 at 12:29:25PM +0100, Laszlo Ersek wrote:
>>>>> (4) Julien, Anthony: can you please fetch this series (github URL at the
>>>>> top) and see if the PS/2 keyboard, and the serial port, still work on
>>>>> Xen, to interact e.g. with the UEFI shell?
>>>>
>>>> Yes, I can still interact with the UEFI shell with this series applied,
>>>> both via the console and via VNC (which uses respectively the serial
>>>> port and PS/2 I think).
>>>
>>> Thank you -- can you please follow up with a Tested-by, or do you prefer
>>> if I push the set without it?
>>
>> ... actually, I just realize that you can push this series just fine,
>> after Anthony's answer -- so please excuse my confusing comment; I'll of
>> course let you push the series.
> 
> Hello Laszlo,
> 
> Sure, I will push the series.
> 
> But one thing to confirm, for patch 2/3, it only got a couple of 'Ack'
> tags and a 'Tested-by' tag. I am not sure if this meets the criteria for
> pushing.

Yes, if you get an Acked-by from at least one "M" person for the package
(and no open questions remain), that's sufficient. For edk2, my
interpretation of "Acked-by" is: "although I haven't reviewed in detail,
I agree/approve".

Thanks,
Laszlo
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [PATCH v2 0/3] Ovmf: Stop using ISA drivers within IntelFrameworkModulePkg

2019-03-26 Thread Wu, Hao A
> -Original Message-
> From: Laszlo Ersek [mailto:ler...@redhat.com]
> Sent: Tuesday, March 26, 2019 11:15 PM
> To: Wu, Hao A
> Cc: Anthony PERARD; Justen, Jordan L; edk2-devel@lists.01.org; Julien Grall
> Subject: Re: [edk2] [PATCH v2 0/3] Ovmf: Stop using ISA drivers within
> IntelFrameworkModulePkg
> 
> Hi Hao,
> 
> On 03/26/19 16:01, Laszlo Ersek wrote:
> > On 03/26/19 14:03, Anthony PERARD wrote:
> >> On Mon, Mar 25, 2019 at 12:29:25PM +0100, Laszlo Ersek wrote:
> >>> (4) Julien, Anthony: can you please fetch this series (github URL at the
> >>> top) and see if the PS/2 keyboard, and the serial port, still work on
> >>> Xen, to interact e.g. with the UEFI shell?
> >>
> >> Yes, I can still interact with the UEFI shell with this series applied,
> >> both via the console and via VNC (which uses respectively the serial
> >> port and PS/2 I think).
> >
> > Thank you -- can you please follow up with a Tested-by, or do you prefer
> > if I push the set without it?
> 
> ... actually, I just realize that you can push this series just fine,
> after Anthony's answer -- so please excuse my confusing comment; I'll of
> course let you push the series.

Hello Laszlo,

Sure, I will push the series.

But one thing to confirm, for patch 2/3, it only got a couple of 'Ack'
tags and a 'Tested-by' tag. I am not sure if this meets the criteria for
pushing.

Best Regards,
Hao Wu

> 
> Thanks
> Laszlo
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [PATCH v2 0/3] Ovmf: Stop using ISA drivers within IntelFrameworkModulePkg

2019-03-26 Thread Laszlo Ersek
Hi Hao,

On 03/26/19 16:01, Laszlo Ersek wrote:
> On 03/26/19 14:03, Anthony PERARD wrote:
>> On Mon, Mar 25, 2019 at 12:29:25PM +0100, Laszlo Ersek wrote:
>>> (4) Julien, Anthony: can you please fetch this series (github URL at the
>>> top) and see if the PS/2 keyboard, and the serial port, still work on
>>> Xen, to interact e.g. with the UEFI shell?
>>
>> Yes, I can still interact with the UEFI shell with this series applied,
>> both via the console and via VNC (which uses respectively the serial
>> port and PS/2 I think).
> 
> Thank you -- can you please follow up with a Tested-by, or do you prefer
> if I push the set without it?

... actually, I just realize that you can push this series just fine,
after Anthony's answer -- so please excuse my confusing comment; I'll of
course let you push the series.

Thanks
Laszlo
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [PATCH v2 0/3] Ovmf: Stop using ISA drivers within IntelFrameworkModulePkg

2019-03-26 Thread Anthony PERARD
On Tue, Mar 26, 2019 at 04:01:03PM +0100, Laszlo Ersek wrote:
> On 03/26/19 14:03, Anthony PERARD wrote:
> > On Mon, Mar 25, 2019 at 12:29:25PM +0100, Laszlo Ersek wrote:
> >> (4) Julien, Anthony: can you please fetch this series (github URL at the
> >> top) and see if the PS/2 keyboard, and the serial port, still work on
> >> Xen, to interact e.g. with the UEFI shell?
> > 
> > Yes, I can still interact with the UEFI shell with this series applied,
> > both via the console and via VNC (which uses respectively the serial
> > port and PS/2 I think).
> 
> Thank you -- can you please follow up with a Tested-by, or do you prefer
> if I push the set without it?

Tested-by: Anthony PERARD 

-- 
Anthony PERARD
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [PATCH v2 0/3] Ovmf: Stop using ISA drivers within IntelFrameworkModulePkg

2019-03-26 Thread Laszlo Ersek
On 03/26/19 14:03, Anthony PERARD wrote:
> On Mon, Mar 25, 2019 at 12:29:25PM +0100, Laszlo Ersek wrote:
>> (4) Julien, Anthony: can you please fetch this series (github URL at the
>> top) and see if the PS/2 keyboard, and the serial port, still work on
>> Xen, to interact e.g. with the UEFI shell?
> 
> Yes, I can still interact with the UEFI shell with this series applied,
> both via the console and via VNC (which uses respectively the serial
> port and PS/2 I think).

Thank you -- can you please follow up with a Tested-by, or do you prefer
if I push the set without it?

Thanks!
Laszlo
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [PATCH v2 0/3] Ovmf: Stop using ISA drivers within IntelFrameworkModulePkg

2019-03-26 Thread Anthony PERARD
On Mon, Mar 25, 2019 at 12:29:25PM +0100, Laszlo Ersek wrote:
> (4) Julien, Anthony: can you please fetch this series (github URL at the
> top) and see if the PS/2 keyboard, and the serial port, still work on
> Xen, to interact e.g. with the UEFI shell?

Yes, I can still interact with the UEFI shell with this series applied,
both via the console and via VNC (which uses respectively the serial
port and PS/2 I think).

Thanks,

-- 
Anthony PERARD
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [PATCH v2 0/3] Ovmf: Stop using ISA drivers within IntelFrameworkModulePkg

2019-03-26 Thread Laszlo Ersek
On 03/26/19 11:09, Julien Grall wrote:
> Hi Laszlo,
> 
> On 3/25/19 11:29 AM, Laszlo Ersek wrote:
>> On 03/25/19 11:58, Laszlo Ersek wrote:
>>> On 03/25/19 06:28, Hao Wu wrote:
>> (4) Julien, Anthony: can you please fetch this series (github URL at the
>> top) and see if the PS/2 keyboard, and the serial port, still work on
>> Xen, to interact e.g. with the UEFI shell?
> 
> Just to confirm, should we test for x86 only? If so, I will leave that
> to Anthony.

Yes, this is x86 only.

Thanks!
Laszlo
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [PATCH v2 0/3] Ovmf: Stop using ISA drivers within IntelFrameworkModulePkg

2019-03-26 Thread Laszlo Ersek
On 03/26/19 11:14, Laszlo Ersek wrote:
> On 03/26/19 03:49, Wu, Hao A wrote:
>>> -Original Message-
>>> From: Laszlo Ersek [mailto:ler...@redhat.com]
>>> Sent: Monday, March 25, 2019 7:29 PM
>>> To: Wu, Hao A; edk2-devel@lists.01.org; Julien Grall; Anthony Perard
>>> Cc: Justen, Jordan L; Ard Biesheuvel; Ni, Ray
>>> Subject: Re: [PATCH v2 0/3] Ovmf: Stop using ISA drivers within
>>> IntelFrameworkModulePkg
>>>
>>> On 03/25/19 11:58, Laszlo Ersek wrote:
 On 03/25/19 06:28, Hao Wu wrote:
> The series is also available at:
> https://github.com/hwu25/edk2/tree/ovmf_siobus_v2
>
> V2 changes:
> * Introduce a static build flag 'USE_LEGACY_ISA_STACK' in OVMF DSC files
>   for users to select between the ISA driver stacks.
> * V1 patch 2/2 is split into 2 patches in V2. The first one will add the
>   new OVMF SioBusDxe driver and list it in the DSC files. Then second one
>   will add the whole new ISA stack in DSC/FDF files.
>
>
> V1 history:
>
> This series will update the OVMF to stop using the ISA drivers within
> IntelFrameworkModulePkg.
>
> As the replacement, a new OVMF Super I/O bus driver has been add which
> will install the Super I/O protocol for ISA serial and PS2 keyboard
> devices. By doing so, these devices can be managed by:
>
>   MdeModulePkg/Bus/Pci/PciSioSerialDxe/PciSioSerialDxe.inf
>   MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf
>
> respectively.
>
>
> Tests done:
> A. GCC5 & VS2015x86 tool chains build pass
> B. Launch QEMU (2.4.50, Windows) with command:
>> qemu-system-x86_64.exe -pflash \OVMF.fd -serial
>>> file:1.txt -serial file:2.txt
>
>Able to see the ISA COM1/COM2 UART and PS2Keyboard devices under
>>> Shell
>using command 'devtree';
>
>Both the serials and PS2 keyboard are working fine;

 Can you please confirm the following:

 (1) In the PrepareLpcBridgeDevicePath() function, in file
 "OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c", we add
 IsaKeyboard to ConIn, and IsaSerial to ConOut, ConIn, ErrOut.

 This function takes the "LPC Bridge device" handle from its caller,
 namely DetectAndPreparePlatformPciDevicePath(), and appends some
 constant device path nodes, from "BdsPlatform.h" / "PlatformData.c".

 Can you please confirm that the existing Platform BDS code described
 above is compatible with the new driver?

 In other words, do DetectAndPreparePlatformPciDevicePath() +
 PrepareLpcBridgeDevicePath() still add the proper device paths to
 ConIn/ConOut/ErrOut?

 (Note, they need not be identical to the previous device paths, but the
 *logic* must continue to work -- i.e. *some* device paths have to be
 added, and they should be correct.)
>>
>> Hello Laszlo,
>>
>> For (1), since I saw in function PrepareLpcBridgeDevicePath() there are
>> already some codes to print out the device path for COM1/COM2. So I just
>> add some logic to print the device path for the PS2 keyboard as well.
>>
>> I ran the qemu with command:
>> qemu-system-x86_64.exe -pflash \OVMF.fd -debugcon file:boot.log 
>> -global isa-debugcon.iobase=0x402
>>
>> For the new and origin ISA stack, their logs both show:
>> Found LPC Bridge device
>> BdsPlatform.c+585: PS2 Keyboard DevPath: 
>> PciRoot(0x0)/Pci(0x1,0x0)/Acpi(PNP0303,0x0)
>> BdsPlatform.c+615: COM1 DevPath: 
>> PciRoot(0x0)/Pci(0x1,0x0)/Serial(0x0)/Uart(115200,8,N,1)/VenMsg(E0C14753-F9BE-11D2-9A0C-0090273FC14D)
>> BdsPlatform.c+647: COM2 DevPath: 
>> PciRoot(0x0)/Pci(0x1,0x0)/Serial(0x1)/Uart(115200,8,N,1)/VenMsg(E0C14753-F9BE-11D2-9A0C-0090273FC14D)
>>
>> Thus, I think the Platform BDS code behavior remains the same.
>>

 (2) Can you please confirm if the new build survives repeated

   reconnect -r

 commands in the UEFI shell? Both the ISA keyboard and the serial console
 should resume working after "reconnect -r".
>>
>> For (2), I also run the qemu with:
>> qemu-system-x86_64.exe -pflash \OVMF.fd -debugcon file:boot.log 
>> -global isa-debugcon.iobase=0x402
>>
>> After running 'reconnect -r' under Shell, the PS2 keyboard works fine.
>> Then I switch the display from 'VGA' to 'serial0', and the serial works
>> fine. (I just re-run the 'reconnect -r' under 'serial0', after the command
>> finishes, the keyboard is responding and there is still output on 'serial0'.)
>>
>>>
>>> (3) Hao, can you please verify the above steps on the "q35" machine type
>>> as well?
>>>
>>> (The QEMU command line that you mention selects the "i440fx" machine
>>> type. QEMU provides an ICH9 ISA controller with the q35 board, and a
>>> PIIX4 one with the i440fx board. I think we should regression-test this
>>> work with both.)
>>
>> For (3), I run qemu with:
>> qemu-system-x86_64.exe -machine q35 -pflash \OVMF.fd -debugcon 
>> file:boot.log -global isa-debugcon.iobase=0x402
>>
>> Both tests 

Re: [edk2] [PATCH v2 0/3] Ovmf: Stop using ISA drivers within IntelFrameworkModulePkg

2019-03-26 Thread Julien Grall

Hi Laszlo,

On 3/25/19 11:29 AM, Laszlo Ersek wrote:

On 03/25/19 11:58, Laszlo Ersek wrote:

On 03/25/19 06:28, Hao Wu wrote:

(4) Julien, Anthony: can you please fetch this series (github URL at the
top) and see if the PS/2 keyboard, and the serial port, still work on
Xen, to interact e.g. with the UEFI shell?


Just to confirm, should we test for x86 only? If so, I will leave that 
to Anthony.


Cheers,

--
Julien Grall
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [PATCH v2 0/3] Ovmf: Stop using ISA drivers within IntelFrameworkModulePkg

2019-03-26 Thread Laszlo Ersek
On 03/26/19 03:49, Wu, Hao A wrote:
>> -Original Message-
>> From: Laszlo Ersek [mailto:ler...@redhat.com]
>> Sent: Monday, March 25, 2019 7:29 PM
>> To: Wu, Hao A; edk2-devel@lists.01.org; Julien Grall; Anthony Perard
>> Cc: Justen, Jordan L; Ard Biesheuvel; Ni, Ray
>> Subject: Re: [PATCH v2 0/3] Ovmf: Stop using ISA drivers within
>> IntelFrameworkModulePkg
>>
>> On 03/25/19 11:58, Laszlo Ersek wrote:
>>> On 03/25/19 06:28, Hao Wu wrote:
 The series is also available at:
 https://github.com/hwu25/edk2/tree/ovmf_siobus_v2

 V2 changes:
 * Introduce a static build flag 'USE_LEGACY_ISA_STACK' in OVMF DSC files
   for users to select between the ISA driver stacks.
 * V1 patch 2/2 is split into 2 patches in V2. The first one will add the
   new OVMF SioBusDxe driver and list it in the DSC files. Then second one
   will add the whole new ISA stack in DSC/FDF files.


 V1 history:

 This series will update the OVMF to stop using the ISA drivers within
 IntelFrameworkModulePkg.

 As the replacement, a new OVMF Super I/O bus driver has been add which
 will install the Super I/O protocol for ISA serial and PS2 keyboard
 devices. By doing so, these devices can be managed by:

   MdeModulePkg/Bus/Pci/PciSioSerialDxe/PciSioSerialDxe.inf
   MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf

 respectively.


 Tests done:
 A. GCC5 & VS2015x86 tool chains build pass
 B. Launch QEMU (2.4.50, Windows) with command:
> qemu-system-x86_64.exe -pflash \OVMF.fd -serial
>> file:1.txt -serial file:2.txt

Able to see the ISA COM1/COM2 UART and PS2Keyboard devices under
>> Shell
using command 'devtree';

Both the serials and PS2 keyboard are working fine;
>>>
>>> Can you please confirm the following:
>>>
>>> (1) In the PrepareLpcBridgeDevicePath() function, in file
>>> "OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c", we add
>>> IsaKeyboard to ConIn, and IsaSerial to ConOut, ConIn, ErrOut.
>>>
>>> This function takes the "LPC Bridge device" handle from its caller,
>>> namely DetectAndPreparePlatformPciDevicePath(), and appends some
>>> constant device path nodes, from "BdsPlatform.h" / "PlatformData.c".
>>>
>>> Can you please confirm that the existing Platform BDS code described
>>> above is compatible with the new driver?
>>>
>>> In other words, do DetectAndPreparePlatformPciDevicePath() +
>>> PrepareLpcBridgeDevicePath() still add the proper device paths to
>>> ConIn/ConOut/ErrOut?
>>>
>>> (Note, they need not be identical to the previous device paths, but the
>>> *logic* must continue to work -- i.e. *some* device paths have to be
>>> added, and they should be correct.)
> 
> Hello Laszlo,
> 
> For (1), since I saw in function PrepareLpcBridgeDevicePath() there are
> already some codes to print out the device path for COM1/COM2. So I just
> add some logic to print the device path for the PS2 keyboard as well.
> 
> I ran the qemu with command:
> qemu-system-x86_64.exe -pflash \OVMF.fd -debugcon file:boot.log 
> -global isa-debugcon.iobase=0x402
> 
> For the new and origin ISA stack, their logs both show:
> Found LPC Bridge device
> BdsPlatform.c+585: PS2 Keyboard DevPath: 
> PciRoot(0x0)/Pci(0x1,0x0)/Acpi(PNP0303,0x0)
> BdsPlatform.c+615: COM1 DevPath: 
> PciRoot(0x0)/Pci(0x1,0x0)/Serial(0x0)/Uart(115200,8,N,1)/VenMsg(E0C14753-F9BE-11D2-9A0C-0090273FC14D)
> BdsPlatform.c+647: COM2 DevPath: 
> PciRoot(0x0)/Pci(0x1,0x0)/Serial(0x1)/Uart(115200,8,N,1)/VenMsg(E0C14753-F9BE-11D2-9A0C-0090273FC14D)
> 
> Thus, I think the Platform BDS code behavior remains the same.
> 
>>>
>>> (2) Can you please confirm if the new build survives repeated
>>>
>>>   reconnect -r
>>>
>>> commands in the UEFI shell? Both the ISA keyboard and the serial console
>>> should resume working after "reconnect -r".
> 
> For (2), I also run the qemu with:
> qemu-system-x86_64.exe -pflash \OVMF.fd -debugcon file:boot.log 
> -global isa-debugcon.iobase=0x402
> 
> After running 'reconnect -r' under Shell, the PS2 keyboard works fine.
> Then I switch the display from 'VGA' to 'serial0', and the serial works
> fine. (I just re-run the 'reconnect -r' under 'serial0', after the command
> finishes, the keyboard is responding and there is still output on 'serial0'.)
> 
>>
>> (3) Hao, can you please verify the above steps on the "q35" machine type
>> as well?
>>
>> (The QEMU command line that you mention selects the "i440fx" machine
>> type. QEMU provides an ICH9 ISA controller with the q35 board, and a
>> PIIX4 one with the i440fx board. I think we should regression-test this
>> work with both.)
> 
> For (3), I run qemu with:
> qemu-system-x86_64.exe -machine q35 -pflash \OVMF.fd -debugcon 
> file:boot.log -global isa-debugcon.iobase=0x402
> 
> Both tests (1) and (2) passed in this case.
> 
> 
> Please help to let me know if there is anything not right in the above
> tests. Thanks.

All of the above 

Re: [edk2] [PATCH v2 0/3] Ovmf: Stop using ISA drivers within IntelFrameworkModulePkg

2019-03-25 Thread Wu, Hao A
> -Original Message-
> From: Laszlo Ersek [mailto:ler...@redhat.com]
> Sent: Monday, March 25, 2019 7:29 PM
> To: Wu, Hao A; edk2-devel@lists.01.org; Julien Grall; Anthony Perard
> Cc: Justen, Jordan L; Ard Biesheuvel; Ni, Ray
> Subject: Re: [PATCH v2 0/3] Ovmf: Stop using ISA drivers within
> IntelFrameworkModulePkg
> 
> On 03/25/19 11:58, Laszlo Ersek wrote:
> > On 03/25/19 06:28, Hao Wu wrote:
> >> The series is also available at:
> >> https://github.com/hwu25/edk2/tree/ovmf_siobus_v2
> >>
> >> V2 changes:
> >> * Introduce a static build flag 'USE_LEGACY_ISA_STACK' in OVMF DSC files
> >>   for users to select between the ISA driver stacks.
> >> * V1 patch 2/2 is split into 2 patches in V2. The first one will add the
> >>   new OVMF SioBusDxe driver and list it in the DSC files. Then second one
> >>   will add the whole new ISA stack in DSC/FDF files.
> >>
> >>
> >> V1 history:
> >>
> >> This series will update the OVMF to stop using the ISA drivers within
> >> IntelFrameworkModulePkg.
> >>
> >> As the replacement, a new OVMF Super I/O bus driver has been add which
> >> will install the Super I/O protocol for ISA serial and PS2 keyboard
> >> devices. By doing so, these devices can be managed by:
> >>
> >>   MdeModulePkg/Bus/Pci/PciSioSerialDxe/PciSioSerialDxe.inf
> >>   MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf
> >>
> >> respectively.
> >>
> >>
> >> Tests done:
> >> A. GCC5 & VS2015x86 tool chains build pass
> >> B. Launch QEMU (2.4.50, Windows) with command:
> >>> qemu-system-x86_64.exe -pflash \OVMF.fd -serial
> file:1.txt -serial file:2.txt
> >>
> >>Able to see the ISA COM1/COM2 UART and PS2Keyboard devices under
> Shell
> >>using command 'devtree';
> >>
> >>Both the serials and PS2 keyboard are working fine;
> >
> > Can you please confirm the following:
> >
> > (1) In the PrepareLpcBridgeDevicePath() function, in file
> > "OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c", we add
> > IsaKeyboard to ConIn, and IsaSerial to ConOut, ConIn, ErrOut.
> >
> > This function takes the "LPC Bridge device" handle from its caller,
> > namely DetectAndPreparePlatformPciDevicePath(), and appends some
> > constant device path nodes, from "BdsPlatform.h" / "PlatformData.c".
> >
> > Can you please confirm that the existing Platform BDS code described
> > above is compatible with the new driver?
> >
> > In other words, do DetectAndPreparePlatformPciDevicePath() +
> > PrepareLpcBridgeDevicePath() still add the proper device paths to
> > ConIn/ConOut/ErrOut?
> >
> > (Note, they need not be identical to the previous device paths, but the
> > *logic* must continue to work -- i.e. *some* device paths have to be
> > added, and they should be correct.)

Hello Laszlo,

For (1), since I saw in function PrepareLpcBridgeDevicePath() there are
already some codes to print out the device path for COM1/COM2. So I just
add some logic to print the device path for the PS2 keyboard as well.

I ran the qemu with command:
qemu-system-x86_64.exe -pflash \OVMF.fd -debugcon file:boot.log 
-global isa-debugcon.iobase=0x402

For the new and origin ISA stack, their logs both show:
Found LPC Bridge device
BdsPlatform.c+585: PS2 Keyboard DevPath: 
PciRoot(0x0)/Pci(0x1,0x0)/Acpi(PNP0303,0x0)
BdsPlatform.c+615: COM1 DevPath: 
PciRoot(0x0)/Pci(0x1,0x0)/Serial(0x0)/Uart(115200,8,N,1)/VenMsg(E0C14753-F9BE-11D2-9A0C-0090273FC14D)
BdsPlatform.c+647: COM2 DevPath: 
PciRoot(0x0)/Pci(0x1,0x0)/Serial(0x1)/Uart(115200,8,N,1)/VenMsg(E0C14753-F9BE-11D2-9A0C-0090273FC14D)

Thus, I think the Platform BDS code behavior remains the same.

> >
> > (2) Can you please confirm if the new build survives repeated
> >
> >   reconnect -r
> >
> > commands in the UEFI shell? Both the ISA keyboard and the serial console
> > should resume working after "reconnect -r".

For (2), I also run the qemu with:
qemu-system-x86_64.exe -pflash \OVMF.fd -debugcon file:boot.log 
-global isa-debugcon.iobase=0x402

After running 'reconnect -r' under Shell, the PS2 keyboard works fine.
Then I switch the display from 'VGA' to 'serial0', and the serial works
fine. (I just re-run the 'reconnect -r' under 'serial0', after the command
finishes, the keyboard is responding and there is still output on 'serial0'.)

> 
> (3) Hao, can you please verify the above steps on the "q35" machine type
> as well?
> 
> (The QEMU command line that you mention selects the "i440fx" machine
> type. QEMU provides an ICH9 ISA controller with the q35 board, and a
> PIIX4 one with the i440fx board. I think we should regression-test this
> work with both.)

For (3), I run qemu with:
qemu-system-x86_64.exe -machine q35 -pflash \OVMF.fd -debugcon 
file:boot.log -global isa-debugcon.iobase=0x402

Both tests (1) and (2) passed in this case.


Please help to let me know if there is anything not right in the above
tests. Thanks.

Best Regards,
Hao Wu

> 
> (4) Julien, Anthony: can you please fetch this series (github URL at the
> top) and see if the PS/2 keyboard, and the serial 

Re: [edk2] [PATCH v2 0/3] Ovmf: Stop using ISA drivers within IntelFrameworkModulePkg

2019-03-25 Thread Laszlo Ersek
On 03/25/19 11:58, Laszlo Ersek wrote:
> On 03/25/19 06:28, Hao Wu wrote:
>> The series is also available at:
>> https://github.com/hwu25/edk2/tree/ovmf_siobus_v2
>>
>> V2 changes:
>> * Introduce a static build flag 'USE_LEGACY_ISA_STACK' in OVMF DSC files
>>   for users to select between the ISA driver stacks.
>> * V1 patch 2/2 is split into 2 patches in V2. The first one will add the
>>   new OVMF SioBusDxe driver and list it in the DSC files. Then second one
>>   will add the whole new ISA stack in DSC/FDF files.
>>
>>
>> V1 history:
>>
>> This series will update the OVMF to stop using the ISA drivers within
>> IntelFrameworkModulePkg.
>>
>> As the replacement, a new OVMF Super I/O bus driver has been add which
>> will install the Super I/O protocol for ISA serial and PS2 keyboard
>> devices. By doing so, these devices can be managed by:
>>
>>   MdeModulePkg/Bus/Pci/PciSioSerialDxe/PciSioSerialDxe.inf
>>   MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf
>>
>> respectively.
>>
>>
>> Tests done:
>> A. GCC5 & VS2015x86 tool chains build pass
>> B. Launch QEMU (2.4.50, Windows) with command:
>>> qemu-system-x86_64.exe -pflash \OVMF.fd -serial file:1.txt 
>> -serial file:2.txt
>>
>>Able to see the ISA COM1/COM2 UART and PS2Keyboard devices under Shell
>>using command 'devtree';
>>
>>Both the serials and PS2 keyboard are working fine;
> 
> Can you please confirm the following:
> 
> (1) In the PrepareLpcBridgeDevicePath() function, in file
> "OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c", we add
> IsaKeyboard to ConIn, and IsaSerial to ConOut, ConIn, ErrOut.
> 
> This function takes the "LPC Bridge device" handle from its caller,
> namely DetectAndPreparePlatformPciDevicePath(), and appends some
> constant device path nodes, from "BdsPlatform.h" / "PlatformData.c".
> 
> Can you please confirm that the existing Platform BDS code described
> above is compatible with the new driver?
> 
> In other words, do DetectAndPreparePlatformPciDevicePath() +
> PrepareLpcBridgeDevicePath() still add the proper device paths to
> ConIn/ConOut/ErrOut?
> 
> (Note, they need not be identical to the previous device paths, but the
> *logic* must continue to work -- i.e. *some* device paths have to be
> added, and they should be correct.)
> 
> (2) Can you please confirm if the new build survives repeated
> 
>   reconnect -r
> 
> commands in the UEFI shell? Both the ISA keyboard and the serial console
> should resume working after "reconnect -r".

(3) Hao, can you please verify the above steps on the "q35" machine type
as well?

(The QEMU command line that you mention selects the "i440fx" machine
type. QEMU provides an ICH9 ISA controller with the q35 board, and a
PIIX4 one with the i440fx board. I think we should regression-test this
work with both.)

(4) Julien, Anthony: can you please fetch this series (github URL at the
top) and see if the PS/2 keyboard, and the serial port, still work on
Xen, to interact e.g. with the UEFI shell?

Thanks!
Laszlo
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [PATCH v2 0/3] Ovmf: Stop using ISA drivers within IntelFrameworkModulePkg

2019-03-25 Thread Laszlo Ersek
On 03/25/19 06:28, Hao Wu wrote:
> The series is also available at:
> https://github.com/hwu25/edk2/tree/ovmf_siobus_v2
> 
> V2 changes:
> * Introduce a static build flag 'USE_LEGACY_ISA_STACK' in OVMF DSC files
>   for users to select between the ISA driver stacks.
> * V1 patch 2/2 is split into 2 patches in V2. The first one will add the
>   new OVMF SioBusDxe driver and list it in the DSC files. Then second one
>   will add the whole new ISA stack in DSC/FDF files.
> 
> 
> V1 history:
> 
> This series will update the OVMF to stop using the ISA drivers within
> IntelFrameworkModulePkg.
> 
> As the replacement, a new OVMF Super I/O bus driver has been add which
> will install the Super I/O protocol for ISA serial and PS2 keyboard
> devices. By doing so, these devices can be managed by:
> 
>   MdeModulePkg/Bus/Pci/PciSioSerialDxe/PciSioSerialDxe.inf
>   MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf
> 
> respectively.
> 
> 
> Tests done:
> A. GCC5 & VS2015x86 tool chains build pass
> B. Launch QEMU (2.4.50, Windows) with command:
>> qemu-system-x86_64.exe -pflash \OVMF.fd -serial file:1.txt 
> -serial file:2.txt
> 
>Able to see the ISA COM1/COM2 UART and PS2Keyboard devices under Shell
>using command 'devtree';
> 
>Both the serials and PS2 keyboard are working fine;

Can you please confirm the following:

(1) In the PrepareLpcBridgeDevicePath() function, in file
"OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c", we add
IsaKeyboard to ConIn, and IsaSerial to ConOut, ConIn, ErrOut.

This function takes the "LPC Bridge device" handle from its caller,
namely DetectAndPreparePlatformPciDevicePath(), and appends some
constant device path nodes, from "BdsPlatform.h" / "PlatformData.c".

Can you please confirm that the existing Platform BDS code described
above is compatible with the new driver?

In other words, do DetectAndPreparePlatformPciDevicePath() +
PrepareLpcBridgeDevicePath() still add the proper device paths to
ConIn/ConOut/ErrOut?

(Note, they need not be identical to the previous device paths, but the
*logic* must continue to work -- i.e. *some* device paths have to be
added, and they should be correct.)

(2) Can you please confirm if the new build survives repeated

  reconnect -r

commands in the UEFI shell? Both the ISA keyboard and the serial console
should resume working after "reconnect -r".

Thanks,
Laszlo






> Cc: Jordan Justen 
> Cc: Laszlo Ersek 
> Cc: Ard Biesheuvel 
> Cc: Ray Ni 
> 
> 
> Hao Wu (3):
>   OvmfPkg: Drop the ISA Floppy device support
>   OvmfPkg: Add an Super IO bus driver
>   OvmfPkg: Add a build flag to select ISA driver stack
> 
>  OvmfPkg/OvmfPkgIa32.dsc   |  10 +-
>  OvmfPkg/OvmfPkgIa32X64.dsc|  10 +-
>  OvmfPkg/OvmfPkgX64.dsc|  10 +-
>  OvmfPkg/OvmfPkgIa32.fdf   |  21 +-
>  OvmfPkg/OvmfPkgIa32X64.fdf|  21 +-
>  OvmfPkg/OvmfPkgX64.fdf|  21 +-
>  OvmfPkg/SioBusDxe/SioBusDxe.inf   |  54 ++
>  OvmfPkg/SioBusDxe/SioBusDxe.h | 332 +++
>  OvmfPkg/SioBusDxe/SioService.h| 221 +++
>  OvmfPkg/SioBusDxe/ComponentName.c | 167 ++
>  OvmfPkg/SioBusDxe/SioBusDxe.c | 622 
>  OvmfPkg/SioBusDxe/SioService.c| 405 +
>  OvmfPkg/SioBusDxe/SioBusDxe.uni   |  21 +
>  13 files changed, 1885 insertions(+), 30 deletions(-)
>  create mode 100644 OvmfPkg/SioBusDxe/SioBusDxe.inf
>  create mode 100644 OvmfPkg/SioBusDxe/SioBusDxe.h
>  create mode 100644 OvmfPkg/SioBusDxe/SioService.h
>  create mode 100644 OvmfPkg/SioBusDxe/ComponentName.c
>  create mode 100644 OvmfPkg/SioBusDxe/SioBusDxe.c
>  create mode 100644 OvmfPkg/SioBusDxe/SioService.c
>  create mode 100644 OvmfPkg/SioBusDxe/SioBusDxe.uni
> 

___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [PATCH v2 0/3] Ovmf: Stop using ISA drivers within IntelFrameworkModulePkg

2019-03-25 Thread Ard Biesheuvel
On Mon, 25 Mar 2019 at 06:28, Hao Wu  wrote:
>
> The series is also available at:
> https://github.com/hwu25/edk2/tree/ovmf_siobus_v2
>
> V2 changes:
> * Introduce a static build flag 'USE_LEGACY_ISA_STACK' in OVMF DSC files
>   for users to select between the ISA driver stacks.
> * V1 patch 2/2 is split into 2 patches in V2. The first one will add the
>   new OVMF SioBusDxe driver and list it in the DSC files. Then second one
>   will add the whole new ISA stack in DSC/FDF files.
>
>
> V1 history:
>
> This series will update the OVMF to stop using the ISA drivers within
> IntelFrameworkModulePkg.
>
> As the replacement, a new OVMF Super I/O bus driver has been add which
> will install the Super I/O protocol for ISA serial and PS2 keyboard
> devices. By doing so, these devices can be managed by:
>
>   MdeModulePkg/Bus/Pci/PciSioSerialDxe/PciSioSerialDxe.inf
>   MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf
>
> respectively.
>
>
> Tests done:
> A. GCC5 & VS2015x86 tool chains build pass
> B. Launch QEMU (2.4.50, Windows) with command:
>> qemu-system-x86_64.exe -pflash \OVMF.fd -serial file:1.txt 
> -serial file:2.txt
>
>Able to see the ISA COM1/COM2 UART and PS2Keyboard devices under Shell
>using command 'devtree';
>
>Both the serials and PS2 keyboard are working fine;
>
> Cc: Jordan Justen 
> Cc: Laszlo Ersek 
> Cc: Ard Biesheuvel 
> Cc: Ray Ni 
>
>
> Hao Wu (3):
>   OvmfPkg: Drop the ISA Floppy device support
>   OvmfPkg: Add an Super IO bus driver
>   OvmfPkg: Add a build flag to select ISA driver stack
>

Thanks Hao.

For the series,

Acked-by: Ard Biesheuvel 

but I will leave the final decision to Laszlo.
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


[edk2] [PATCH v2 0/3] Ovmf: Stop using ISA drivers within IntelFrameworkModulePkg

2019-03-24 Thread Hao Wu
The series is also available at:
https://github.com/hwu25/edk2/tree/ovmf_siobus_v2

V2 changes:
* Introduce a static build flag 'USE_LEGACY_ISA_STACK' in OVMF DSC files
  for users to select between the ISA driver stacks.
* V1 patch 2/2 is split into 2 patches in V2. The first one will add the
  new OVMF SioBusDxe driver and list it in the DSC files. Then second one
  will add the whole new ISA stack in DSC/FDF files.


V1 history:

This series will update the OVMF to stop using the ISA drivers within
IntelFrameworkModulePkg.

As the replacement, a new OVMF Super I/O bus driver has been add which
will install the Super I/O protocol for ISA serial and PS2 keyboard
devices. By doing so, these devices can be managed by:

  MdeModulePkg/Bus/Pci/PciSioSerialDxe/PciSioSerialDxe.inf
  MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf

respectively.


Tests done:
A. GCC5 & VS2015x86 tool chains build pass
B. Launch QEMU (2.4.50, Windows) with command:
   > qemu-system-x86_64.exe -pflash \OVMF.fd -serial file:1.txt 
-serial file:2.txt

   Able to see the ISA COM1/COM2 UART and PS2Keyboard devices under Shell
   using command 'devtree';

   Both the serials and PS2 keyboard are working fine;

Cc: Jordan Justen 
Cc: Laszlo Ersek 
Cc: Ard Biesheuvel 
Cc: Ray Ni 


Hao Wu (3):
  OvmfPkg: Drop the ISA Floppy device support
  OvmfPkg: Add an Super IO bus driver
  OvmfPkg: Add a build flag to select ISA driver stack

 OvmfPkg/OvmfPkgIa32.dsc   |  10 +-
 OvmfPkg/OvmfPkgIa32X64.dsc|  10 +-
 OvmfPkg/OvmfPkgX64.dsc|  10 +-
 OvmfPkg/OvmfPkgIa32.fdf   |  21 +-
 OvmfPkg/OvmfPkgIa32X64.fdf|  21 +-
 OvmfPkg/OvmfPkgX64.fdf|  21 +-
 OvmfPkg/SioBusDxe/SioBusDxe.inf   |  54 ++
 OvmfPkg/SioBusDxe/SioBusDxe.h | 332 +++
 OvmfPkg/SioBusDxe/SioService.h| 221 +++
 OvmfPkg/SioBusDxe/ComponentName.c | 167 ++
 OvmfPkg/SioBusDxe/SioBusDxe.c | 622 
 OvmfPkg/SioBusDxe/SioService.c| 405 +
 OvmfPkg/SioBusDxe/SioBusDxe.uni   |  21 +
 13 files changed, 1885 insertions(+), 30 deletions(-)
 create mode 100644 OvmfPkg/SioBusDxe/SioBusDxe.inf
 create mode 100644 OvmfPkg/SioBusDxe/SioBusDxe.h
 create mode 100644 OvmfPkg/SioBusDxe/SioService.h
 create mode 100644 OvmfPkg/SioBusDxe/ComponentName.c
 create mode 100644 OvmfPkg/SioBusDxe/SioBusDxe.c
 create mode 100644 OvmfPkg/SioBusDxe/SioService.c
 create mode 100644 OvmfPkg/SioBusDxe/SioBusDxe.uni

-- 
2.12.0.windows.1

___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel