From nobody Mon May 13 23:49:35 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+86449+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+86449+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1644335142; cv=none; d=zohomail.com; s=zohoarc; b=S1ojjZLHzeRfQKpSWmykj4BBpSHSQyLoqrmVZl7Wq2WDzZZFujx5/zpdJtGOhEcGidYNkLL/VttOrJ/wM1v/0ET0FOWtzBkB6eMV6kpF+y2UXE+PiCeJy87UrTFgG5/yE1wYBfxQdOny5wdC6A+YP++DxicpTC3Gk8t935EqtCQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1644335142; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Sender:Subject:To; bh=88ZhZsCwdZf/Q1U+K7mBfFitI0uAV8JmbPRr7wY6akQ=; b=bgV+CSX7mpLPmqVbYKqilnP0m3WfSeDPO5jcH9bBNsNfsNoKpXV6iUJxgZPbtMi1/9WSiNun1al/bFAYPxYC6uDL72uLUoFbyhy2f30zBwxG4xcdgFMkVY8mOmojiSCmEUwNfszXnwNBhBnbwGq8JFyOdT3JWENMl6q/9bp6xyI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+86449+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1644335142128598.517029125951; Tue, 8 Feb 2022 07:45:42 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id YJPqYY1788612xG8r9ThJTo2; Tue, 08 Feb 2022 07:45:41 -0800 X-Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.groups.io with SMTP id smtpd.web09.12932.1644335139994891695 for ; Tue, 08 Feb 2022 07:45:40 -0800 X-Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-312-cr3jl57SNruYVKDYwxNeXA-1; Tue, 08 Feb 2022 10:45:37 -0500 X-MC-Unique: cr3jl57SNruYVKDYwxNeXA-1 X-Received: by mail-qt1-f199.google.com with SMTP id x5-20020ac84d45000000b002cf826b1a18so13853955qtv.2 for ; Tue, 08 Feb 2022 07:45:37 -0800 (PST) X-Gm-Message-State: IA41Jl582HlzDoIIYg4OV6YHx1787277AA= X-Received: by 2002:a05:6214:2306:: with SMTP id gc6mr3466013qvb.131.1644335137262; Tue, 08 Feb 2022 07:45:37 -0800 (PST) X-Google-Smtp-Source: ABdhPJyS95dnrL0scRTgSw52wTrmGsG3tL9DdRPpLz9TEFLDTIfCCiqH/2dQ3S1nINlkR92FdI4MvQ== X-Received: by 2002:a05:6214:2306:: with SMTP id gc6mr3465990qvb.131.1644335136907; Tue, 08 Feb 2022 07:45:36 -0800 (PST) X-Received: from fedora.redhat.com (modemcable200.11-22-96.mc.videotron.ca. [96.22.11.200]) by smtp.gmail.com with ESMTPSA id q8sm7014005qkl.65.2022.02.08.07.45.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Feb 2022 07:45:36 -0800 (PST) From: "Adrien Thierry" To: devel@edk2.groups.io Cc: Adrien Thierry , Ard Biesheuvel , Leif Lindholm , Pete Batard , Jeremy Linton Subject: [edk2-devel] [edk2-platforms PATCH v2] Platform/RaspberryPi: Add 'clock-frequency' property for miniuart Date: Tue, 8 Feb 2022 10:45:27 -0500 Message-Id: <20220208154527.36689-1-athierry@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,athierry@redhat.com Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1644335141; bh=k9beBe9IJfHr9r3urHXEt/YRF/N1/XTQGiEoEY4HKd8=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=o2C6wfgIAlWRiRdyZGa3e3LkyxCyp7gRAsom4iconZOQ6BcxyfMgsJphK+ZVtum5voo +RwSYCvCiy84TqKFp+0rXuJjhLoqgectHD5GruPEV+tO18SogDutjPYTqlaylMxab4PtB DPfa0wJ/Vu+ZufMVS08pTILfYSuC/QIQ7lY= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1644335142884100001 Content-Type: text/plain; charset="utf-8" Describe the miniuart clock frequency in a _DSD property, so that it can be read from the Linux driver [1] The miniuart clock frequency is the core clock frequency on the Raspberry Pi. It can be modified by the user using the 'core_freq' property in the config.txt file. So, we fetch it from the underlying Raspberry Pi firmware. [1] https://lore.kernel.org/all/20220207232129.402882-1-athierry@redhat.com/ Signed-off-by: Adrien Thierry --- V1 -> V2: added link to the Linux patch The Linux patch [1] has been merged into Greg Kroah-Hartman's tty tree https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git/commit/?h=3D= tty-testing&id=3Dfcc446c8aa6303b247b0d88f460167b731265282 Platform/RaspberryPi/AcpiTables/Uart.asl | 14 ++++++++++++++ Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c | 9 +++++++++ .../RaspberryPi/Drivers/ConfigDxe/ConfigDxe.inf | 1 + Platform/RaspberryPi/RPi3/RPi3.dsc | 5 +++++ Platform/RaspberryPi/RPi4/RPi4.dsc | 5 +++++ Platform/RaspberryPi/RaspberryPi.dec | 1 + 6 files changed, 35 insertions(+) diff --git a/Platform/RaspberryPi/AcpiTables/Uart.asl b/Platform/RaspberryP= i/AcpiTables/Uart.asl index 974f06d3bc..ef5165be98 100644 --- a/Platform/RaspberryPi/AcpiTables/Uart.asl +++ b/Platform/RaspberryPi/AcpiTables/Uart.asl @@ -77,6 +77,20 @@ Device (URTM) MEMORY32SETBASE (RBUF, RMEM, RBAS, BCM2836_MINI_UART_OFFSET) Return (^RBUF) } + + // + // Mini Uart Clock Rate will be dynamically updated during boot + // 0x4D 0x55 0x43 0x52 0xC 0x1000000 (Value must be > 16777215) + // + Name (MUCR, 0x1000000) + + Name (_DSD, Package () + { + ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), Package () + { + Package (2) { "clock-frequency", MUCR }, + } + }) } =20 // diff --git a/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c b/Platform/= RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c index 415d99fadb..3dcf2bac0d 100644 --- a/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c +++ b/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c @@ -44,6 +44,7 @@ STATIC RASPBERRY_PI_FIRMWARE_PROTOCOL *mFwProtocol; STATIC UINT32 mModelFamily =3D 0; STATIC UINT32 mModelInstalledMB =3D 0; STATIC UINT32 mModelRevision =3D 0; +STATIC UINT32 mCoreClockRate =3D 0; =20 STATIC EFI_MAC_ADDRESS mMacAddress; =20 @@ -798,6 +799,7 @@ STATIC CONST AML_NAME_OP_REPLACE SsdtEmmcNameOpReplace[= ] =3D { =20 STATIC CONST AML_NAME_OP_REPLACE DsdtNameOpReplace[] =3D { { "URIU", PcdToken (PcdUartInUse) }, + { "MUCR", PcdToken (PcdMiniUartClockRate) }, { } }; =20 @@ -944,6 +946,13 @@ ConfigInitialize ( DEBUG ((DEBUG_INFO, "Current Raspberry Pi revision %x\n", mModelRevisi= on)); } =20 + Status =3D mFwProtocol->GetClockRate (RPI_MBOX_CLOCK_RATE_CORE, &mCoreCl= ockRate); + if (Status !=3D EFI_SUCCESS) { + DEBUG ((DEBUG_ERROR, "Couldn't get the Raspberry Pi core clock rate: %= r\n", Status)); + } else { + PcdSet32S (PcdMiniUartClockRate, mCoreClockRate); + } + Status =3D SetupVariables (); if (Status !=3D EFI_SUCCESS) { DEBUG ((DEBUG_ERROR, "Couldn't not setup NV vars: %r\n", Status)); diff --git a/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.inf b/Platfor= m/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.inf index e6e22ad82e..6f6e8f42ac 100644 --- a/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.inf +++ b/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.inf @@ -95,6 +95,7 @@ gRaspberryPiTokenSpaceGuid.PcdFanTemp gRaspberryPiTokenSpaceGuid.PcdUartInUse gRaspberryPiTokenSpaceGuid.PcdXhciPci + gRaspberryPiTokenSpaceGuid.PcdMiniUartClockRate =20 [Depex] gPcdProtocolGuid AND gRaspberryPiFirmwareProtocolGuid diff --git a/Platform/RaspberryPi/RPi3/RPi3.dsc b/Platform/RaspberryPi/RPi3= /RPi3.dsc index 6ab5d1ae6d..6dc48dc233 100644 --- a/Platform/RaspberryPi/RPi3/RPi3.dsc +++ b/Platform/RaspberryPi/RPi3/RPi3.dsc @@ -561,6 +561,11 @@ # gRaspberryPiTokenSpaceGuid.PcdUartInUse|1 =20 + # + # Mini-UART clock rate + # + gRaspberryPiTokenSpaceGuid.PcdMiniUartClockRate|250000000 + ##########################################################################= ###### # # Components Section - list of all EDK II Modules needed by this Platform diff --git a/Platform/RaspberryPi/RPi4/RPi4.dsc b/Platform/RaspberryPi/RPi4= /RPi4.dsc index 44ed60ab2f..a9c0c36bb1 100644 --- a/Platform/RaspberryPi/RPi4/RPi4.dsc +++ b/Platform/RaspberryPi/RPi4/RPi4.dsc @@ -580,6 +580,11 @@ # gRaspberryPiTokenSpaceGuid.PcdUartInUse|0 =20 + # + # Mini-UART clock rate + # + gRaspberryPiTokenSpaceGuid.PcdMiniUartClockRate|500000000 + ##########################################################################= ###### # # Components Section - list of all EDK II Modules needed by this Platform diff --git a/Platform/RaspberryPi/RaspberryPi.dec b/Platform/RaspberryPi/Ra= spberryPi.dec index 797be59274..17b6061a05 100644 --- a/Platform/RaspberryPi/RaspberryPi.dec +++ b/Platform/RaspberryPi/RaspberryPi.dec @@ -72,3 +72,4 @@ gRaspberryPiTokenSpaceGuid.PcdMmcEnableDma|0|UINT32|0x0000001F gRaspberryPiTokenSpaceGuid.PcdUartInUse|1|UINT32|0x00000021 gRaspberryPiTokenSpaceGuid.PcdXhciPci|0|UINT32|0x00000022 + gRaspberryPiTokenSpaceGuid.PcdMiniUartClockRate|0|UINT32|0x00000023 --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#86449): https://edk2.groups.io/g/devel/message/86449 Mute This Topic: https://groups.io/mt/88999026/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-