From patchwork Fri Dec 28 15:52:52 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amar X-Patchwork-Id: 208500 X-Patchwork-Delegate: promsoft@gmail.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 4A4652C00D8 for ; Sat, 29 Dec 2012 02:32:18 +1100 (EST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id C1B794A0FE; Fri, 28 Dec 2012 16:31:52 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at theia.denx.de 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 meIvHkNv1Kho; Fri, 28 Dec 2012 16:31:52 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 83C0E4A10A; Fri, 28 Dec 2012 16:31:27 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 096DE4A10C for ; Fri, 28 Dec 2012 16:31:20 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at theia.denx.de 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 ZO25JpSf08Uo for ; Fri, 28 Dec 2012 16:31:18 +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 mailout2.samsung.com (mailout2.samsung.com [203.254.224.25]) by theia.denx.de (Postfix) with ESMTP id DDB4D4A0B0 for ; Fri, 28 Dec 2012 16:31:03 +0100 (CET) Received: from epcpsbgm2.samsung.com (epcpsbgm2 [203.254.230.27]) by mailout2.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MFQ00FKXZ2XGR70@mailout2.samsung.com> for u-boot@lists.denx.de; Sat, 29 Dec 2012 00:30:57 +0900 (KST) Received: from epcpdlpp24 ( [172.20.52.124]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id 87.EE.12699.03BBDD05; Sat, 29 Dec 2012 00:30:57 +0900 (KST) X-AuditID: cbfee61b-b7f616d00000319b-d5-50ddbb30c81a Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id E6.EE.12699.03BBDD05; Sat, 29 Dec 2012 00:30:56 +0900 (KST) Received: from chrome-ubuntu.sisodomain.com ([107.108.73.106]) by mmp2.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0MFQ008MSZ2SO710@mmp2.samsung.com> for u-boot@lists.denx.de; Sat, 29 Dec 2012 00:30:56 +0900 (KST) From: Amar To: u-boot@lists.denx.de, jh80.chung@samsung.com Date: Fri, 28 Dec 2012 10:52:52 -0500 Message-id: <1356709972-26549-10-git-send-email-amarendra.xt@samsung.com> X-Mailer: git-send-email 1.8.0 In-reply-to: <1356709972-26549-1-git-send-email-amarendra.xt@samsung.com> References: <1356709972-26549-1-git-send-email-amarendra.xt@samsung.com> DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrFLMWRmVeSWpSXmKPExsWyRsSkRtdw990Ag2tRFm/3drI7MHqcvbOD MYAxissmJTUnsyy1SN8ugSvjwrVp7AVXJCpurNnG3sD4UKiLkZNDQsBE4sXcBcwQtpjEhXvr 2boYuTiEBGYxSsycDZMwkZh94zQTRGI6o8Tvl2ugnGVMEstOtwA5HBxsAqoSvxbbgzSICBhI TH+ynRUkzCxQIPFstxhIWFjAUeLOs09MIDYLUPWKLV/YQWxeAU+Jtf0vWCF2yUl82PMILM4J FH/0bBHYDUICHhJXN+1ig+gVkPg2+RALyHgJAVmJTQeYQa6RELjOJnH00RaomyUlDq64wTKB UXgBI8MqRtHUguSC4qT0XCO94sTc4tK8dL3k/NxNjMAAPP3vmfQOxlUNFocYBTgYlXh4F/Xc CRBiTSwrrsw9xCjBwawkwtvXfDdAiDclsbIqtSg/vqg0J7X4EKMP0CUTmaVEk/OB0ZFXEm9o bGJuamxqaWRkZmqKQ1hJnLfZIyVASCA9sSQ1OzW1ILUIZhwTB6dUA2Pv1B237FOLCwME20Wn zdW4pLKKWyWn90HetShuA06RCw8qir8wLJM+sZgzeb+RaHeMycnJGjkBDe/YHVPtz65xC5kl 6Hvn97l0/U8Fvzc+NnA1f+FQd8KyW4wjgj9zStFrj4rQr1FP9ISXbZ3B+8llW/fxf/t9Arc5 75GpnqojF72h6eXVf0osxRmJhlrMRcWJAG+6gI9tAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupikeLIzCtJLcpLzFFi42I5/e+xoK7B7rsBBmdvalu83dvJ7sDocfbO DsYAxqgGRpuM1MSU1CKF1Lzk/JTMvHRbJe/geOd4UzMDQ11DSwtzJYW8xNxUWyUXnwBdt8wc oLFKCmWJOaVAoYDE4mIlfTtME0JD3HQtYBojdH1DguB6jAzQQMIaxowL16axF1yRqLixZht7 A+NDoS5GTg4JAROJ2TdOM0HYYhIX7q1n62Lk4hASmM4o8fvlGiYIZxmTxLLTLUAOBwebgKrE r8X2IA0iAgYS059sZwUJMwsUSDzbLQYSFhZwlLjz7BPYTBag6hVbvrCD2LwCnhJr+1+wQuyS k/iw5xFYnBMo/ujZImYQW0jAQ+Lqpl1sExh5FzAyrGIUTS1ILihOSs810itOzC0uzUvXS87P 3cQIDvBn0jsYVzVYHGIU4GBU4uFd1HMnQIg1say4MvcQowQHs5IIb1/z3QAh3pTEyqrUovz4 otKc1OJDjD5AV01klhJNzgdGX15JvKGxibmpsamliYWJmSUOYSVx3maPlAAhgfTEktTs1NSC 1CKYcUwcnFINjCyRBizbAoPFdu64+O3Hh6/Hzqu73/tg9ad3zgNv+8oaea0QhydBPuvfu6z/ stgs8/b/BzfMzh0IE7y4wG/WSs8TRS3hn/P8jwjcFEh4oHwwZJm06mKzuPdGCRe3aGx69beg U0fZ+nZS6NGFN7heXNj/bMUa3jqFcME5aTe5f3Z/fTBjrli6w1MlluKMREMt5qLiRADy0y/r nQIAAA== X-CFilter-Loop: Reflected Cc: afleming@gmail.com, patches@linaro.org Subject: [U-Boot] [PATCH 9/9] COMMON: MMC: Command to support EMMC booting X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: u-boot-bounces@lists.denx.de Errors-To: u-boot-bounces@lists.denx.de This patch adds commands to open, close and create partitions on EMMC Signed-off-by: Amar --- common/cmd_mmc.c | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 84 insertions(+), 1 deletion(-) diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c index 62a1c22..355ab8e 100644 --- a/common/cmd_mmc.c +++ b/common/cmd_mmc.c @@ -248,6 +248,85 @@ static int do_mmcops(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) curr_device, mmc->part_num); return 0; + } else if ((strcmp(argv[1], "open") == 0) || + (strcmp(argv[1], "close") == 0)) { + int dev; + struct mmc *mmc; + + if (argc == 2) + dev = curr_device; + else if (argc == 3) + dev = simple_strtoul(argv[2], NULL, 10); + else + return CMD_RET_USAGE; + + mmc = find_mmc_device(dev); + if (!mmc) { + printf("no mmc device at slot %x\n", dev); + return 1; + } + + if (IS_SD(mmc)) { + printf("SD device cannot be opened/closed\n"); + return 1; + } + + if (strcmp(argv[1], "open") == 0) { + if (!(mmc_boot_open(mmc))) { + printf("EMMC OPEN Success.\n"); + printf("\t\t\t!!!Notice!!!\n"); + printf("!You must close EMMC" + " boot Partition after all" + " images are written\n"); + printf("!EMMC boot partition" + " has continuity at" + " image writing time.\n"); + printf("!So, Do not close boot" + " partition, Before, all" + " images are written.\n"); + return 0; + } else { + printf("EMMC OPEN Failed.\n"); + return 1; + } + } + + if (strcmp(argv[1], "close") == 0) { + if (!(mmc_boot_close(mmc))) { + printf("EMMC CLOSE Success.\n"); + return 0; + } else { + printf("EMMC CLOSE Failed.\n"); + return 1; + } + } + } else if (strcmp(argv[1], "bootpart") == 0) { + int dev; + dev = simple_strtoul(argv[2], NULL, 10); + + struct mmc *mmc = find_mmc_device(dev); + u32 bootsize = simple_strtoul(argv[3], NULL, 10); + u32 rpmbsize = simple_strtoul(argv[4], NULL, 10); + + if (!mmc) { + printf("no mmc device at slot %x\n", dev); + return 1; + } + + if (IS_SD(mmc)) { + printf("It is not a EMMC device\n"); + return 1; + } + + if (0 == mmc_boot_partition_size_change(mmc, + bootsize, rpmbsize)) { + printf("EMMC boot partition Size %d MB\n", bootsize); + printf("EMMC RPMB partition Size %d MB\n", rpmbsize); + return 0; + } else { + printf("EMMC boot partition Size change Failed.\n"); + return 1; + } } if (strcmp(argv[1], "read") == 0) @@ -318,5 +397,9 @@ U_BOOT_CMD( "mmc rescan\n" "mmc part - lists available partition on current mmc device\n" "mmc dev [dev] [part] - show or set current mmc device [partition]\n" - "mmc list - lists available devices"); + "mmc list - lists available devices\n" + "mmc open - opens the specified device\n" + "mmc close - closes the specified device\n" + "mmc bootpart \n" + " - change sizes of boot and RPMB partions of specified device\n"); #endif