From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) by mx.groups.io with SMTP id smtpd.web10.3369.1604343456305170124 for ; Mon, 02 Nov 2020 10:57:36 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@nuviainc-com.20150623.gappssmtp.com header.s=20150623 header.b=aj+OedLS; spf=pass (domain: nuviainc.com, ip: 209.85.221.66, mailfrom: graeme@nuviainc.com) Received: by mail-wr1-f66.google.com with SMTP id 33so5058311wrl.7 for ; Mon, 02 Nov 2020 10:57:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nuviainc-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=4/FCOf5GcYkNi0J1eSv432od3wFKWIEYTnf+ybzWuts=; b=aj+OedLSQuRI7hLuDpqPaYjhp2rDcb4QFKdirNwDhXvyv3/HCl7NA5A9Gg+FLdorOg Ezr0+m4Cq3EPbnlTtPxoyRK8EztBtXmrrMJkGZVZjUW7cfvGO+pvQqnLVluHF8wYyxkw 0MXnoX5F/+0n5NLeWMFhflIX88j0T//vQmTe2JL/7SiXIJEy7TMKA7HY6hpLmylSl5zF hCc4ZpRy73T5//2ypB2ih0zcqPKFl7qmkiCAEEXPN/r3uitE9JQDaKMwz2V5QvIbDhAp B667qIJpbgeYbYZP7aMX15iwF/bK915Es0/MA9+CNotoii47cIQ5brnObdQmOhJA9VN/ g6Rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=4/FCOf5GcYkNi0J1eSv432od3wFKWIEYTnf+ybzWuts=; b=Ty6m5MGH/nI6u5DWuaz+kBdjJem+cN4OYwaSSDiWsBLwee0oDVcnAOuAF/9WlW6oF0 X1BmJzlHPsP1aTXPEBkrt4Sf/K8EQOJD8eHscggB66PAw/t574TuA7ZBdv+mNiWmTzg6 Fo9IcLzwfnhYeHLp3BzXhJD9lvenQ+MBzCAdWeIxcaKljcnlqVzY2oesSZKbhCOa+dwb m/885UQb0yk3NRr1k+413KrErmBrYdqqC/jz04R6ZycYFiG+r3OP7Vrh/LNaWKVK2z+n 7shDiHtjQy8t9FYGqgxfz9BqSUi3xtuufg8UO2VHHUpaACHUW+loh4zS+TmySSjWMz87 zXzw== X-Gm-Message-State: AOAM5318QiJFEiaYT12qwUXaXHzd8KBGRVJ9BucIzW0j4ncyOy9CsC9A 67xybdMN/wv/yMEjt/CFoO/OMg== X-Google-Smtp-Source: ABdhPJxtbdLQ6SIGE9kpsbD3OlcOU5PScL2B1FsCx0z9tVxfSpIrDamsr9VN/NNDnL2TmVaZ3FqRbg== X-Received: by 2002:adf:ce8a:: with SMTP id r10mr22844978wrn.188.1604343454891; Mon, 02 Nov 2020 10:57:34 -0800 (PST) Return-Path: Received: from xora-xps13 ([2a02:8010:64d6::18cd]) by smtp.gmail.com with ESMTPSA id v19sm344918wmj.31.2020.11.02.10.57.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Nov 2020 10:57:34 -0800 (PST) Date: Mon, 2 Nov 2020 18:57:32 +0000 From: "Graeme Gregory" To: Shashi Mallela Cc: leif@nuviainc.com, ard.biesheuvel@arm.com, devel@edk2.groups.io Subject: Re: [PATCH v4 1/1] Silicon/Qemu/Sbsa: Add SBSA-wdt entry to GTDT Message-ID: <20201102185732.avxzkuoc7bgwqfpu@xora-xps13> References: <20201102165148.10509-1-shashi.mallela@linaro.org> <20201102165148.10509-2-shashi.mallela@linaro.org> MIME-Version: 1.0 In-Reply-To: <20201102165148.10509-2-shashi.mallela@linaro.org> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Mon, Nov 02, 2020 at 11:51:48AM -0500, Shashi Mallela wrote: > SBSA generic watchdog timer structure entry has been added > to GTDT table as per SBSAv6.0. > This enables acpi detection of wdt in qemu sbsa platform > Reviewed-by: Graeme Gregory > Cc: Leif Lindholm > Cc: Ard Biesheuvel > Cc: Graeme Gregory > Signed-off-by: Shashi Mallela > --- > Silicon/Qemu/SbsaQemu/AcpiTables/Gtdt.aslc | 57 ++++++++++++++++++---- > 1 file changed, 47 insertions(+), 10 deletions(-) > > diff --git a/Silicon/Qemu/SbsaQemu/AcpiTables/Gtdt.aslc b/Silicon/Qemu/SbsaQemu/AcpiTables/Gtdt.aslc > index d16778e01a5c..a010b908c434 100644 > --- a/Silicon/Qemu/SbsaQemu/AcpiTables/Gtdt.aslc > +++ b/Silicon/Qemu/SbsaQemu/AcpiTables/Gtdt.aslc > @@ -24,27 +24,55 @@ > #define SYSTEM_TIMER_BASE_ADDRESS 0xFFFFFFFFFFFFFFFF > #endif > > -#define GTDT_TIMER_EDGE_TRIGGERED EFI_ACPI_5_0_GTDT_TIMER_FLAG_TIMER_INTERRUPT_MODE > +#define GTDT_TIMER_EDGE_TRIGGERED EFI_ACPI_6_3_GTDT_TIMER_FLAG_TIMER_INTERRUPT_MODE > #define GTDT_TIMER_LEVEL_TRIGGERED 0 > -#define GTDT_TIMER_ACTIVE_LOW EFI_ACPI_5_0_GTDT_TIMER_FLAG_TIMER_INTERRUPT_POLARITY > +#define GTDT_TIMER_ACTIVE_LOW EFI_ACPI_6_3_GTDT_TIMER_FLAG_TIMER_INTERRUPT_POLARITY > #define GTDT_TIMER_ACTIVE_HIGH 0 > > #define GTDT_GTIMER_FLAGS (GTDT_TIMER_ACTIVE_LOW | GTDT_TIMER_LEVEL_TRIGGERED) > > +#define SBSA_PLATFORM_WATCHDOG_COUNT 1 > +#define SBSA_PLATFORM_TIMER_COUNT (SBSA_PLATFORM_WATCHDOG_COUNT) > + > +#define SBSAQEMU_WDT_REFRESH_FRAME_BASE 0x50010000 > +#define SBSAQEMU_WDT_CONTROL_FRAME_BASE 0x50011000 > +#define SBSAQEMU_WDT_IRQ 44 > + > +#define GTDT_WDTIMER_EDGE_TRIGGERED EFI_ACPI_6_3_GTDT_SBSA_GENERIC_WATCHDOG_FLAG_TIMER_INTERRUPT_MODE > +#define GTDT_WDTIMER_LEVEL_TRIGGERED 0 > +#define GTDT_WDTIMER_ACTIVE_LOW EFI_ACPI_6_3_GTDT_SBSA_GENERIC_WATCHDOG_FLAG_TIMER_INTERRUPT_POLARITY > +#define GTDT_WDTIMER_ACTIVE_HIGH 0 > + > +#define GTDT_WDTIMER_FLAGS (GTDT_WDTIMER_ACTIVE_HIGH | GTDT_WDTIMER_LEVEL_TRIGGERED) > + > +#define EFI_ACPI_6_3_SBSA_GENERIC_WATCHDOG_STRUCTURE_INIT( \ > + RefreshFramePhysicalAddress, ControlFramePhysicalAddress, \ > + WatchdogTimerGSIV, WatchdogTimerFlags) \ > + { \ > + EFI_ACPI_6_3_GTDT_SBSA_GENERIC_WATCHDOG, \ > + sizeof(EFI_ACPI_6_3_GTDT_SBSA_GENERIC_WATCHDOG_STRUCTURE), \ > + EFI_ACPI_RESERVED_WORD, \ > + RefreshFramePhysicalAddress, \ > + ControlFramePhysicalAddress, \ > + WatchdogTimerGSIV, \ > + WatchdogTimerFlags \ > + } > + > #pragma pack (1) > > typedef struct { > - EFI_ACPI_5_1_GENERIC_TIMER_DESCRIPTION_TABLE Gtdt; > - } GENERIC_TIMER_DESCRIPTION_TABLE; > + EFI_ACPI_6_3_GENERIC_TIMER_DESCRIPTION_TABLE Gtdt; > + EFI_ACPI_6_3_GTDT_SBSA_GENERIC_WATCHDOG_STRUCTURE Gwdt; > + } GENERIC_TIMER_DESCRIPTION_TABLES; > > #pragma pack () > > - GENERIC_TIMER_DESCRIPTION_TABLE Gtdt = { > + GENERIC_TIMER_DESCRIPTION_TABLES Gtdt = { > { > SBSAQEMU_ACPI_HEADER( > - EFI_ACPI_5_1_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE, > - GENERIC_TIMER_DESCRIPTION_TABLE, > - EFI_ACPI_5_1_GENERIC_TIMER_DESCRIPTION_TABLE_REVISION > + EFI_ACPI_6_3_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE, > + GENERIC_TIMER_DESCRIPTION_TABLES, > + EFI_ACPI_6_3_GENERIC_TIMER_DESCRIPTION_TABLE_REVISION > ), > SYSTEM_TIMER_BASE_ADDRESS, // UINT64 PhysicalAddress > 0, // UINT32 Reserved > @@ -57,9 +85,18 @@ > FixedPcdGet32 (PcdArmArchTimerHypIntrNum), // UINT32 NonSecurePL2TimerGSIV > GTDT_GTIMER_FLAGS, // UINT32 NonSecurePL2TimerFlags > 0xFFFFFFFFFFFFFFFF, // UINT64 CntReadBasePhysicalAddress > - 0, // UINT32 PlatformTimerCount > - 0 > + SBSA_PLATFORM_TIMER_COUNT, // UINT32 PlatformTimerCount > + sizeof(EFI_ACPI_6_3_GENERIC_TIMER_DESCRIPTION_TABLE), > + // UINT32 PlatformTimerOffset > + 0, // UINT32 VirtualPL2TimerGSIV > + 0 // UINT32 VirtualPL2TimerFlags > }, > + EFI_ACPI_6_3_SBSA_GENERIC_WATCHDOG_STRUCTURE_INIT( > + SBSAQEMU_WDT_REFRESH_FRAME_BASE, > + SBSAQEMU_WDT_CONTROL_FRAME_BASE, > + SBSAQEMU_WDT_IRQ, > + GTDT_WDTIMER_FLAGS > + ) > }; > > // Reference the table being generated to prevent the optimizer from removing the > -- > 2.18.4 >