From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: None (no SPF record) identity=mailfrom; client-ip=2a00:1450:4010:c07::22d; helo=mail-lf0-x22d.google.com; envelope-from=mw@semihalf.com; receiver=edk2-devel@lists.01.org Received: from mail-lf0-x22d.google.com (mail-lf0-x22d.google.com [IPv6:2a00:1450:4010:c07::22d]) (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 B74B62110718C for ; Fri, 8 Jun 2018 08:34:44 -0700 (PDT) Received: by mail-lf0-x22d.google.com with SMTP id o9-v6so20714168lfk.1 for ; Fri, 08 Jun 2018 08:34:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id; bh=RxSogIgfPJnpo8qSUdwFpUR1swfv3pbik1yX1kTbBME=; b=pnH90Caomp53lVKHyWNX8hZaBFjmxBEPDoCKs9DVH8C9AIAIp6ni8BvQB3dzXCD0Bl wgm3BVQqlqQsT/7uRCNPogIEUa2BjBOPqATugmR6P7L+A8HGUX6M6Jd/LQ3/wRyVn+Ll 0wQ5Z7DwKYhdS58+LQTYqnsDc/vkqFDnv89Z467HO9paeQKJ7M19gUzh3E4a7mM+l59q Pd+06RhRU1YrpDN/IgB2lZ38+YI7eykJbdpTi0C/xjVnBdlOMz6Jl8gdcWRvc0f5uGPL D6X4iDxnGEGQC27xV+badlNSHy09WYj5Ju8cOMs/IMg3Or0UTU/bDat2yX8U++REAG7G 9atA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=RxSogIgfPJnpo8qSUdwFpUR1swfv3pbik1yX1kTbBME=; b=ARQPKBE1BJr7mCOJtNdFOL0zF+vcxXWl4adFiobXdU6RHo0c0+dib/qseJiptY1ARD dKNeNGf3qeZnLOxFB2gTUbkRuoFeSNI9DCe2oVvaSkF5EPiZSNluB+mR1hwkIW+hBylF +SeZQO++TvC07WviwJiBzN/Y9NHMgHZ5NU4so9bIkEBpcZiNXHu1wwaOVxreQXxQALUa dwhdMPUOncAiTXFEy0BPVVGE33eLO1i67QSuI9ntf29p9y47MYmt0qzVeVHPNtbNaG4C OKEayCbKmt+UEbeKMnmvkvHHMlFQ+k4R0t3s17CLqXO15uiYSXrON9BlAgSVp3+IFgKi grwg== X-Gm-Message-State: APt69E1phBXRoUVYQRGh044PwBVA7fbyyxssTUNW3dLyYzRN5pmkVkRP 0vrD7ZWN5HGW+zv52bqxhFsRHslR/PE= X-Google-Smtp-Source: ADUXVKJpre4nYvqkypLGVoRJJfsnRBk1djWfMQztUlHCl1+L/7Q+1ltsdeZZyO1dWsTBhwvr9xHXPg== X-Received: by 2002:a19:a413:: with SMTP id q19-v6mr4123835lfc.143.1528472081093; Fri, 08 Jun 2018 08:34:41 -0700 (PDT) Received: from gilgamesh.semihalf.com (31-172-191-173.noc.fibertech.net.pl. [31.172.191.173]) by smtp.gmail.com with ESMTPSA id v79-v6sm7355396lfd.32.2018.06.08.08.34.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 08 Jun 2018 08:34:40 -0700 (PDT) From: Marcin Wojtas To: edk2-devel@lists.01.org Cc: leif.lindholm@linaro.org, ard.biesheuvel@linaro.org, nadavh@marvell.com, jinghua@marvell.com, mw@semihalf.com, jsd@semihalf.com, jaz@semihalf.com Date: Fri, 8 Jun 2018 17:33:58 +0200 Message-Id: <1528472063-1660-1-git-send-email-mw@semihalf.com> X-Mailer: git-send-email 2.7.4 Subject: [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: Fri, 08 Jun 2018 15:34:45 -0000 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