From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2607:f8b0:4001:c06::243; helo=mail-io0-x243.google.com; envelope-from=ard.biesheuvel@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-io0-x243.google.com (mail-io0-x243.google.com [IPv6:2607:f8b0:4001:c06::243]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id DD95A2118EF42 for ; Mon, 11 Jun 2018 04:00:58 -0700 (PDT) Received: by mail-io0-x243.google.com with SMTP id e15-v6so23390979iog.1 for ; Mon, 11 Jun 2018 04:00:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=jSAGlcPmoQ86G9WwhJMV/ifN9DPCrQG+EqCD2tAXlCs=; b=jo53a+euIzbbcHD1hzKtR/rZUZMUGYxWjs6HjKAG6hlaYg+ltz5nFigTd3tdLG8tW6 7vlL/GLvDOODTXd8wtPftj/X49U3b1rPQqrbtrx10ccCRLt+N3Et57eNGNv4RqIgAq8d 6cxw2pf0Ra/cdB663j5q/ejzBJV/dx06OOsgY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=jSAGlcPmoQ86G9WwhJMV/ifN9DPCrQG+EqCD2tAXlCs=; b=at4IMnqpv5cihbOCVIYkvI8JEJZET8dU7aISPLJ3rR+R8IMFuwhtzBA7EimaaO4o7d 0hkF0z0Gk6Dsm7BEC6lJ9hG/FVhpxoWluDKTqVAZ6PnAP6FlUe4Yj+l+M08mwhI/z1U0 KSisRShAqYg8l3FVQ2F/KiuQ3JgUvp05JViPi3e1BmKtNEEsgTHccPhUMHJR7q+aolB4 cVtx7Jpe897SVgcj36qaMfCZHerx1R67Pdb4Z8+Sg4ohMWDRJYWd0RxFvvHg40SYOzRM Kdan/L9NTt3QcDNoRg7325yPYiPxCxYTh0CFras3ekVks127kPVEBUwh+shshrbzM1eM uv6A== X-Gm-Message-State: APt69E11Mjomtc3gdy24X/nUYJ9LRrfE0aQV1ytD20PbIb4fyPw2jSA6 xizYLS0yJIqOv9JhDawVJ+TkMIVSJ8AJFDdT72OuTQ== X-Google-Smtp-Source: ADUXVKIBlTgxNZM0O8zTvp6/NOdOn1Sqn+NunkXruQrGiE0sSo1nfxUDAnh0i5bZfEvm+KVdxaU9E8q0hL6/2KaYgmo= X-Received: by 2002:a6b:4a09:: with SMTP id w9-v6mr3660743iob.277.1528714857285; Mon, 11 Jun 2018 04:00:57 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a6b:bbc7:0:0:0:0:0 with HTTP; Mon, 11 Jun 2018 04:00:56 -0700 (PDT) In-Reply-To: <1528472063-1660-1-git-send-email-mw@semihalf.com> References: <1528472063-1660-1-git-send-email-mw@semihalf.com> From: Ard Biesheuvel Date: Mon, 11 Jun 2018 13:00:56 +0200 Message-ID: To: Marcin Wojtas Cc: "edk2-devel@lists.01.org" , Leif Lindholm , Nadav Haklai , Hua Jing , =?UTF-8?B?SmFuIETEhWJyb8Wb?= , Grzegorz Jaszczyk Subject: Re: [platforms PATCH 00/25] Armada herdware description rework X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2018 11:00:59 -0000 Content-Type: text/plain; charset="UTF-8" Marcin, I am a bit reluctant to review another huge set of Armada patches while we are still waiting for MacchiatoBin support to land. The only hardware i have access to is MacchiatoBin, and it has been well over a year now that MacchiatoBin support has been between 'under construction' and 'about to land any day now'. The patches in this series actually carry traces of McBin support, which suggests to me that they were taken from an internal tree that does support MacchiatoBin, but it has been removed. What is that about? edk2-platforms is not intended as a baseline for Marvell customers to base their private trees on, we actually prefer code that runs on systems that are widely available (such as MacchiatoBin) Thanks, Ard. On 8 June 2018 at 17:33, Marcin Wojtas wrote: > Hi, > > This big patchset reworks handling of the SoC and Boards' description > to the final version. Hitherto mechanism of hardcoded structures > and parsing PCDs inside the drivers was unfortunate - it didn't > allow to support different SoC families with different number > of controllers or base addresses. > > The main concept is introducing a hardware description layer > with the new protocol, which is responsible for providing > data to the consumer platforms drivers. Additionally a new > SoC and Board description libraries allow to move information > from overly used PCDs to C code in an organized manner: > > ArmadaSoCDescLib + ArmadaBoardDescLib > (per SoC family) (per Board, in next steps more of description > | of ComPhy, Mpp and others can go there) > | | > | | > |-> MV_BOARD_DESC <-| > | > | > | > Driver/Library (e.g. ComPhy, I2c, Pp2Dxe) > > Please don't be discouraged by big amount of patches, > they are sort of repeatable: update protocol, libraries and > the consumer drivers/libraries until the MvHwDescLib.h > header could be completely removed. More details can > be found in the commit logs. > > The patches are available in the github: > https://github.com/MarvellEmbeddedProcessors/edk2-open-platform/commits/boarddesc-upstream-r20180608 > > I'm looking forward to review and any comments/remarks. > > Best regards, > Marcin > > Marcin Wojtas (21): > Marvell/Library: Introduce ArmadaBoardDescLib class > Marvell/Library: UtmiPhyLib: Switch to use MARVELL_BOARD_DESC protocol > Marvell/Library: RealTimeClockLib: Simplify obtaining base address > Marvell/Armada7k8k: Extend ArmadaSoCDescLib with PP2 information > Marvell/Drivers: MvBoardDesc: Extend protocol with PP2 support > Marvell/Drivers: Pp2Dxe: Switch to use MARVELL_BOARD_DESC protocol > Marvell/Armada7k8k: Extend ArmadaSoCDescLib with AHCI/SDMMC/XHCI > Marvell/Drivers: MvBoardDesc: Extend protocol with AHCI/SDMMC/XHCI > Marvell/Drivers: NonDiscoverable: Switch to use MARVELL_BOARD_DESC > Marvell/Library: ComPhyLib: Get AHCI data with MARVELL_BOARD_DESC > Marvell/Armada7k8k: Extend ArmadaSoCDescLib with ComPhy information > Marvell/Drivers: MvBoardDesc: Extend protocol with COMPHY support > Marvell/Library: ComPhyLib: Switch library to use MARVELL_BOARD_DESC > Marvell/Armada7k8k: Extend ArmadaSoCDescLib with MDIO information > Marvell/Drivers: MvBoardDesc: Extend protocol with MDIO support > Marvell/Drivers: MvMdioDxe: Enable 64bit addressing > Marvell/Drivers: MvMdioDxe: Switch driver to use MARVELL_BOARD_DESC > Marvell/Armada7k8k: Extend ArmadaSoCDescLib with I2C information > Marvell/Drivers: MvBoardDesc: Extend protocol with I2C support > Marvell/Drivers: MvI2cDxe: Switch driver to use MARVELL_BOARD_DESC > Marvell/Drivers: MvPhyDxe: Remove MvHwDescLib.h dependency > > jinghua (4): > Marvell/Library: Introduce ArmadaSoCDescLib class > Marvell: Introduce MARVELL_BOARD_DESC_PROTOCOL > Marvell/Drivers: MvBoardDescDxe: Introduce board description driver > Marvell/Armada7k8k: Enable board description driver compilation > > Platform/Marvell/Armada70x0Db/Armada70x0Db.dsc | 2 +- > Platform/Marvell/Armada70x0Db/Armada70x0Db.fdf | 1 + > Silicon/Marvell/Armada7k8k/Armada7k8k.dsc.inc | 2 + > Silicon/Marvell/Armada7k8k/Library/Armada7k8kLib/Armada7k8kLib.inf | 2 - > Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.c | 338 ++++++++++++ > Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.inf | 37 ++ > Silicon/Marvell/Armada7k8k/Library/RealTimeClockLib/RealTimeClockLib.c | 29 +- > Silicon/Marvell/Armada7k8k/Library/RealTimeClockLib/RealTimeClockLib.inf | 2 +- > Silicon/Marvell/Drivers/BoardDesc/MvBoardDescDxe.c | 573 ++++++++++++++++++++ > Silicon/Marvell/Drivers/BoardDesc/MvBoardDescDxe.h | 59 ++ > Silicon/Marvell/Drivers/BoardDesc/MvBoardDescDxe.inf | 70 +++ > Silicon/Marvell/Drivers/I2c/MvI2cDxe/MvI2cDxe.c | 37 +- > Silicon/Marvell/Drivers/I2c/MvI2cDxe/MvI2cDxe.inf | 1 + > Silicon/Marvell/Drivers/Net/MvMdioDxe/MvMdioDxe.c | 41 +- > Silicon/Marvell/Drivers/Net/MvMdioDxe/MvMdioDxe.inf | 1 + > Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.c | 3 +- > Silicon/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.c | 43 +- > Silicon/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.inf | 2 +- > Silicon/Marvell/Drivers/NonDiscoverableDxe/NonDiscoverableDxe.c | 100 ++-- > Silicon/Marvell/Drivers/NonDiscoverableDxe/NonDiscoverableDxe.inf | 6 +- > Silicon/Marvell/Include/Library/ArmadaBoardDescLib.h | 99 ++++ > Silicon/Marvell/Include/Library/ArmadaSoCDescLib.h | 146 +++++ > Silicon/Marvell/Include/Library/MvHwDescLib.h | 290 ---------- > Silicon/Marvell/Include/Library/UtmiPhyLib.h | 2 + > Silicon/Marvell/Include/Protocol/BoardDesc.h | 118 ++++ > Silicon/Marvell/Include/Protocol/Mdio.h | 4 +- > Silicon/Marvell/Library/ComPhyLib/ComPhyCp110.c | 50 +- > Silicon/Marvell/Library/ComPhyLib/ComPhyLib.c | 74 ++- > Silicon/Marvell/Library/ComPhyLib/ComPhyLib.h | 4 + > Silicon/Marvell/Library/ComPhyLib/ComPhyLib.inf | 6 +- > Silicon/Marvell/Library/UtmiPhyLib/UtmiPhyLib.c | 65 +-- > Silicon/Marvell/Library/UtmiPhyLib/UtmiPhyLib.h | 5 + > Silicon/Marvell/Library/UtmiPhyLib/UtmiPhyLib.inf | 9 +- > Silicon/Marvell/Marvell.dec | 8 +- > 34 files changed, 1694 insertions(+), 535 deletions(-) > create mode 100644 Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.c > create mode 100644 Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.inf > create mode 100644 Silicon/Marvell/Drivers/BoardDesc/MvBoardDescDxe.c > create mode 100644 Silicon/Marvell/Drivers/BoardDesc/MvBoardDescDxe.h > create mode 100644 Silicon/Marvell/Drivers/BoardDesc/MvBoardDescDxe.inf > create mode 100644 Silicon/Marvell/Include/Library/ArmadaBoardDescLib.h > create mode 100644 Silicon/Marvell/Include/Library/ArmadaSoCDescLib.h > delete mode 100644 Silicon/Marvell/Include/Library/MvHwDescLib.h > create mode 100644 Silicon/Marvell/Include/Protocol/BoardDesc.h > > -- > 2.7.4 >