Hi Samer, Ard, On 8/10/21 3:54 PM, Ard Biesheuvel wrote: > On Tue, 10 Aug 2021 at 15:11, Samer El-Haj-Mahmoud > <samer.el-haj-mahm...@arm.com> wrote: >> >> >>> -----Original Message----- >>> From: Eric Auger <eric.au...@redhat.com> >>> Sent: Tuesday, August 10, 2021 6:25 AM >>> To: Ard Biesheuvel <a...@kernel.org> >>> Cc: eric.auger....@gmail.com; Michael S. Tsirkin <m...@redhat.com>; Igor >>> Mammedov <imamm...@redhat.com>; Philippe Mathieu-Daudé >>> <phi...@redhat.com>; Peter Maydell <peter.mayd...@linaro.org>; Shannon >>> Zhao <shannon.zha...@gmail.com>; qemu-arm <qemu-...@nongnu.org>; >>> qemu-devel@nongnu.org; Andrew Jones <drjo...@redhat.com>; >>> gs...@redhat.com; Samer El-Haj-Mahmoud <Samer.El-Haj- >>> mahm...@arm.com>; Al Stone <a...@redhat.com>; j...@redhat.com >>> Subject: Re: [PATCH for-6.2] hw/arm/virt_acpi_build: Generate DBG2 table >>> >>> Hello Ard, >>> On 8/10/21 11:36 AM, Ard Biesheuvel wrote: >>>> On Tue, 10 Aug 2021 at 10:31, Eric Auger <eric.au...@redhat.com> wrote: >>>>> ARM SBBR specification mandates DBG2 table (Debug Port Table 2). >>>>> this latter allows to describe one or more debug ports. >>>>> >>>>> Generate an DBG2 table featuring a single debug port, the PL011. >>>>> >>>>> The DBG2 specification can be found at: >>>>> https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/acpi- >>> debug-port-table?redirectedfrom=MSDN >>>> Have the legal issues around this table been resolved in the mean >>>> time? >>> I don't know exactly what they are. Adding Al and Jon in the loop they >>> have more information about this. >>> How did you resolve the issue for EDK2 >>> (DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c)? >>>> Also, any clue why this table is mandatory to begin with? The >>>> SBBR has been very trigger happy lately with making things mandatory >>>> that aren't truly required from a functional perspective. >>> It seems there are kernel FW test suites that check all mandated tables >>> are available and they currently fail for ARM virt. >>> Indeed from a function pov, I don't know much about its usage on ARM. >>> >>> Maybe the SBBR spec should not flag the DBG2 as mandatory and test >>> suites shall be updated. I think this should be clarified at ARM then, >>> all the more so if there are legal issues as its spec is owned by Microsoft? >>> >> DBG2 has been required in SBBR since SBBR ver 1.0 (published 2016, with the >> 0.9 draft since 2014) >> https://developer.arm.com/documentation/den0044/b/?lang=en >> >> SBBR requires DBG2 because Windows requires it on all systems: >> https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/acpi-system-description-tables#debug-port-table-2-dbg2 >> , and Windows is one of the key OSes targeted by SBBR. >> >> The DBG2 (and SPCR) spec license issue has been resolved since August 2015. >> Microsoft updated both specs with identical license language, giving patent >> rights for implementations under the Microsoft Community Promise, and the >> Open OWF 1.0. This Foundation. OK thank you for confirming all the previously known DBG2 legal issues were resolved. >> >> DBG2: >> https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/acpi-debug-port-table >> SPCR: >> https://docs.microsoft.com/en-us/windows-hardware/drivers/serports/serial-port-console-redirection-table >> > Thanks Samer, for stating this on record here - and apologies for > suggesting that this was another frivolous addition to a recent SBBR > revision. > > As for the difference between the two: SPCR describes the serial > console, which is an actual interactive console used for maintenance, > which exists in addition to the full blown Windows GUI, which is > always the primary interface. https://bugzilla.redhat.com/show_bug.cgi?id=1661288#c56 seems to contradict the above statement. Do I understand correctly that if the SPCR is exposed and if "console=ttyAMA0 console=tty0" is not set in the kernel params, the serial becomes the primary console instead of the tty0 (hence your choice of developping console preference DXE in tianocore)?
Anyway I will respin this patch and use the build_append_int_noprefix() API. Thanks Eric > > DBG2 is used as a debug port, which is used for the kernel debugger, > if I am not mistaken. So SPCR and DBG2 are complementary, and it does > make sense to have both. >