From patchwork Tue May 31 07:39:06 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shengzhou Liu X-Patchwork-Id: 628042 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 3rJlxl4hYkz9sXR for ; Tue, 31 May 2016 17:49:30 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 0FEDAA74F9; Tue, 31 May 2016 09:49:27 +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 hMnb_-cElwtS; Tue, 31 May 2016 09:49:26 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 2D96BA74D6; Tue, 31 May 2016 09:49:26 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 4120AA74D6 for ; Tue, 31 May 2016 09:49:21 +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 NJAKtMMh47lg for ; Tue, 31 May 2016 09:49:21 +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 na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0069.outbound.protection.outlook.com [65.55.169.69]) by theia.denx.de (Postfix) with ESMTPS id 735E4A7498 for ; Tue, 31 May 2016 09:49:16 +0200 (CEST) Received: from BN3PR0301CA0007.namprd03.prod.outlook.com (10.160.180.145) by BY2PR03MB207.namprd03.prod.outlook.com (10.242.36.154) with Microsoft SMTP Server (TLS) id 15.1.492.11; Tue, 31 May 2016 07:49:14 +0000 Received: from BL2FFO11FD017.protection.gbl (2a01:111:f400:7c09::166) by BN3PR0301CA0007.outlook.office365.com (2a01:111:e400:4000::17) with Microsoft SMTP Server (TLS) id 15.1.501.7 via Frontend Transport; Tue, 31 May 2016 07:49:13 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=none action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BL2FFO11FD017.mail.protection.outlook.com (10.173.161.35) with Microsoft SMTP Server (TLS) id 15.1.497.8 via Frontend Transport; Tue, 31 May 2016 07:49:11 +0000 Received: from titan.ap.freescale.net ([10.192.208.233]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id u4V7n8vf024840; Tue, 31 May 2016 00:49:09 -0700 From: Shengzhou Liu To: , Date: Tue, 31 May 2016 15:39:06 +0800 Message-ID: <1464680346-28821-1-git-send-email-Shengzhou.Liu@nxp.com> X-Mailer: git-send-email 2.1.0.27.g96db324 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131091545528023338; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(9170700003)(5001770100001)(77096005)(229853001)(47776003)(87936001)(2906002)(50226002)(5003940100001)(86362001)(8936002)(5008740100001)(85426001)(8676002)(19580395003)(81166006)(189998001)(92566002)(50986999)(586003)(105606002)(6806005)(19580405001)(36756003)(50466002)(104016004)(106466001)(8666003)(48376002)(4326007)(7059030); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR03MB207; H:az84smr01.freescale.net; FPR:; SPF:Fail; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD017; 1:/t9R7btQjGoSCtoTaWMGRY7hVSD3IfQqxZum+5C+rgBue41HbIcCROqD5MdvMjRYPVq5NgF8XDWG1AXQAwbXXu+r7okp8S5BeSbM4bWaJsCM55FXWRuAirc3VSfRlYDp9knucpjh/GZtaoJPa+8U93h3/K1UY4IBGU7Wjql1ayM0nisyXYkq4ACDg+w9GD7CnAjfqiqWZBI+Ro4Pl6oVxJhfzXTRUIQ8clfj5OvKieEpdyK2wpnRDDIki4A72tr6emc6l3pf0FmLI1cW8sfL8w3ETjIcpu0Ybw5pQXm+8iMutAeJ55qY2qfZ5tCF3pMSXQrT9FhqjxZ/vjI/tCsA+esYeWTMvxglEM7I2wb45K4d5oHhMi1wfzjKd8Yg9GmLZaU0wrjEG7HltoVrQn+Snz1MphAvSnellev3PmlE26AN8DqqyLYvACxSjjrJGxeR8NVnyiG+GVy40ha8HH2+JGapnNSP9NPBPwBCrWcHq7+qjkkDGgvNMdbg/MKb0dW81Q1RR4JTem3k2yxLawCc+VUMBiL9cb16XfIBgteriW5BIpavxAUxYoqDWyDpsH8+mREg4HZu1XSGIXqnxHNTh9nSpj/ROvELhTLNMmG5JsxXFBL1SMQEHcJEjSuoTtqoiSBFctwHXQWgiv9Jv6tjT7DcTRj2x+/gJaMCqNjxQ3R14OjMbO0hmOsd4n+vjHyI MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 0c613c33-b429-4dc3-2e22-08d389280ea5 X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB207; 2:nxABlT5d/pDnDZHCLzcxGI9HHC4IAvxltOJ1JbXdpBo88P7s0duLk7a4aDPBwqvXI4t7ipZWK4QZBexYMN0sf+NSlKEVFzvVI+Top5y486vilKmuIyc3zRvRexmp7sMMR78G6/MoS4XzQpxMouq7Yu6LafyjUwLkj3PGfOxCPtVpH72DI9WF1kQFK678XjRf; 3:35PUUTeklpY1hZk5GAaXpWoiydAOCTnAiWaXbNpWWcxbCSnbFNO0VgtnYeNoT3/k2HO8MkkFuXWz7oXoZ6UjkVqrt/skA9e2F5ZicbQXt/7khCaBnQhuhZLGRTvT+cnNrkXC+CXs76nLMLLGoQQjhnBbqs4/egLpgVzhfkl7CBPiHtGFybAWLToQwpGhPFFxk6FBU+O7WTyZynmTVFBsy7hZiq3MggUiTNmIFWjLsZw= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR03MB207; X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB207; 25:36sQVkPMJ+gHSnjiMz5MHcLv8+/aQ9IrLdVNusAlZQ2ub8ZazJuklpP3LzbY8FvcLAb3HOdSxWWPMrhvESq7MyFpo3BzmDEjO5y979uh32Punh3e8h9CV7nO62nGaZi9plllegy5rU2lDZIZfpHE984N45G1z7KSGXz4oO1wMURezg4uuGLBc4cOk9mTLAtdp+FW4f4sqX6YOgofjVHfXf0xTKijY2QAXZYcmYKTYmCCHz8EdfoMN9xGsLtmhhTCmikAarg7jJUTSR07e6+COd6Za5Ay/zcRa8LUhtLzao6uSuJt5wbud6uY7Fup/X2TyNb/Gfij/Wb35+syXXt7X2PAgVisgPgXy3dhfktVjhCocDCkDNSWXipowEk2Lfx8ApEWzAEZ63L9KTFhsfclgGqsNFY7HUAthSyomxdsIywn4o/7HCu9zAGH+atwjs1wbmJTBdZbdeGG+q7IUiAtmNUa0iBthlvN24HnBeFPtsH7kWq08TqSzSHHeNWnjdQ8np6N2R/SX6yy6fUwry8VczH/5Gb4v9Ek/tim9H7nvhjfb42YyhNt6fBW24E1SbZ87Qn9vBFZAHTdHr5phPiDkx61x/c+Ge8ZbYci6enLB6m5dDB9Wpe/S51HMd1DxIe56ShBSF7rV4n8UVC/YeeZOqQ+InB6rBMuvHXUDHdaH50dnWF9VZ1A724A3QxHCZFL70toOuNZ2+tw/dYI+I4M1SO5PpFdGAu1TfJyWyhFETDfonetrCisNHVOxIE/KSxcuK+g+ODdk0pH8dNcBC+w5Q== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(5005006)(13015025)(13024025)(13023025)(13017025)(13018025)(10201501046)(3002001)(6055026); SRVR:BY2PR03MB207; BCL:0; PCL:0; RULEID:(400006); SRVR:BY2PR03MB207; X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB207; 4:YodATLBykoJIODheezmD0Tt8ICoVhl5sVzpAt+3Q7FQ7v3eseCdsX96j48C00zKH88x7+jSflCTpIvKkmxlqgiZXi7XlKrvmdtGwtnicHALohICSYsSrTRmsK5w/0Krn34iJc0o1yHTXQdOL8WcU/UPGYldD5vziZAuhzFZjojN+ppi12Q4VW9jeuB6pVp8KnD0A8fvE5mH1bumLjJr/P81pvyaqDWxvqNYjvwMgxlxo4ZuviZ2IlZVa8cgGwIMSR/Y3T4kGwS5y21Y1gOl6mxA+KTE6KAdHBaoj6bR7hz1x9E9GMI52wS/RU7N3pvJ6R7J5W2TeyCijibGXHts5q6A8+trMrX4Z3XKmZea9TUEaAlXKfr9xdz1sNrMk3gZv3ixsRWkRHKhcWwdLUUAjCA3uLU1rQVIv74I3sZTLyAfjPgM5GcpBPcgJgLyR4h1/leQuPnK3v07nlp9V6eqvI3Klg2AvM0Yx4HIR93+phtGeKQfqSr3C83gQaQSJ1dCXT/rDSnkcvPLj71w7EZA+hA== X-Forefront-PRVS: 095972DF2F X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR03MB207; 23:B42S0J6xW6fMf7YEDv2XuuFIvV0I0eWv7a6Z10Y2ic?= =?us-ascii?Q?ObcmCqiGin/KXKIpvxpJZOXMpvp7jM2sz6L1mE7pR7E5OLizgb2Ds9YH7E7W?= =?us-ascii?Q?Hu5Onc6+aaq+DJD9vzua/vAur6C7/Lb9Tw6oq0uEcWZ+kgup/cHmLYmUUGY9?= =?us-ascii?Q?XsQIwjGJUbcW672+LnQ/r4pLenFC+a33KP3xQjI3e5gMZic7jvT5Acr1hLQ5?= =?us-ascii?Q?cBjzZXCbW7699k2C5858b1MlcaPYCasSGgy5lTJXJ/cGo/gt+iYw/+Gbm3o+?= =?us-ascii?Q?jVolbP7OlQjVHzP65pOmrgIkSRwq0/Vk1XUJKPoq3r5HiLqjYC5VL/7fYJIe?= =?us-ascii?Q?5rG1zJF+rFEGH3EwLDmrqNowKoEY4rlG5AyresK5Z2gG7o+ETfxUaWHJK/hW?= =?us-ascii?Q?H35VTO6wWNXOPRR5tz2UkrHSciatG3jy+9CJO/jGSx52qgwq4SH+kUAeYRh5?= =?us-ascii?Q?bvdfr1gGFzDazoLYKihp2w66EI69LXb2q38FEpXLD/q4s4piBiVW3e/f0hLS?= =?us-ascii?Q?WxEFPyku9WjlBcpTVUvkI6AG0pv7FDK9ZMUBMGhFlFcrtGoXgx/5p43b+WBp?= =?us-ascii?Q?75wpFTZ7kIgvWvSK+hEGmQCFdf8JzcwFjSKRmEb143N44tgt/BT3+goDxOed?= =?us-ascii?Q?lV9ZUtIhZrBOUdD5b63zcCUaQ/UqiikPbPPa1zuvVaBNg9kGtQeAler/FHg4?= =?us-ascii?Q?6Fmp4I+LZL7Yc82y8x7YoqZLYKXhyi5GRTAzBQTpF2EFXfZ+F3qTYGQKpfTA?= =?us-ascii?Q?iNLTbKcm75CHTaT8K4FLeCmjn3ba4fWmrB3NcSNygDoQrz8vF6D+OsWM3UqC?= =?us-ascii?Q?a/Ua+9T26uml54cXJDh3gFS4nSuxkQQrNcSkVmB/FLHYtA4jiurIwIQHQEnd?= =?us-ascii?Q?KQhYsrRQmjskWRf4hzbIKlHhPy/3WAa62mbrgFqrxw4pai/9UWLmZlSqJ7SW?= =?us-ascii?Q?DWm7CUiB+LpV55j1Dy4sozYVb0idjzwNsG5wAnReVQKwBJOSttOjWClpxrHk?= =?us-ascii?Q?hcmZbxFx2ipBauu6v/qk+o?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB207; 5:EGvQ9nzC0GGnz1gLaKlVQjSDCBo/8i58r0iKMVX7isCaPz8EUpik12294peOkVXHOxNgd1OObvdDlsUMGJaGi72K54ZgnHm/VoCU/i7pJ/d42BdUIEyxjrev0isa2yB8ebvu00hdS9fJeSLc5vSFS+ZhguLLAouf1KxoWwKysoE=; 24:D0LCPk1EWOEow9SFG2YTKKswl7DLvrig6bUJSmb6Ua9y5h0BIpEZ/n/d1j6zmFog4jHiXP7sk7pICTj2TukcDuwSd+dRwnF0xqn6cacEdxc=; 7:zroXo0icAXdm4UpkbfRPA27Bok8ZflRCRiVQXbTd2kLdqpRRhK5P4DbHdi/lxOcMVEyvsC6/OGrBtPvyb7GSZS3o2ASj2/8mQZVxePSW+tjMzgnDJye3DWBqe2bS0XiGhLcANiUUP2LBgKa3nd/1Cl9FTkQ5m1AeMNeobJfOSO2COaamynyepD8Hd4QqnAed SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2016 07:49:11.3359 (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.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR03MB207 Subject: [U-Boot] [PATCH] board/freescale: Use unified setup_ddr_tlbs for spl boot and non-spl boot 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" We should use unified setup_ddr_tlbs() for spl boot and non-spl boot to make sure 'M' bit is set for DDR TLB to maintain cache coherence. Signed-off-by: Shengzhou Liu --- board/freescale/b4860qds/ddr.c | 8 +++----- board/freescale/t102xqds/ddr.c | 5 ++--- board/freescale/t102xrdb/ddr.c | 4 ++-- board/freescale/t104xrdb/ddr.c | 7 ++----- board/freescale/t208xqds/ddr.c | 5 ++--- board/freescale/t208xrdb/ddr.c | 6 +++--- board/freescale/t4qds/ddr.c | 7 +++---- board/freescale/t4rdb/ddr.c | 5 ++--- 8 files changed, 19 insertions(+), 28 deletions(-) diff --git a/board/freescale/b4860qds/ddr.c b/board/freescale/b4860qds/ddr.c index eb10a6f..31b186e 100644 --- a/board/freescale/b4860qds/ddr.c +++ b/board/freescale/b4860qds/ddr.c @@ -179,15 +179,13 @@ phys_size_t initdram(int board_type) #if defined(CONFIG_SPL_BUILD) || !defined(CONFIG_RAMBOOT_PBL) puts("Initializing....using SPD\n"); - dram_size = fsl_ddr_sdram(); - - dram_size = setup_ddr_tlbs(dram_size / 0x100000); - dram_size *= 0x100000; - #else dram_size = fsl_ddr_sdram_size(); #endif + dram_size = setup_ddr_tlbs(dram_size / 0x100000); + dram_size *= 0x100000; + return dram_size; } diff --git a/board/freescale/t102xqds/ddr.c b/board/freescale/t102xqds/ddr.c index 2d4d10f..fa1394d 100644 --- a/board/freescale/t102xqds/ddr.c +++ b/board/freescale/t102xqds/ddr.c @@ -172,14 +172,13 @@ phys_size_t initdram(int board_type) #if defined(CONFIG_SPL_BUILD) || !defined(CONFIG_RAMBOOT_PBL) puts("Initializing....using SPD\n"); - dram_size = fsl_ddr_sdram(); - dram_size = setup_ddr_tlbs(dram_size / 0x100000); - dram_size *= 0x100000; #else /* DDR has been initialised by first stage boot loader */ dram_size = fsl_ddr_sdram_size(); #endif + dram_size = setup_ddr_tlbs(dram_size / 0x100000); + dram_size *= 0x100000; #if defined(CONFIG_DEEP_SLEEP) && !defined(CONFIG_SPL_BUILD) fsl_dp_resume(); diff --git a/board/freescale/t102xrdb/ddr.c b/board/freescale/t102xrdb/ddr.c index adf9fd5..b13692b 100644 --- a/board/freescale/t102xrdb/ddr.c +++ b/board/freescale/t102xrdb/ddr.c @@ -234,12 +234,12 @@ phys_size_t initdram(int board_type) puts("Initializing....using SPD\n"); #endif dram_size = fsl_ddr_sdram(); - dram_size = setup_ddr_tlbs(dram_size / 0x100000); - dram_size *= 0x100000; #else /* DDR has been initialised by first stage boot loader */ dram_size = fsl_ddr_sdram_size(); #endif + dram_size = setup_ddr_tlbs(dram_size / 0x100000); + dram_size *= 0x100000; #if defined(CONFIG_DEEP_SLEEP) && !defined(CONFIG_SPL_BUILD) fsl_dp_resume(); diff --git a/board/freescale/t104xrdb/ddr.c b/board/freescale/t104xrdb/ddr.c index cf79d2d..22d6a5f 100644 --- a/board/freescale/t104xrdb/ddr.c +++ b/board/freescale/t104xrdb/ddr.c @@ -124,15 +124,12 @@ phys_size_t initdram(int board_type) #if defined(CONFIG_SPL_BUILD) || !defined(CONFIG_RAMBOOT_PBL) puts("Initializing....using SPD\n"); - dram_size = fsl_ddr_sdram(); - - dram_size = setup_ddr_tlbs(dram_size / 0x100000); - dram_size *= 0x100000; - #else dram_size = fsl_ddr_sdram_size(); #endif + dram_size = setup_ddr_tlbs(dram_size / 0x100000); + dram_size *= 0x100000; #if defined(CONFIG_DEEP_SLEEP) && !defined(CONFIG_SPL_BUILD) fsl_dp_resume(); diff --git a/board/freescale/t208xqds/ddr.c b/board/freescale/t208xqds/ddr.c index f1aff54..f96470f 100644 --- a/board/freescale/t208xqds/ddr.c +++ b/board/freescale/t208xqds/ddr.c @@ -108,13 +108,12 @@ phys_size_t initdram(int board_type) #if defined(CONFIG_SPL_BUILD) || !defined(CONFIG_RAMBOOT_PBL) puts("Initializing....using SPD\n"); dram_size = fsl_ddr_sdram(); - - dram_size = setup_ddr_tlbs(dram_size / 0x100000); - dram_size *= 0x100000; #else /* DDR has been initialised by first stage boot loader */ dram_size = fsl_ddr_sdram_size(); #endif + dram_size = setup_ddr_tlbs(dram_size / 0x100000); + dram_size *= 0x100000; return dram_size; } diff --git a/board/freescale/t208xrdb/ddr.c b/board/freescale/t208xrdb/ddr.c index 053f128..f6c8ca3 100644 --- a/board/freescale/t208xrdb/ddr.c +++ b/board/freescale/t208xrdb/ddr.c @@ -101,12 +101,12 @@ phys_size_t initdram(int board_type) #if defined(CONFIG_SPL_BUILD) || !defined(CONFIG_RAMBOOT_PBL) puts("Initializing....using SPD\n"); dram_size = fsl_ddr_sdram(); - - dram_size = setup_ddr_tlbs(dram_size / 0x100000); - dram_size *= 0x100000; #else /* DDR has been initialised by first stage boot loader */ dram_size = fsl_ddr_sdram_size(); #endif + dram_size = setup_ddr_tlbs(dram_size / 0x100000); + dram_size *= 0x100000; + return dram_size; } diff --git a/board/freescale/t4qds/ddr.c b/board/freescale/t4qds/ddr.c index 62d58c5..d533924 100644 --- a/board/freescale/t4qds/ddr.c +++ b/board/freescale/t4qds/ddr.c @@ -117,13 +117,12 @@ phys_size_t initdram(int board_type) #if defined(CONFIG_SPL_BUILD) || !defined(CONFIG_RAMBOOT_PBL) dram_size = fsl_ddr_sdram(); - - dram_size = setup_ddr_tlbs(dram_size / 0x100000); - dram_size *= 0x100000; - #else /* DDR has been initialised by first stage boot loader */ dram_size = fsl_ddr_sdram_size(); #endif + dram_size = setup_ddr_tlbs(dram_size / 0x100000); + dram_size *= 0x100000; + return dram_size; } diff --git a/board/freescale/t4rdb/ddr.c b/board/freescale/t4rdb/ddr.c index 27b37b5..230f031 100644 --- a/board/freescale/t4rdb/ddr.c +++ b/board/freescale/t4rdb/ddr.c @@ -110,13 +110,12 @@ phys_size_t initdram(int board_type) #if defined(CONFIG_SPL_BUILD) || !defined(CONFIG_RAMBOOT_PBL) dram_size = fsl_ddr_sdram(); - - dram_size = setup_ddr_tlbs(dram_size / 0x100000); - dram_size *= 0x100000; #else /* DDR has been initialised by first stage boot loader */ dram_size = fsl_ddr_sdram_size(); #endif + dram_size = setup_ddr_tlbs(dram_size / 0x100000); + dram_size *= 0x100000; return dram_size; }