From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Permerror (SPF Permanent Error: Void lookup limit of 2 exceeded) identity=mailfrom; client-ip=2a01:111:f400:fe07::60c; helo=eur02-am5-obe.outbound.protection.outlook.com; envelope-from=meenakshi.aggarwal@nxp.com; receiver=edk2-devel@lists.01.org Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-am5eur02on060c.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe07::60c]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id DBC91223230CB for ; Fri, 16 Feb 2018 00:48:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=EW9Bt5yW/bd4T99O+iARCYKjKJH5pMZ9oGAsOgPgr1g=; b=f2QVUIAmjGjncEdhjVICHRi4w2lsn8Q0Wzi5dLlUzp6EOqjbhxMle+ELQRf2Wcf9MmakJOD7NfYmi5A3O+G/JyJDWlKcaJi6OW5cdZlClQFjoTh2DAWiufq0GKjIQhtLCevfSNdJqj3majhU1uRz126qgpuHEst211pyRcGOvOU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=meenakshi.aggarwal@nxp.com; Received: from idcbfarm.ap.freescale.net (192.88.169.1) by VI1PR04MB1008.eurprd04.prod.outlook.com (2a01:111:e400:5090::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.485.10; Fri, 16 Feb 2018 08:54:07 +0000 From: Meenakshi To: ard.biesheuvel@linaro.org, leif.lindholm@linaro.org, michael.d.kinney@intel.com, edk2-devel@lists.01.org Date: Fri, 16 Feb 2018 14:20:18 +0530 Message-Id: <1518771035-6733-23-git-send-email-meenakshi.aggarwal@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1518771035-6733-1-git-send-email-meenakshi.aggarwal@nxp.com> References: <1518771035-6733-1-git-send-email-meenakshi.aggarwal@nxp.com> MIME-Version: 1.0 X-Originating-IP: [192.88.169.1] X-ClientProxiedBy: HK2PR02CA0172.apcprd02.prod.outlook.com (2603:1096:201:1f::32) To VI1PR04MB1008.eurprd04.prod.outlook.com (2a01:111:e400:5090::28) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 521f29d9-eb74-4e51-7fef-08d5751ad8ad X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603307)(7153060)(7193020); SRVR:VI1PR04MB1008; X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB1008; 3:td3Yc+VCeD5ThdfbI8CnPWSqfi5M0+2ZKuqELYoAzuZD040K2eRXwJSRRgtq0lVpPQW5CrHKZ679fmuSy55Gi1l+mz/2i4pJT8EbnTUccn3f23XtS+LlB5DFMrjj28r+F69lTh4r7gjCq3pFFKkz9nFuX/uUWNy/B7+fv+2qRhD3cteiJdx4Z9AORwpwBCp4uUk7OPi1895p80lmuMAbwHrCZRz0POfAIlxHjFEZ2y3cM2R0qhIOomDrswzGjRDB; 25:4rR+PK4xER4gtl3gm18qPJSMVdr2X3+9QRJXsg1zpkXF/E5gFksXKoDytmAeNI7lxpdmKvZhsG0FnhBpVBC3BxzWQZJ+FA2TznNoidc2PYEqA5nPtLuVT40pAGsjVQHZYtvIXUXXv4/kYiWE8jz06KDOlbU3lI/hmZOV5QCqLsV3nIZBu57MBN6R8iLa2Ua6JZFdkTioRUdiW622qgF+cajNuvTHRfGUd6TTSOQ4w8+gT1ZdCxS1MQYxRirrZm32Q0jz+nnCP9TCTMRtuk7kUVU2rBNZnVsu5khksSkv67Nybx/9P/5kxQ6ni9g61GTiWhqDevHMA1hEBj5D+Eloag==; 31:+dRn16xCy6PuFlcd67fEdDLQQNtQnSYtKEbHx0ofpqFEM10PhWgV1YNTajLSycnd9gfs9vQoWxikiYebD+NpK3jZwDPw/nLbprfjUYWBkobgpes9CGqYnTMvQDDcBbuFQam1v1wvubjrwWiYskoefgKaSJ/q1+d4fYW+58pLK0k/6AVPMZSVY6QT+eEYevwCoyCHsT6kN3qgDRmM553vyNpUlxS/nNFjkDfSFumGbQY= X-MS-TrafficTypeDiagnostic: VI1PR04MB1008: X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB1008; 20:OWny2+UeLe9hStYKl5Zm8wu5yRpF3Old8Qiv2iL3OWjhbqfnMuZq4R5mB5JwFXqaNlKt1v2462FR7+OYG4CxPux5NpsoQHbGbcKQg3ujQS7gqoSUR6suouVycPvASw1RC2BzDpXBvl8Ub7dRjkE5dJA3Gof47WXlLuuKhdWHD5n94D+a51Vp9kxhdb85Rj/jDZpfgt9ADW7tndTJkCoiE2GL+SEK3yZDR6aCH8vidbbymk0DkjUejpmZKwgdehRTsj/JWDQbbRoXYzqZ1zNvnwb+QfbkiQSOBLzflicNPiu5YdWC/nPpDTQ5T62g7hiG33A5aVFNIZputCFGaNymQUiyzkvaYLYo7INtb8dI/s+RGbT9xV2Z+aUt4wzkxXXDbXID00q2kge9faT1M6797JtloJ2qLFUsIzqzjOPZWGYrpuFXCSdAGPccAelHQWnwxYzrwdEXVRWiNRErTvLVOIoWoZO3OLwanevubhVQ18rk3BspqXXWDcQ9o/Wrvnou; 4:uNlpRQ0i3NxFiba6NZuCMQukUqt15F4yKvWCOxU80qq2uwMp+NHLTtzj96zgk1IY0OtBHvILUAAcbhQ8pjbSDcVRHTdTV6/CbEANff4if9vxy4Nn+E4tHAz1An3qsKJMnU/JdMzccFVigFi9Yh11OQngH/zVc9axWI7sWyj1pmOGkSQMAxSvSNX8s7eLHnWqBB6DtPo/ry6POQ6Ac9ZWcMfBIJ6eVDvDK2wMBZ02OAu1JJafYzocmJbVgxiK/FRdDtG3Sp04l5BxF3Vp/FUb0i31feQZoadgIJV+aBcdpPFHLSXB7AwYhK2Un12QR4Dm X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(3231101)(944501161)(6055026)(6041288)(20161123558120)(20161123564045)(20161123560045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:VI1PR04MB1008; BCL:0; PCL:0; RULEID:; SRVR:VI1PR04MB1008; X-Forefront-PRVS: 0585417D7B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(376002)(39380400002)(396003)(39860400002)(366004)(199004)(189003)(86362001)(6486002)(8676002)(76176011)(36756003)(53376002)(966005)(4326008)(6116002)(15188155005)(16799955002)(7736002)(386003)(68736007)(186003)(26005)(53936002)(305945005)(16526019)(81156014)(3846002)(6506007)(478600001)(50226002)(16586007)(8936002)(2950100002)(316002)(2906002)(25786009)(97736004)(50466002)(48376002)(105586002)(52116002)(47776003)(81166006)(51416003)(5660300001)(6666003)(106356001)(66066001)(54906003)(6306002)(6512007)(19627235001); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR04MB1008; H:idcbfarm.ap.freescale.net; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR04MB1008; 23:d3n06RM0JVDUMeOuGGU2foVsOY/QsoZLLsEepB+XO?= =?us-ascii?Q?MWXRh8y5H89+noRoKz+xtf71Sp8+ihfuaV+17p5a+gvH8I3I5FrbTdTWc3y1?= =?us-ascii?Q?Be9+Ty4NvxyDh+Wde2Oafit94P6smr0Z7hyuA0YUf12ExGmCpZyJOkoylxzU?= =?us-ascii?Q?7S8Yf5qV2ko+LBvJitomk2o8qSZTjFwxxuX/waYaofFC4gtARacSO4CCxNA/?= =?us-ascii?Q?GRL3nfx43lVi4afLnJxgwdemWzSekshuWMBbSq+kBxtHo9W2XcqHDdiVb9Y3?= =?us-ascii?Q?5UNJPOpN4ZB6IuA+ERfnyFeHdeQAQ8uEPIFW3F1lWTTrelb1W+cwMig/9Fip?= =?us-ascii?Q?LXJchMAq6bLeJTNLBssgp1z24DMSKgVbMJEpAzHMFp13UI2qOxgEMr7oQ2Z8?= =?us-ascii?Q?fLVa7wPi5zF4WXP0+1/Na1eNueFZyuxWOizHJpMdYZaVp4EDSN3MFvOLMe7L?= =?us-ascii?Q?F3Qt8t5PvCEZ23X5ym1X1qx8MuNrdHlI/djWlShych3FI3Tf9vYEaETWhnib?= =?us-ascii?Q?v7KLXgaefn4qdNqfifWqHXp52zLPYd8dCxAoNI8sWISqdpwBBg3Ph8XSQxU2?= =?us-ascii?Q?pe7wClagfQsGHdXJFMMgDiAYNf/2/G1uJajYLsaXTDARlNLFViIr+/DFnJdF?= =?us-ascii?Q?25rMhpFyl69bYkL1XG30cmI4F4fkVCJhsQzBzGzTX3Z8P+d4jQzjIAzpvGyS?= =?us-ascii?Q?+lvzjUcQpUCCLtnPHV5tkPPMZsKI8SLWhAJ17oDixtZgc7HVmO6Sv3cUlHgT?= =?us-ascii?Q?9o6W0MgSELHchRExQEjMYjNH5xQDNjoou4zCVV+Pf0xCa9Isx8Tj6IbgRkgq?= =?us-ascii?Q?mGMXOKqH9aQ7IZweJNswjgZPEX+lPi+1WmHI6cU7czJDSoziU2szbEPON+x7?= =?us-ascii?Q?6JS1BnAd2QkkXGcdXcTM3YJEqt7X0MzSxUFKcY7l5p2iis1G0xr6fxiOfj+H?= =?us-ascii?Q?ipZeh/IDbO3g9onnWcIJ9QxIfg+PlnfT++zmTz40gg5zOyoaWOeTrE1Lh4Yn?= =?us-ascii?Q?dHWmo7QqZUcKM8nBwjJ88S6oC5czetxGXS7RCtXmSZrMusRfkZ/qZBXHiEmZ?= =?us-ascii?Q?Axs5P0Fo+0aXi3tAvHOJYaT9qPPIMV61vRdt/wAbUGehNsWRk5T9gxu4W3po?= =?us-ascii?Q?Sq1zCG3f0F6cvteNZWO7EtNu4ytFCVF16D377HCyQ1cJzWUsCXH9TdE34xsZ?= =?us-ascii?Q?OVrcaIrSRtcMhprEHhH9SfKoNJ1YSfmQbD7Q2eUP4lY2VMSvkqpbUD9KoKU1?= =?us-ascii?Q?CebUkhM0282KQ+wQDw=3D?= X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB1008; 6:ts6kcQGLa5T+em4AQlybDunCo9yLcbhwD6fUL8vD9xUIJtSsWrgCVEEARWlibmY34SAUOeC+5QjoKnqISXLIMVi5TuOB0ViENAhodcHsAQqWqAmsB48ZODiVV6UgypsE6DLZtnHNl+qVHK9Ae/XwygW3caB8+9M66frUk2VedQH7daSqMXB3c74li9MyyQCEsJrmqdDvPA6e8cb14xNylb/VGpPDtXzJQ3MovDaQDZKpCzS/hKBQy5AFlCoVqXdLZPCOQoQNFmkEyzecucLSETHTAj5p6jhuSxTpzGRaswRzXDU+CXyu/h8PrD3a13Lew9BvjJ0KK5NRaFfaVDuN5z71PIjsm7oy0rVt3IEpqnQ=; 5:R1mRX75QJKgY8a4G5i0EG8bIWCKLprI/pCE4UvzCEnRs64n9bBL1qKX9MSENH6n313O83etPq3XqLv9YRt4r135tRMHTmd39uQonYRG9SP+nE2gP9aveHtYy5EBFlmdGT41QcMOqzxuLIxLp8EpY2Vjt9JztKJ/6JPhxt+sB/LM=; 24:o/qdifSNRB/x4zq++AIJgKUsDBLiLk9Olmzt24xAldE/v6aDiWJLDTk4LuVqKiOgXCQuB1g7qfqT8uqdiUMJCgnLGWTdvvrxAALkIl8E5GQ=; 7:NFG6uK2/wm2EQxcN0gehmv1f/tk3hP+az5nGZ1mTsssQF8DPtmzRA9UMYlTXNkxtk78lk5gdqIizeMk6cvYTN8FCknoFvIgrw1ngKP6toW/zuUGE7KOvKUmgRmbVkpJJPLa6xqELvHfysYNea2Tz0pUVCiYZlHMO+tDSk8GVFWyOkSrjs/zyrV3FNc4yFqMqPSiqcqze7BPSEeeTTxrztcDqn5GiEBvplkRUjhP89DcHpFc4jzxdNGbr7wyb3vHh SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2018 08:54:07.5923 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 521f29d9-eb74-4e51-7fef-08d5751ad8ad X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB1008 Subject: [PATCH edk2-platforms 22/39] Platform/NXP: LS1046 RDB Board FPGA library X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Feb 2018 08:48:20 -0000 Content-Type: text/plain From: Meenakshi Aggarwal Library to provide functions for accessing FPGA on LS1046ARDB board. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Vabhav Signed-off-by: Meenakshi Aggarwal --- .../NXP/LS1046aRdbPkg/Include/Library/FpgaLib.h | 97 ++++++++++++++ .../NXP/LS1046aRdbPkg/Library/FpgaLib/FpgaLib.c | 144 +++++++++++++++++++++ .../NXP/LS1046aRdbPkg/Library/FpgaLib/FpgaLib.inf | 32 +++++ 3 files changed, 273 insertions(+) create mode 100644 Platform/NXP/LS1046aRdbPkg/Include/Library/FpgaLib.h create mode 100644 Platform/NXP/LS1046aRdbPkg/Library/FpgaLib/FpgaLib.c create mode 100644 Platform/NXP/LS1046aRdbPkg/Library/FpgaLib/FpgaLib.inf diff --git a/Platform/NXP/LS1046aRdbPkg/Include/Library/FpgaLib.h b/Platform/NXP/LS1046aRdbPkg/Include/Library/FpgaLib.h new file mode 100644 index 0000000..c8f7411 --- /dev/null +++ b/Platform/NXP/LS1046aRdbPkg/Include/Library/FpgaLib.h @@ -0,0 +1,97 @@ +/** FpgaLib.h +* Header defining the LS1046a Fpga specific constants (Base addresses, sizes, flags) +* +* Copyright 2017 NXP +* +* This program and the accompanying materials +* are licensed and made available under the terms and conditions of the BSD License +* which accompanies this distribution. The full text of the license may be found at +* http://opensource.org/licenses/bsd-license.php +* +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +* +**/ + +#ifndef __LS1046A_FPGA_H__ +#define __LS1046A_FPGA_H__ + +/** + FPGA register set of LS1046ARDB board-specific. + **/ +typedef struct { + UINT8 FpgaVersionMajor; // 0x0 - FPGA Major Revision Register + UINT8 FpgaVersionMinor; // 0x1 - FPGA Minor Revision Register + UINT8 PcbaVersion; // 0x2 - PCBA Revision Register + UINT8 SystemReset; // 0x3 - system reset register + UINT8 SoftMuxOn; // 0x4 - Switch Control Enable Register + UINT8 RcwSource1; // 0x5 - Reset config word 1 + UINT8 RcwSource2; // 0x6 - Reset config word 1 + UINT8 Vbank; // 0x7 - Flash bank selection Control + UINT8 SysclkSelect; // 0x8 - System clock selection Control + UINT8 UartSel; // 0x9 - Uart selection Control + UINT8 Sd1RefClkSel; // 0xA - Serdes1 reference clock selection Control + UINT8 TdmClkMuxSel; // 0xB - TDM Clock Mux selection Control + UINT8 SdhcSpiCsSel; // 0xC - SDHC/SPI Chip select selection Control + UINT8 StatusLed; // 0xD - Status Led + UINT8 GlobalReset; // 0xE - Global reset + UINT8 SdEmmc; // 0xF - SD or EMMC Interface Control Regsiter + UINT8 VddEn; // 0x10 - VDD Voltage Control Enable Register + UINT8 VddSel; // 0x11 - VDD Voltage Control Register +} FPGA_REG_SET; + +/** + Function to read FPGA register. +**/ +UINT8 +FpgaRead ( + UINTN Reg + ); + +/** + Function to write FPGA register. +**/ +VOID +FpgaWrite ( + UINTN Reg, + UINT8 Value + ); + +/** + Function to read FPGA revision. +**/ +VOID +FpgaRevBit ( + UINT8 *Value + ); + +/** + Function to initialize FPGA timings. +**/ +VOID +FpgaInit ( + VOID + ); + +/** + Function to print board personality. +**/ +VOID +PrintBoardPersonality ( + VOID + ); + +#define FPGA_BASE_PHYS 0x7fb00000 + +#define SRC_VBANK 0x25 +#define SRC_NAND 0x106 +#define SRC_QSPI 0x44 +#define SRC_SD 0x40 + +#define SERDES_FREQ1 "100.00 MHz" +#define SERDES_FREQ2 "156.25 MHz" + +#define FPGA_READ(Reg) FpgaRead (OFFSET_OF (FPGA_REG_SET, Reg)) +#define FPGA_WRITE(Reg, Value) FpgaWrite (OFFSET_OF (FPGA_REG_SET, Reg), Value) + +#endif diff --git a/Platform/NXP/LS1046aRdbPkg/Library/FpgaLib/FpgaLib.c b/Platform/NXP/LS1046aRdbPkg/Library/FpgaLib/FpgaLib.c new file mode 100644 index 0000000..90cc1ea --- /dev/null +++ b/Platform/NXP/LS1046aRdbPkg/Library/FpgaLib/FpgaLib.c @@ -0,0 +1,144 @@ +/** @FpgaLib.c + Fpga Library for LS1046A-RDB board, containing functions to + program and read the Fpga registers. + + FPGA is connected to IFC Controller and so MMIO APIs are used + to read/write FPGA registers + + Copyright 2017 NXP + + This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#include +#include +#include +#include +#include + +/** + Function to read FPGA register. + + @param Reg Register offset of FPGA to read. + +**/ +UINT8 +FpgaRead ( + IN UINTN Reg + ) +{ + VOID *Base; + + Base = (VOID *)FPGA_BASE_PHYS; + + return MmioRead8 ((UINTN)(Base + Reg)); +} + +/** + Function to write FPGA register. + + @param Reg Register offset of FPGA to write. + @param Value Value to be written. + +**/ +VOID +FpgaWrite ( + IN UINTN Reg, + IN UINT8 Value + ) +{ + VOID *Base; + + Base = (VOID *)FPGA_BASE_PHYS; + + MmioWrite8 ((UINTN)(Base + Reg), Value); +} + +/** + Function to reverse the number. + + @param *Value pointer to number to reverse. + + @retval *Value reversed value. + +**/ +VOID +FpgaRevBit ( + OUT UINT8 *Value + ) +{ + UINT8 Rev; + UINT8 Val; + UINTN Index; + + Val = *Value; + Rev = Val & 1; + for (Index = 1; Index <= 7; Index++) { + Val >>= 1; + Rev <<= 1; + Rev |= Val & 1; + } + + *Value = Rev; +} + +/** + Function to print board personality. + +**/ +VOID +PrintBoardPersonality ( + VOID + ) +{ + UINT8 RcwSrc1; + UINT8 RcwSrc2; + UINT32 RcwSrc; + UINT32 Sd1RefClkSel; + + RcwSrc1 = FPGA_READ(RcwSource1); + RcwSrc2 = FPGA_READ(RcwSource2); + FpgaRevBit (&RcwSrc1); + RcwSrc = RcwSrc1; + RcwSrc = (RcwSrc << 1) | RcwSrc2; + + switch (RcwSrc) { + case SRC_VBANK: + DEBUG ((DEBUG_INFO, "vBank: %d\n", FPGA_READ(Vbank))); + break; + case SRC_NAND: + DEBUG ((DEBUG_INFO, "NAND\n")); + break; + case SRC_QSPI: + DEBUG ((DEBUG_INFO, "QSPI vBank %d\n", FPGA_READ(Vbank))); + break; + case SRC_SD: + DEBUG ((DEBUG_INFO, "SD\n")); + break; + default: + DEBUG ((DEBUG_INFO, "Invalid setting of SW5\n")); + break; + } + + DEBUG ((DEBUG_INFO, "FPGA: V%x.%x\nPCBA: V%x.0\n", + FPGA_READ(FpgaVersionMajor), + FPGA_READ(FpgaVersionMinor), + FPGA_READ(PcbaVersion))); + + DEBUG ((DEBUG_INFO, "SERDES Reference Clocks:\n")); + + Sd1RefClkSel = FPGA_READ(Sd1RefClkSel); + DEBUG((DEBUG_INFO, "SD1_CLK1 = %a, SD1_CLK2 = %a\n", + Sd1RefClkSel ? SERDES_FREQ2 : SERDES_FREQ1, SERDES_FREQ1)); + DEBUG((DEBUG_INFO, "SD2_CLK1 = %a, SD2_CLK2 = %a\n", + SERDES_FREQ1, SERDES_FREQ1)); + + return; +} diff --git a/Platform/NXP/LS1046aRdbPkg/Library/FpgaLib/FpgaLib.inf b/Platform/NXP/LS1046aRdbPkg/Library/FpgaLib/FpgaLib.inf new file mode 100644 index 0000000..afc41e3 --- /dev/null +++ b/Platform/NXP/LS1046aRdbPkg/Library/FpgaLib/FpgaLib.inf @@ -0,0 +1,32 @@ +# @FpgaLib.inf +# +# Copyright 2017 NXP +# +# This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# + +[Defines] + INF_VERSION = 0x0001000A + BASE_NAME = FpgaLib + FILE_GUID = 6e06ebbf-3a1d-47be-b4f6-1d82f2a9ac73 + MODULE_TYPE = BASE + VERSION_STRING = 1.0 + LIBRARY_CLASS = FpgaLib + +[Sources.common] + FpgaLib.c + +[Packages] + MdePkg/MdePkg.dec + Platform/NXP/LS1046aRdbPkg/LS1046aRdbPkg.dec + Silicon/NXP/NxpQoriqLs.dec + +[LibraryClasses] + BaseLib + IoLib -- 1.9.1