From patchwork Mon Jan 30 10:38:32 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Siva Durga Prasad Paladugu X-Patchwork-Id: 721388 X-Patchwork-Delegate: jh80.chung@samsung.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 3vBmTF6HM7z9s1h for ; Mon, 30 Jan 2017 21:53:21 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=xilinx.onmicrosoft.com header.i=@xilinx.onmicrosoft.com header.b="hrBXLIkC"; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 340794ABD8; Mon, 30 Jan 2017 11:53:19 +0100 (CET) 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 hTmjEj4Ar0wq; Mon, 30 Jan 2017 11:53:18 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 7DD6C4AAA7; Mon, 30 Jan 2017 11:53:18 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id A17F34AAA7 for ; Mon, 30 Jan 2017 11:53:13 +0100 (CET) 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 JWZdLSRe-1jB for ; Mon, 30 Jan 2017 11:53:13 +0100 (CET) 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 NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0056.outbound.protection.outlook.com [104.47.36.56]) by theia.denx.de (Postfix) with ESMTPS id 0B3FA4A99B for ; Mon, 30 Jan 2017 11:53:09 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=KMn23SeLsrFoAa621jWRL85+ShNX1Pbx7G1Aoz1Zjss=; b=hrBXLIkC07pqgqhWDUK5BSiZMGSdD7hQJTktsqV5fEs7nIBnD9DHzuQQWLLvYOLBHnVxokAFqxFIbNPe6ce8VkhJUE6ji9mxRkAy8i+hKaIO+naJUuTOEtE/vbfm1bKeNVTn5NfP9kutGyiC1r9ssY96eWTpnciix0pNmeaSWUE= Received: from DM5PR02CA0072.namprd02.prod.outlook.com (10.168.192.34) by DM2PR02MB1385.namprd02.prod.outlook.com (10.161.143.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.860.13; Mon, 30 Jan 2017 10:38:52 +0000 Received: from CY1NAM02FT043.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e45::204) by DM5PR02CA0072.outlook.office365.com (2603:10b6:3:39::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.874.12 via Frontend Transport; Mon, 30 Jan 2017 10:38:52 +0000 Authentication-Results: spf=pass (sender IP is 149.199.60.100) smtp.mailfrom=xilinx.com; lists.denx.de; dkim=none (message not signed) header.d=none;lists.denx.de; dmarc=bestguesspass action=none header.from=xilinx.com; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.100 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.100; helo=xsj-pvapsmtpgw02; Received: from xsj-pvapsmtpgw02 (149.199.60.100) by CY1NAM02FT043.mail.protection.outlook.com (10.152.74.182) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.874.2 via Frontend Transport; Mon, 30 Jan 2017 10:38:50 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66]:59326 helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw02 with esmtp (Exim 4.63) (envelope-from ) id 1cY9MC-0004fC-Ud; Mon, 30 Jan 2017 02:38:44 -0800 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1cY9MC-00048y-Qh; Mon, 30 Jan 2017 02:38:44 -0800 Received: from [172.23.37.99] (helo=xhdsivadur40.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1cY9MA-00041m-9V; Mon, 30 Jan 2017 02:38:42 -0800 From: Siva Durga Prasad Paladugu To: Date: Mon, 30 Jan 2017 16:08:32 +0530 Message-ID: <1485772712-4653-16-git-send-email-sivadur@xilinx.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1485772712-4653-1-git-send-email-sivadur@xilinx.com> References: <1485772712-4653-1-git-send-email-sivadur@xilinx.com> X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.1.0.1062-22854.006 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.100; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(39850400002)(39410400002)(39860400002)(39840400002)(39450400003)(2980300002)(438002)(199003)(189002)(5660300001)(4326007)(47776003)(36756003)(9786002)(189998001)(81156014)(81166006)(2906002)(305945005)(48376002)(50466002)(33646002)(54906002)(50226002)(356003)(4001430100002)(50986999)(76176999)(8936002)(626004)(110136003)(92566002)(6916009)(2351001)(38730400001)(39060400001)(106466001)(77096006)(575784001)(63266004)(107886002)(36386004)(2950100002)(8676002)(5003940100001)(6666003)(107986001)(5001870100001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR02MB1385; H:xsj-pvapsmtpgw02; FPR:; SPF:Pass; PTR:xapps1.xilinx.com,unknown-60-100.xilinx.com; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; CY1NAM02FT043; 1:xgPtBUYGUCvAWiL7f0TjTOxC7LLmdYWW+CXwPYVSSk9inHM4vGHkkoab6Ua8lyYeTOsMW03u0yqPMpoYquoIFRvKGec8QE8YpqMsQpGSWhBco1RjwZ3QbYONV0tGBupswTJ14vJhPMf7YoSpaZJ/9UR8PjRR/rmJVjPL8HWAivFRtiaYsJgBsaAU/82EmJp48sWy4W3TEhzufq0fTCEK/WLiZTyWIJfzGQvhdb1g/R3tHJmqy6kjTFw+LdMw4gAWzRVWpv/31tYhFoa0keQYXADWP8fusM3xasVQ72GIRfE/qDoNyjrPRIFlDUMzzHwz6/RNAuWMHwaIrWw/Zjj+OFaNZmUbSrUliijzozjv/z53sw9BvBQ4HoZIilc1Be6rexfSfXrvoWzdfcrbUNeD2nxeyVNJKEE2s/KT4A5JofoPVZ6e7L3E+SzX5iUzyrGKu2Me5GWJJe77AKl0ygk/3p7VZHDAnMwX5HeTPVOdsqlk28zaQm7HHwC1fR6VcqFeHSTbN2qTcmXsb8ArB7nV5H/+B2wkaOb5NtmcXXxAOA8= MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 00147241-0a31-4078-5373-08d448fc2eee X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002); SRVR:DM2PR02MB1385; X-Microsoft-Exchange-Diagnostics: 1; DM2PR02MB1385; 3:Rvc7yHWrYpu0wW7o4LbYDhr9sbZ99qjMlwlXxVVZu/EiDEqdyXeud8xLMTIBUuQvU+HOPltp2Jg4fGXZ1mToD5uBSDq6PSPK+C+xNQIi6L1KqDsJvpVIKLlYvja5CETznT7LVxEYpkFT07gjtaEVF5CT4g6pHBOXa67EsoqH5wc9wbQygoPc2CaUzSmin7VqLLqzpCGBmYLAMvU4XpvQFU224Exw5zU6Fp9fjdCYUSqvx/3Be9QAWj6j7xShPIzNXxpxHfDUUYj1jRul2FavpEtm0EIkYAvh9y8F6Ea3EC25EkVH6iosZcFjo+MwsUj13ayO/YK+NdO2o7v5rjxRFyIKzBkuN5+z/iZAIV26DcYdyHSka1q7cz/XWuGzpQ1lDayCmN8kjzorKAoY9LcWuQ==; 25:naGlif/4hUIp70sRwpi9ch/rN0bBHhV5uuHlDRL1JGsjeERKxNREdxFkT8p2ehxWBa41VCem+eqsxb0eWG6E0dftX6GN3koQZUJU04GuYPosl/sEL3j8GKHiT4mzK5npLyolbtYVvbwQ3AR+IC6EDObSubTEFnVy01YqFltlsEfdNCEZ5bSQKKjEXo9MgGCUdgfKA5vuvfNBDZ7IfjF5NzOZH9poORzqpgSfoK1O3DsAALvx4f4Yj+GO8l6k7wqayIkE1l5VR1xJcs9qhasKMz9qDegiYtrC+QnMNGZYiv7gvOqqv0JTSv5VbyC/8QOdnYxKyeWJMR4H6wne29K2GTDenZ1Qm8pHBHL5YutYr1OdM8FbSokhWPR4GgD41tJkI4jeJX2O/oDlYbWcsUsNfb9IwtVDvmUq6tB/c6BPy38T/GWQeyRNOTU0oW4hZgetEPpVd7DqbAl5ANo3uF57gA== X-Microsoft-Exchange-Diagnostics: 1; DM2PR02MB1385; 31:LiI16Pl4Xd8Cc0/tz4RlZq2rSJ6v9HOd8cA8jQVOzGxX7vCRa7NYk7DCLj9Y8Fh7eaaH+XuMeO5AMlRlFP0cikqC4BgVzJLIL4Ggw9Dzk/lLHpR+Z9pdYiTmhhCg8DcOX60Ubzi5OWchmVC4HqzcfEKxDVd592LRxZxILgn17c0pX+IftJyGdGa1Gu6L0wdZ3hOZFLV4H0zsqWiqcmCFG32F23rF1v7eZleYP8YvXV2mSuNisynmCiM+3Giu1cLOkz85DKsxIMbUBNb95OuVTw==; 20:2ckIfK4YBeGrmYQ7pzSlNdUhB1CRS5yNGMO24gFiG5Q5YDnDqujQAQMx+cR8okJzVZR+iRH51aEhcfak6SaKsgbFIUrJYcvrAkuhBnM7/fCQxRchASaWe+nNLQYEmma/q8v4lSCLvfu6Z4Efa1iOXFVSRIZmOKjaWouAKqjyWoVqlyUJYKYytU+4kN7Du8zfTlsJddR/r840Xgyw/h0toiK1l1HZ0YGt44ZwInMyjf1NINi5cLM19HZDkig9d/EKwKMSqtmLLlqLrav9v3IiNHB2w46dJxyIXQIgMRb6YyUuRHUYfsDJcQQESESdN+HUvQkMNBBcGNxztisjqraQoDUr0oRyROoSAXPbmjQaTQ2ZLflMKxNOzJt4KdSOurK6SjqzZ1YqyRJ1kqqs3/XzBXafZCPrP+GbFoQqcuNb/sjfYSatZjaW3YnAn0htK55VGdv1K/lNt1Z6bFNoed5FkxnWxYftOZZrJsOP0PyGXyf+bQSBxXhWwc0OtLoNQEl/ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(192813158149592); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(13023025)(13017025)(13015025)(13024025)(13018025)(8121501046)(5005006)(10201501046)(3002001)(6055026)(6041248)(20161123560025)(20161123564025)(20161123562025)(20161123555025)(6072148); SRVR:DM2PR02MB1385; BCL:0; PCL:0; RULEID:; SRVR:DM2PR02MB1385; X-Microsoft-Exchange-Diagnostics: 1; DM2PR02MB1385; 4:1yXxFe+40EwFTNajRWAXjVF3CNWMd9mWPWUzr1AE8J9swLvnvHeU+smZEX3Qs7KzdJ3z94u8DKEd8BaJzFAo/Xd+LdV9BnNa+T+tMUX0fdnGT2I866Zj+o8iZ5+E3EOjTUrwqNDiNEyQF5dNKBP775ogsQsATz7NVJOYtRm94zfdBe48atD/19/Wln1XEVQZQLgjS8ysDQSXoKxEM1KfoeMWybft3hwDfnJ7xwJ1cGATnJG33hV8GCO+D/Ym4rFsEdJxSbw05ykfcVUEInC+9bm/EYr6Fry9sMI3mwtowaVJCxEygsMp07gnMYgDlCnr5x2AzzQgXL+r6i1MRusH3WpMsFBVAtPLE5uZ9bOrodxSzkhvJJWSJU5gD1h2+RxqnOlXZR/ZhH4i/x0jLeAVkeAqe9rnup4tcyGyQRfWWc6HhuZiIyOsWovyQV1dom07uCy8ZO6GmEP7NlEZRWNd9NzqVMwAaWlRXONQDj1HU3ZVinKr/QTcLCrwshzt03hCZ96UzNO3j8a1h2u6MDoSALZ9XnDNb2Gy/E5UsqGDOW16qUzXqhXm3cSd2PTOL9YPXNmfPDz7RHISMYB3HJ4ff3vmCnpvvi4YlN3B+pQE309KlyF3xWj6amT1iKb/Nm1leuAHitC+GkhyRVk0LKc+tDuCnCCpDI3YtMs//KS/PL4OuXqrh8zsc5IBAfD1XYi1Tzc2U00vJ5q8kutevhq64RCZKsLRdF/xaS3qG2VGGz0= X-Forefront-PRVS: 0203C93D51 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR02MB1385; 23:SLcnVSxXlqxf0iGptuJcgqgnewgxHxFb8yGWQ2nER?= =?us-ascii?Q?yaOiBhSTQOkTvTu0kE2peSUeUAA/C6JuIoQDtFauHMtItvtP2clWktTO9SFs?= =?us-ascii?Q?DrA53dbHfe7Fum5LfFaEexC7Oo5RR7h3N+C4/7onMLhsFFOHP2eyEKfhq3xT?= =?us-ascii?Q?ICLCFNa6c774ZEikXhKCQAcjnlcn/Cg84D0REpEV2W/ROI6J34Sfzrc4cwcm?= =?us-ascii?Q?6rPJBGDJfOUaN7eJvbGyDJbHQCQ3+0oHSxzsCNRlrVd0FSHAl7cMnUeETEpL?= =?us-ascii?Q?GhxkFT339JBHqrWuRQ9nnRjng0oBdKNyGP/ChmYnsaxmW097UbH4Akc9prFV?= =?us-ascii?Q?3GxT2Wd2fbTLER1Zl1NRq2qs/m3c+sxrrlkOjXU+U0WBkAVEiSrx++CBPezc?= =?us-ascii?Q?tR3EVnkvtjCODNSjj+bde7+AnrEqjr+RPwbXPKHvRRVCMC9zUkpHThalUfDB?= =?us-ascii?Q?l/XDmZvzJ59Lmib/g6pssg0XjhbjNFiRzkVc1wToVm05MD0/zyjj2K7xrVzA?= =?us-ascii?Q?XmydU1sfnm2SMgNEQUAeDI3NvC1FMLfcntQdZETcTXEaWstgnApaajMkUEPe?= =?us-ascii?Q?n7Xt/Re1CMbHXnDYCLH3vRJhSJytS3TCuVh+I57ZdcVLJjlSjCq6SyEzipTd?= =?us-ascii?Q?F9Q4QeWxMw5nZ+dExqxEIPGeIPpRFfseY/Umg0xfjxcGSBGp+mnkZGDJN08W?= =?us-ascii?Q?xXtZTxzKiX6UBdoqDVCKbt3pEnvuhhWdn6MDrSfZMLoiS/igNCZvO8CKDh0p?= =?us-ascii?Q?XBjouQgIA7GHGxuGs6b7I1JYhRf4r/RQl2el9yWbj/R2xFO+9bNaLymaKq8W?= =?us-ascii?Q?ahymA8NQefVRzhOiqowp3IgItWok3f06PZm5M7nWwJrk4w/ZtpcK+0tQRdPA?= =?us-ascii?Q?YA25KfSTCYG1Kb/CeUKoeGny3ZOVDhKROZPAig2Bj7F0g+olpioFufO8cSph?= =?us-ascii?Q?RO8G0hsZEoQCghpji2T2V8ub1icCwqz0/LxGNOgZ0kQ9xtC92VKRMPYXT/9L?= =?us-ascii?Q?37pmt0XHHE9vhaBa+jFO6aomW0tXw+tV6IBTbM3ksZ8txjNICK2JStjR9xl8?= =?us-ascii?Q?kePd4x2+BRfk/pxAItPCMNTPi7KDW/j+qjmIL3fflG2IhboqFrTBAP5LyHE5?= =?us-ascii?Q?KO9ceTjq0jJZbeGssPNiR7akqJRw3c+EoIkioeDUtj5CWQb3BSy0V/W/h6yf?= =?us-ascii?Q?8fprlbbzA2ggdTNraak5B7YUlmnXwv0TTXrsCuYSMKOKcMP0BI+RCPo9CtUg?= =?us-ascii?Q?RCIbsNCigxxm0bEC5U=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR02MB1385; 6:6xB3U/Y9cE3KxDpQGQk8A/OHWavH+gyO7j5APKddfsH38kDMEKjtRpOiCSaI6j7HXKJo/DwmD+SySJDHKh4eDZMC63b+Rd0ZMTHMnt37jwvRIvSvLJ5m5sKlBoE5w1Kf+0pdB8M/CYLj7S1S0zNscXMxVlkV0ihd6+V5e+GQjNKE3vPUkjxPYPSTJp5bfk82krRRgUSNUGiekeHCNf+YlQ7M1ruAtl8QoLyBC9SBPV09sd30v0e2D9nC8mcE796gz6n3bHHJtN/zDtemsDRARkVq+FG2B1ns+v1QoFbtzN6l0PK2VshF0R1mkemsbwxDmCtpdn9Ts1OgSFNvHhxxuDM+/JDCzHq9GGzJMUaesAzUCP69n5z2WZcp6Q0l7++guLVQiUgbjQERV3icitGnMbJ1Ude3nQB10XrMr3/VWBQ9/bFOXHZPVfN5/ASrp/LP; 5:x0iHibZi6tmRH+VcAxGWyIsoMnaenfK9geIwwkXZIH3U8DQNGZJR80a8HYIU14fGd+52LdJ9AXw+SAw7MOyXEnH+5CvCo4/1/SDhbSy9WPIttl9zuUIAa7Zp1dlXHYqnWkD867ZirbLtmu2D9KODjA==; 24:SpKuO+8X7wuc/4l8CRcGCnKy8Tb+jd+HlWPW/YvimrQ2iR1p8igdTFj6eOSbHFKBOM7JumVosAOlNfEmpTJrrlfro13cjcuSV/vu2ykvgnM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR02MB1385; 7:1ufgMg4Z6kumjopPZ+EMcTbe2xLkI1P9ngJ9vRDzKnL3duJocik18wS3XGzb1OSJJZmocJvnvEtZT+AlNSopiWskufQJtvaIjHeW9j4J3YlEIFYRSbuZrWYP4kDtshJSDzNhCB4ez3xufA+Eautitc1ArQ5unVKQRfgSj18ZPtt9v2tEs1ueRx436t0uVVybNewxq3Wa2bymQwtaaEfo+sNhTUE49nSfAjnYQzOvMH2yPoKFCkkeZN+RT12Pn3Qrc9/9MVU068dIxVxKjFMStR/rBJ4BB8U7cf5XMwXEA5MHOtTDP8WpeNXYHCRDZR1RBEy0ISXFBfHvrAA1zE3HNG5m2g10Iwpe1TBmSLgy2uf95xuoklWuoYQ93vkii/9G74JAAFQrz7FApEVXx5cvXBdKoKZ9d9U3XfUYy5Iafw01/Zqf6bt02fEmpbNfm0MZPFuxaghZBDN7NE8HhIcu7g== X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2017 10:38:50.6005 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.100]; Helo=[xsj-pvapsmtpgw02] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR02MB1385 Cc: afleming@gmail.com, michals@xilinx.com, Siva Durga Prasad Paladugu Subject: [U-Boot] [UBOOT v2 15/15] mmc: Change frequency while accessing to boot partition 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" Boot partition is not supported in HS200 mode, hence change clock to high speed while accessing boot partition and revert back when partition is switching to other than boot partition Signed-off-by: Siva Durga Prasad Paladugu --- Changes from v1: - Added this in series as per review comment --- drivers/mmc/mmc.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ include/mmc.h | 2 ++ 2 files changed, 60 insertions(+) diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index 02c0408..be6003f 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -621,6 +621,9 @@ static int mmc_change_freq(struct mmc *mmc) cardtype = ext_csd[EXT_CSD_CARD_TYPE] & 0x3f; + if (mmc->forcehs) + cardtype &= ~EXT_CSD_CARD_TYPE_HS200; + if (cardtype & EXT_CSD_CARD_TYPE_HS200) err = mmc_switch(mmc, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_HS_TIMING, @@ -685,10 +688,65 @@ static int mmc_set_capacity(struct mmc *mmc, int part_num) return 0; } +static int mmc_boot_part_access_chk(struct mmc *mmc, unsigned int part_num) +{ + int ret; + + if (((part_num & PART_ACCESS_MASK) == PART_ACCESS_BOOT0) && + (mmc->card_caps == MMC_MODE_HS200)) { + mmc->forcehs = 1; + ret = mmc_change_freq(mmc); + if (ret) + return ret; + + mmc->card_caps &= mmc->cfg->host_caps; + if (mmc->card_caps & MMC_MODE_HS) { + if (mmc->card_caps & MMC_MODE_HS_52MHz) + mmc->tran_speed = 52000000; + else + mmc->tran_speed = 26000000; + } + mmc_set_clock(mmc, mmc->tran_speed); + } + + if (((part_num & PART_ACCESS_MASK) != PART_ACCESS_BOOT0) && + mmc->forcehs) { + mmc->forcehs = 0; + ret = mmc_change_freq(mmc); + if (ret) + return ret; + + mmc->card_caps &= mmc->cfg->host_caps; + if (mmc->card_caps & MMC_MODE_HS200) { + mmc->tran_speed = 200000000; + } else if (mmc->card_caps & MMC_MODE_HS) { + if (mmc->card_caps & MMC_MODE_HS_52MHz) + mmc->tran_speed = 52000000; + else + mmc->tran_speed = 26000000; + } + + mmc_set_clock(mmc, mmc->tran_speed); + + if ((mmc->card_caps & MMC_MODE_HS200) && + (mmc->cfg->host_caps & MMC_MODE_NEEDS_TUNING)) { + ret = mmc_execute_tuning(mmc); + if (ret) + return ret; + } + } + + return 0; +} + int mmc_switch_part(struct mmc *mmc, unsigned int part_num) { int ret; + ret = mmc_boot_part_access_chk(mmc, part_num); + if (ret) + return ret; + ret = mmc_switch(mmc, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_PART_CONF, (mmc->part_config & ~PART_ACCESS_MASK) | (part_num & PART_ACCESS_MASK)); diff --git a/include/mmc.h b/include/mmc.h index e0b5510..6f9a41c 100644 --- a/include/mmc.h +++ b/include/mmc.h @@ -282,6 +282,7 @@ #define MMCPART_NOAVAILABLE (0xff) #define PART_ACCESS_MASK (0x7) +#define PART_ACCESS_BOOT0 (0x2) #define PART_SUPPORT (0x1) #define ENHNCD_SUPPORT (0x2) #define PART_ENH_ATTRIB (0x1f) @@ -522,6 +523,7 @@ struct mmc { #endif u8 is_uhs; u8 uhsmode; + u8 forcehs; }; struct mmc_hwpart_conf {