From patchwork Mon Oct 24 08:01:58 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Priyanka Jain X-Patchwork-Id: 685725 X-Patchwork-Delegate: yorksun@freescale.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 3t2TjB60jrz9t1Y for ; Mon, 24 Oct 2016 19:19:41 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 7D707A7564; Mon, 24 Oct 2016 10:19:36 +0200 (CEST) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id iU1CItRFYp6T; Mon, 24 Oct 2016 10:19:36 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id EA43EA7534; Mon, 24 Oct 2016 10:19:35 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id E8A68A7534 for ; Mon, 24 Oct 2016 10:19:31 +0200 (CEST) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Mb6mWMI6aBgH for ; Mon, 24 Oct 2016 10:19:31 +0200 (CEST) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0077.outbound.protection.outlook.com [104.47.33.77]) by theia.denx.de (Postfix) with ESMTPS id 59EE4A7533 for ; Mon, 24 Oct 2016 10:19:27 +0200 (CEST) Received: from BN6PR03CA0062.namprd03.prod.outlook.com (10.173.137.24) by CY1PR03MB2377.namprd03.prod.outlook.com (10.166.207.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.679.12; Mon, 24 Oct 2016 08:05:15 +0000 Received: from BL2FFO11FD022.protection.gbl (2a01:111:f400:7c09::158) by BN6PR03CA0062.outlook.office365.com (2603:10b6:404:4c::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.659.11 via Frontend Transport; Mon, 24 Oct 2016 08:05:15 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none; nxp.com; dmarc=fail action=none header.from=nxp.com; nxp.com; dkim=none (message not signed) header.d=none; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BL2FFO11FD022.mail.protection.outlook.com (10.173.161.101) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.669.7 via Frontend Transport; Mon, 24 Oct 2016 08:05:15 +0000 Received: from b32167-VirtualBox.am.freescale.net ([10.214.249.223]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id u9O85AJP031993; Mon, 24 Oct 2016 01:05:11 -0700 From: Priyanka Jain To: , Date: Mon, 24 Oct 2016 13:31:58 +0530 Message-ID: <1477296118-7415-1-git-send-email-priyanka.jain@nxp.com> X-Mailer: git-send-email 1.7.4.1 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131217699152635623; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(8666005)(68736007)(5660300001)(305945005)(50986999)(356003)(229853001)(586003)(11100500001)(106466001)(7846002)(105606002)(8676002)(36756003)(5001770100001)(5003940100001)(97736004)(81156014)(4720700003)(6636002)(6666003)(92566002)(189998001)(19580405001)(19580395003)(104016004)(626004)(81166006)(33646002)(47776003)(77096005)(48376002)(86362001)(87936001)(4326007)(50226002)(50466002)(2906002)(8936002)(575784001)(85426001)(7059030); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR03MB2377; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD022; 1:Ix4dDpps9C/rgmImiQRC5s6MXYFJbI4SVdfFvbT95lSiZYw6hSKUJUmimqk6D5dcBTfByxuW68eS2skLths11FuAB11YE+P8HMQSuQczbEjTLonIvGLO+Vm0prAmWcB1Oon2Qbmt/bh0Wy8RRpQlo6+U5dHwYiPXf3ztDTenYCH6QsKjNXFF7R/7lXPCei7Vj/DaYX2KPUEOjqGQVEWDnxZmhGXtjDkQi5ouVWXmYtYQ1CJLCKi8UYghkGzPefNB5q7CXwLEQ3qHtH0jA+VhciM7m/Y30IqDBdlCNAfXuVGscAMExb1H6VuQJIc81VsNwmpOCXUHcSTCP01fxhBpNx6q7SkCXiv1IX16PeE9GVNG5vvKAKkBXLD3spPKdSMgbCnt7RwxAM7Q1UdUGGXW2ImT+IV4Hvq49RYmCvyHf3oGWZOJ6w+gAFs6eCMUFz7ybSqZ8y+jz039FVRkBrMzfCPjUQfalINt0wBv3vDaQLUP7J8LCRV2UgEuhFYr6zeCXICNvFscxyL1jT+A0ndtIabG8oGh0Db+GBKRsopNo2d7dLQHxcp8VeLqt5ygTrRXxf7NVflqiMJjjaCCowMf+wHjCOuhH/pIrIxAi2JVCfkF0W3CsUjTyfaH2TqKqXF1rOS3T0ogg/xxUg+Ca4xmrug3GRwPltr5M9wEAMSNnwF5ccA0p4wzCfDBhb8seCNZ+nysZHCAbrbnPYnenfBlxJtyixcig41gGGZxh8kn7Ls= MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 87643966-8877-450e-4586-08d3fbe47cb1 X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2377; 2:o+JsYeKmYGymrAhGe1qHNg+JPjPuK1VpG1XuUX8Y3zHvkNrBslxb7XPKiTGiF4DytIn6saSpd1xyE0GE8Vk6EMGR9f7QzUX0qSdqK0Bp46RX81v3Op+KAfBqE0yZJ5s9u+h7MOSOP2ox30Mv61QoKA7LtwP7QW4tZJoQa+9n8lV5oGXVQiEaAbJaNzGYG993riXRZ61wAP1ypxwp9A/Elg==; 3:mDhFJkK1KhRDlhzfhkuwb3VTDa1G+FCnr3NvJ44G7Bt2t9TcMP+xwqBpJo5Ao3a1kRUylbFykT1PKhc9rF0S5Xu6tU5la7jo1cfzuHNnyIuL023ycekmFM1x8NtNH4LwolevvLQ/E5aIQXGnsCiiGLl4UAZjY6dD10uo6ZB1Oc0bMXciKu2alxOZ/R3dj9re4icr0hhkS7CmKdxHiBAQVtdWE1nmPod3i9s2euwvxCJihw2VgG9DP6syoN5MX1pm; 25:rlcRDEwQ/Arw7dJU4PlsPRz7jMx9PaF7SpMasP+HYvONQmjf7l3QTyaxccWAmHIu+BI9VUwmrJbDBb8SogCx3Q52yz7+mhd1i1WvhPK4D4lWkHA7KVXgtfOWr9HlrJGOwM9hq4HEdoFuXVz/DVsFxIikSgMMywLLqwJ3zsuep4DZSJhQ/5Nv581qjDSmE3+HUryZ7KlUJfmNVaTScZw8wfbf/ztNzzKMlE+jDKKtdTerLelrHoe1kDoVxq4tPnEmOQ/KDbKrlvXjIdr7wr++iijxahKQJU8AIfJKXwan6Nvu5n5ZqFU/v3tae5BrnUnGnXj16hhN3rXG370ToMo6Cj+NLBLdhfdMC1on+9MPC8fxkmfPEwBsuKKXPcjgkH+Ury1618jy9TQjtoqrL1bmzNRnjtYgkbKQleUSZxIeZ/MsLKi3wKi0gKHX6CLUgTVybk7m+FfMs/i5k7o47Zi 0zA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB2377; X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2377; 31:CAppHpL3brqrWpjVGonANYAds1wxXRNozNVTjrFwSZcvNS3Ryrc9X+yfMCo/OiYhuBbGQ8GSkmRDJdDfOK5M0ML1CW4U7VNNzTTkYjq9ct8w8RUz9BJ40JryNibRTzXYCCUEvGkvS9chD0NNP7zrkM/AGn48czD7bKSJzfUOaEM8jXtrZApMyzOaP3ZoplOCar/vvaKcNb2clxKY33Jn4Wx48mij/ObL62vwupRDooGJjnFZ50UpBet1p16Hxg9K33VXGCo+cRQqoUbVc33HKR8UK4XjbA2+3hEkm4Kzt00=; 4:h5zglMh/Qzb31+LSF2OzOVNq+xhS/ndVtzlVYR4XStD1qHZ2ak+A9f+jSeFP+DcpNkh9MKy0RkTSouKHlgjUfxig2t0+GOSEVvH7L5XVPAhgvsQFp7Dl+JJVG4cNGRbvrrpSDSQ5/2003z/o9QyXQRsbRHwwgKjiCMnLl72DFoTOVKb9P7BjUMCn7KMwybu/kmFg1QFwJJs0Kg5QtepTSK4fgH+B753CToW/56+m8ew0GXdbk/rYpq8OSQ65gfin5aXRjkHoFQeOgq20YhuXxFp5Yx+OKa4moVY/qdHmLvYkHpL8jeaUOYT2j/rYNIxz+PI3aKb+rka7cdKtV0OZ4wKlflWDVelP2RYmXiGrrPX31/LQYja1E2AUYSILIYLrSnJSKGJNTVbZaOu91Jh23zXfaLnVKNy37aCg8QQ9d70S9vMHIKHMxaX6l9TFWHxUK0OxjmdrI4Q4Im3PBE9XUPa/1GzTcMU2XIFgtrhC0yOoTzzMsTZb6KWK0P1FEZrFxHcO5va5Ofl+wASyZ6sFUkAEgCLBykdq2DxWiDrTEjubkcCO2oKZ9BEC/Pi9aNPY X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(13023025)(13024025)(13017025)(13015025)(13018025)(8121501046)(5005006)(10201501046)(3002001)(6055026); SRVR:CY1PR03MB2377; BCL:0; PCL:0; RULEID:(400006); SRVR:CY1PR03MB2377; X-Forefront-PRVS: 0105DAA385 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR03MB2377; 23:I6ZeZD7tszgtzL0cG0aIOte1GgzF/yqivk2PSeAR/?= =?us-ascii?Q?6s4+VvGxbMHFiLHJ2yGNU+43a1/leN9SqBCF6SFBXs3/Tm5GPH/Xe9wXMN/1?= =?us-ascii?Q?pdA4TcTHDGweL4mDhAPT5v7FFuPXTckWg5/8L8qa/Z2HDKjwtsfnkb0XdBUz?= =?us-ascii?Q?sJfoPg4bC6PFboohFYeW8NOW3+pentgJyFyOL/rVIfQkv3rENbVUWIG20gv4?= =?us-ascii?Q?qY2gbjrcRHgOAxHlYL8RhkB0x0GjhuC7hw4vCtBlDGIEOE6a+pGb5S4EJd6R?= =?us-ascii?Q?PmhdqRsJFQYXZluaPoL3liPstS2touryVFR4z/88nmdoPEU5X1OOpuGdB4jh?= =?us-ascii?Q?/+IXXL9RIovxji8TGKkVrsz4nEHjk75JWeayPJvOLLf0MyDxqKl19gYTV5jH?= =?us-ascii?Q?Zfhk9sxAomVzBShvpOWKMH1AiVZSovMiHNaPu0e4phmHBydwZJ4dmXd19On4?= =?us-ascii?Q?m18YtWUy3arKfe8Jm1LjDeyvOs3LbpYR+ZTk6c/ZS8MJ+bEBKYIvQyyM+t7V?= =?us-ascii?Q?+GUOOzVscdMtoELhwL4rZ3RMlW/10GtotPwKdelTbsJwYeRXy2v9GDdgIC06?= =?us-ascii?Q?1A/k6Hw/ly77bkPsk2lE33cpoDtyDJgCI6hf5udP/lMHCeGGJdDGZ/EcydHZ?= =?us-ascii?Q?0jv7hzg0t9gjACuGpzJFL27dgOzQ8jFC+keSQnfxf4YTAb07MNFQLOIhalI8?= =?us-ascii?Q?p7TJi+WajReg3aGIAm8aDnjn1BaBDJFmvIVQ7WY5znYMwRhR60fWSOmrviID?= =?us-ascii?Q?uYGBYcyouXJ3tjf55DzX4kQmecYkeRROhiD3Pv1BHK2D3VxUgKR9k91HtqDv?= =?us-ascii?Q?PVa+fvdJBVCxtvneeGEH8DU2tlKW6fVxQH1mZrgj0QNCbB7xT8Fxi2w/yuqd?= =?us-ascii?Q?dCj9Ij6vkHCxssEOSEXMPhvI/mSGi5nIEr4a3Z42DUnCbHrxKJepuIh+voPz?= =?us-ascii?Q?V1TAJEK965KeDyfj0ugUMGzapRKpMURXYD1lfTmTBA9BOT4D4/3Nwx6d84mg?= =?us-ascii?Q?0h/sQ6EO1FKZjeDdLenhPSrb+tQkGx63Ig3Syp1zeDAYWWg3cWhUKKq3py8c?= =?us-ascii?Q?eO1dJXhHQbUevUrCqxJ1baUYi257gwU+cpbrBGSMfDlol6uUEAP2/c9+on9F?= =?us-ascii?Q?hTSTt9pbUNI5b7RZ/QLLV7wagGi2WoRWtlAGjrE+rsymfz8stCsKOhrSVz88?= =?us-ascii?Q?nyAza7KtOoU8rJdUNvscshtuLqdGf4if1Ad?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2377; 6:Ob9YtPfoD256GArUd7GYPdP/+z5hoaTcYrJQ/wdOkiMnIsWnyFfEqrZyG36JSehhloE7V8TyZJdGWfZN0aAj96IjyzutOt2e4nYDRju53ath5/wHCcbpE2rS/g6znYLV7UPObJxjdfeG4eCLZtfdcgH+xx+8Z81CIuiGCCxGJbjTE1Zw3mNSkFESzLh8geMxbeCKb5TqkqIH4rGq698oE+4O91piZ+q/+cqniopTu44dQjmJ99qneOqyZjKWopseiJuAeup5m6hOw9Ayg7v1GXlwLc6htNz1shGSARkUk+Uo4mcz5KuGW/iIvOX4tbsx; 5:5UH6Oxso33M7ziEvSBBb/RMSDwqdsIUpH929gbGSXYTaAPMSfUaNHmH/iQuMD+BqHBxiPdkG5R2kE7YMtuaeid77pNRSz3wKlJLbRU95FHJyXUb74F6NvqDBzz1vKJFasMnb59md8cH5vtllgTFyEznt9YSfABdnsHWiLpCWUdGgw8kBUhgdBcBEBgehh5kS; 24:m85W1uQzxmIT4N3ewIewYiJdB3+wQvvkqzv4AHCufqYfzuyRZuqCOymR9H1S9L/ycmylwv84VWtp3BjWauVUakVM/41iDXa+2Ub4HVb4DGA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2377; 7:3wMxQJxnFl0EEbwLxCUbf62x/B3xVSvr8ny7+cAfiB5e9L1JJk6w+A+HLJvdHxq0nXhqP/DokSvaBMiTCKrAUvtLmgpRqXdVMHVwOU3HMu5EU1IGt0ofQEVJHnaMRHhSHOXlX80cneNlmXRc9tgZNwHz+gqOtJwUG6HVBEIblQiKssbVT18SV9J1D6abBuJgAfNEeACl0iuLPl4LGmRKOk/iFVzVYGbt+dQQZFqUDqz6MwPGRP+pyWhEdDu4jX2tkoBbBq7rMl/t6Uv1HX41iStuZ8yeyCAUUtosyHg3VC8dYdSjMsmopDWysSUN8Irbt5johWJ1dj5OI4ClkiiL8LaaaKdn3fSQYxrK1kLaTM8= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Oct 2016 08:05:15.0763 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB2377 Cc: Priyanka Jain Subject: [U-Boot] [PATCH] driver: net: fsl-mc: Use aligned address for MC FW load X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Firmware of Management Complex (MC) should be loaded at 512MB aligned address. So use aligned address for firmware load. Signed-off-by: Priyanka Jain Signed-off-by: Prabhakar Kushwaha Signed-off-by: Ashish Kumar --- drivers/net/fsl-mc/mc.c | 62 ++++++++++++++++++++++++++-------------------- 1 files changed, 35 insertions(+), 27 deletions(-) diff --git a/drivers/net/fsl-mc/mc.c b/drivers/net/fsl-mc/mc.c index 1811b0f..c66340b 100644 --- a/drivers/net/fsl-mc/mc.c +++ b/drivers/net/fsl-mc/mc.c @@ -29,6 +29,7 @@ DECLARE_GLOBAL_DATA_PTR; static int mc_boot_status = -1; static int mc_dpl_applied = -1; +static u64 mc_ram_aligned_base_addr; #ifdef CONFIG_SYS_LS_MC_DRAM_AIOP_IMG_OFFSET static int mc_aiop_applied = -1; #endif @@ -87,12 +88,15 @@ void dump_mc_ccsr_regs(struct mc_ccsr_registers __iomem *mc_ccsr_regs) /** * Copying MC firmware or DPL image to DDR */ -static int mc_copy_image(const char *title, - u64 image_addr, u32 image_size, u64 mc_ram_addr) +static int mc_copy_image(const char *title, u64 image_addr, + u32 image_size, u64 mc_ram_aligned_base_addr) { - debug("%s copied to address %p\n", title, (void *)mc_ram_addr); - memcpy((void *)mc_ram_addr, (void *)image_addr, image_size); - flush_dcache_range(mc_ram_addr, mc_ram_addr + image_size); + debug("%s copied to address %p\n", title, + (void *)mc_ram_aligned_base_addr); + memcpy((void *)mc_ram_aligned_base_addr, + (void *)image_addr, image_size); + flush_dcache_range(mc_ram_aligned_base_addr, + mc_ram_aligned_base_addr + image_size); return 0; } @@ -224,7 +228,8 @@ static int mc_fixup_dpc(u64 dpc_addr) return 0; } -static int load_mc_dpc(u64 mc_ram_addr, size_t mc_ram_size, u64 mc_dpc_addr) +static int load_mc_dpc(u64 mc_ram_aligned_base_addr, size_t mc_ram_size, + u64 mc_dpc_addr) { u64 mc_dpc_offset; #ifndef CONFIG_SYS_LS_MC_DPC_IN_DDR @@ -246,7 +251,8 @@ static int load_mc_dpc(u64 mc_ram_addr, size_t mc_ram_size, u64 mc_dpc_addr) * Load the MC DPC blob in the MC private DRAM block: */ #ifdef CONFIG_SYS_LS_MC_DPC_IN_DDR - printf("MC DPC is preloaded to %#llx\n", mc_ram_addr + mc_dpc_offset); + printf("MC DPC is preloaded to %#llx\n", + mc_ram_aligned_base_addr + mc_dpc_offset); #else /* * Get address and size of the DPC blob stored in flash: @@ -270,18 +276,20 @@ static int load_mc_dpc(u64 mc_ram_addr, size_t mc_ram_size, u64 mc_dpc_addr) return -EINVAL; } - mc_copy_image("MC DPC blob", - (u64)dpc_fdt_hdr, dpc_size, mc_ram_addr + mc_dpc_offset); + mc_copy_image("MC DPC blob", (u64)dpc_fdt_hdr, dpc_size, + mc_ram_aligned_base_addr + mc_dpc_offset); #endif /* not defined CONFIG_SYS_LS_MC_DPC_IN_DDR */ - if (mc_fixup_dpc(mc_ram_addr + mc_dpc_offset)) + if (mc_fixup_dpc(mc_ram_aligned_base_addr + mc_dpc_offset)) return -EINVAL; - dump_ram_words("DPC", (void *)(mc_ram_addr + mc_dpc_offset)); + dump_ram_words("DPC", + (void *)(mc_ram_aligned_base_addr + mc_dpc_offset)); return 0; } -static int load_mc_dpl(u64 mc_ram_addr, size_t mc_ram_size, u64 mc_dpl_addr) +static int load_mc_dpl(u64 mc_ram_aligned_base_addr, size_t mc_ram_size, + u64 mc_dpl_addr) { u64 mc_dpl_offset; #ifndef CONFIG_SYS_LS_MC_DPL_IN_DDR @@ -303,7 +311,8 @@ static int load_mc_dpl(u64 mc_ram_addr, size_t mc_ram_size, u64 mc_dpl_addr) * Load the MC DPL blob in the MC private DRAM block: */ #ifdef CONFIG_SYS_LS_MC_DPL_IN_DDR - printf("MC DPL is preloaded to %#llx\n", mc_ram_addr + mc_dpl_offset); + printf("MC DPL is preloaded to %#llx\n", + mc_ram_aligned_base_addr + mc_dpl_offset); #else /* * Get address and size of the DPL blob stored in flash: @@ -323,11 +332,12 @@ static int load_mc_dpl(u64 mc_ram_addr, size_t mc_ram_size, u64 mc_dpl_addr) return -EINVAL; } - mc_copy_image("MC DPL blob", - (u64)dpl_fdt_hdr, dpl_size, mc_ram_addr + mc_dpl_offset); + mc_copy_image("MC DPL blob", (u64)dpl_fdt_hdr, dpl_size, + mc_ram_aligned_base_addr + mc_dpl_offset); #endif /* not defined CONFIG_SYS_LS_MC_DPL_IN_DDR */ - dump_ram_words("DPL", (void *)(mc_ram_addr + mc_dpl_offset)); + dump_ram_words("DPL", + (void *)(mc_ram_aligned_base_addr + mc_dpl_offset)); return 0; } @@ -364,7 +374,6 @@ __weak bool soc_has_aiop(void) static int load_mc_aiop_img(u64 aiop_fw_addr) { - u64 mc_ram_addr = mc_get_dram_addr(); #ifndef CONFIG_SYS_LS_MC_DPC_IN_DDR void *aiop_img; #endif @@ -377,13 +386,14 @@ static int load_mc_aiop_img(u64 aiop_fw_addr) */ #ifdef CONFIG_SYS_LS_MC_DPC_IN_DDR - printf("MC AIOP is preloaded to %#llx\n", mc_ram_addr + + printf("MC AIOP is preloaded to %#llx\n", mc_ram_aligned_base_addr + CONFIG_SYS_LS_MC_DRAM_AIOP_IMG_OFFSET); #else aiop_img = (void *)aiop_fw_addr; mc_copy_image("MC AIOP image", (u64)aiop_img, CONFIG_SYS_LS_MC_AIOP_IMG_MAX_LENGTH, - mc_ram_addr + CONFIG_SYS_LS_MC_DRAM_AIOP_IMG_OFFSET); + mc_ram_aligned_base_addr + + CONFIG_SYS_LS_MC_DRAM_AIOP_IMG_OFFSET); #endif mc_aiop_applied = 0; @@ -450,7 +460,6 @@ int mc_init(u64 mc_fw_addr, u64 mc_dpc_addr) size_t raw_image_size = 0; #endif struct mc_version mc_ver_info; - u64 mc_ram_aligned_base_addr; u8 mc_ram_num_256mb_blocks; size_t mc_ram_size = mc_get_dram_block_size(); @@ -478,7 +487,7 @@ int mc_init(u64 mc_fw_addr, u64 mc_dpc_addr) dmb(); #ifdef CONFIG_SYS_LS_MC_FW_IN_DDR - printf("MC firmware is preloaded to %#llx\n", mc_ram_addr); + printf("MC firmware is preloaded to %#llx\n", mc_ram_aligned_base_addr); #else error = parse_mc_firmware_fit_image(mc_fw_addr, &raw_image_addr, &raw_image_size); @@ -487,12 +496,12 @@ int mc_init(u64 mc_fw_addr, u64 mc_dpc_addr) /* * Load the MC FW at the beginning of the MC private DRAM block: */ - mc_copy_image("MC Firmware", - (u64)raw_image_addr, raw_image_size, mc_ram_addr); + mc_copy_image("MC Firmware", (u64)raw_image_addr, raw_image_size, + mc_ram_aligned_base_addr); #endif - dump_ram_words("firmware", (void *)mc_ram_addr); + dump_ram_words("firmware", (void *)mc_ram_aligned_base_addr); - error = load_mc_dpc(mc_ram_addr, mc_ram_size, mc_dpc_addr); + error = load_mc_dpc(mc_ram_aligned_base_addr, mc_ram_size, mc_dpc_addr); if (error != 0) goto out; @@ -569,10 +578,9 @@ int mc_apply_dpl(u64 mc_dpl_addr) struct mc_ccsr_registers __iomem *mc_ccsr_regs = MC_CCSR_BASE_ADDR; int error = 0; u32 reg_gsr; - u64 mc_ram_addr = mc_get_dram_addr(); size_t mc_ram_size = mc_get_dram_block_size(); - error = load_mc_dpl(mc_ram_addr, mc_ram_size, mc_dpl_addr); + error = load_mc_dpl(mc_ram_aligned_base_addr, mc_ram_size, mc_dpl_addr); if (error != 0) return error;