[U-Boot] [PATCH 9/9] COMMON: MMC: Command to support eMMC booting
Amarendra Reddy
amar.lavanuru at gmail.com
Thu Dec 20 14:45:08 CET 2012
Hi SImon,
Thanks for the review comments.
Please find below the responses for your comments.
Thanks & Regards
Amarendra
On 20 December 2012 08:10, Simon Glass <sjg at chromium.org> wrote:
> Hi Amar,
>
> On Mon, Dec 17, 2012 at 3:19 AM, Amar <amarendra.xt at samsung.com> wrote:
>
> > This patch adds commands to open, close and create partitions on eMMC
> >
> > Signed-off-by: Amar <amarendra.xt at samsung.com>
> > ---
> > common/cmd_mmc.c | 101
> > +++++++++++++++++++++++++++++++++++++++++++++++++++++-
> > 1 files changed, 100 insertions(+), 1 deletions(-)
> >
> > diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c
> > index 62a1c22..1fd6b94 100644
> > --- a/common/cmd_mmc.c
> > +++ b/common/cmd_mmc.c
> > @@ -248,6 +248,102 @@ 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) {
> > + int dev;
> > + struct mmc *mmc;
> > +
> > + if (argc == 2)
> > + dev = curr_device;
> > + else if (argc == 3)
> > + dev = simple_strtoul(argv[2], NULL, 10);
> > + else if (argc == 4)
> > + return 1;
> >
>
> Should this be CMD_RET_USAGE? What is returning 1 for?
> Yes. Shall correct it.
> > +
> > + 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 (!(mmc_boot_open(mmc))) {
> > + printf("eMMC OPEN Success.!!\n");
> > + printf("\t\t\t!!!Notice!!!\n");
> > + printf("!You must close eMMC boot Partition"
> > + "after all image
> > writing!\n");
> > + printf("!eMMC boot partition has continuity"
> > + "at image writing
> > time.!\n");
> > + printf("!So, Do not close boot partition,
> Before,"
> > + "all images is
> > written.!\n");
> >
>
> Maybe:
>
> So, do not close boot partition before all images are written
> OK.. will change the wordings.
+ } else {
> > + printf("eMMC OPEN Failed.!!\n");
> >
>
> Is it eMMC or MMC? Lower case or upper case? Your messages should be
> consistent. And you don't need the !!! I think.
>
> OK. Will maintain EMMC consistently every where. Will remove "!!!".
>
> + }
> > + return 0;
> > +
> > + } else if (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 if (argc == 4)
> > + return 1;
> >
>
> Same Q here as above.
>
> Ok, will be addressed.
>
> > + 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;
> > + }
> > +
> >
>
> Seems the open/close code is almost the same. Can you combine it?
>
Ok. Will combine open/close.
>
> > + if (!(mmc_boot_close(mmc)))
> > + printf("eMMC CLOSE Success.!!\n");
> > + else
> > + printf("eMMC CLOSE Failed.!!\n");
> > +
> > + return 0;
> > +
> > + } 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);
> > + } else {
> > + printf("eMMC boot partition Size change
> > Failed.!!\n");
> >
>
> return 1 here I think
>
Yes. WIll be corrected.
>
> > + }
> > + return 0;
> > }
> >
> > if (strcmp(argv[1], "read") == 0)
> > @@ -318,5 +414,8 @@ 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 <device num> - opens the specified device\n"
> > + "mmc close <device num> - closes the specified device\n"
> > + "mmc bootpart <device num> <boot part size MB> <RPMB part size
> > MB>\n");
> >
>
> Can you add another line of help here explaining what this does?
> OK. I will add another line of help for mmc bootpart.
>
> > #endif
> > --
> > 1.7.0.4
> >
> > Regards,
> Simon
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>
>
More information about the U-Boot
mailing list