public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/2] mmc: add boundary check for mmc operation
@ 2010-09-13  4:06 Lei Wen
  2010-09-13  4:06 ` [U-Boot] [PATCH 2/2] mmc: print out avaible partition table Lei Wen
  2010-09-13  8:52 ` [U-Boot] [PATCH 1/2] mmc: add boundary check for mmc operation Sergei Shtylyov
  0 siblings, 2 replies; 6+ messages in thread
From: Lei Wen @ 2010-09-13  4:06 UTC (permalink / raw)
  To: u-boot


Signed-off-by: Lei Wen <leiwen@marvell.com>
---
 drivers/mmc/mmc.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index cf4ea16..5ff1c54 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -92,6 +92,11 @@ mmc_bwrite(int dev_num, ulong start, lbaint_t blkcnt, const void*src)
 
 	blklen = mmc->write_bl_len;
 
+	if (start > mmc->block_dev.lba || (start + blkcnt) > mmc->block_dev.lba) {
+		puts("operation exceed mmc boundary..\n
+		     This devices only have 0x%x blocks\n", mmc->block_dev.lba);
+		return 0;
+	}
 	err = mmc_set_blocklen(mmc, mmc->write_bl_len);
 
 	if (err) {
@@ -219,6 +224,11 @@ static ulong mmc_bread(int dev_num, ulong start, lbaint_t blkcnt, void *dst)
 	if (!mmc)
 		return 0;
 
+	if (start > mmc->block_dev.lba || (start + blkcnt) > mmc->block_dev.lba) {
+		puts("operation exceed mmc boundary..\n
+		     This devices only have 0x%x blocks\n", mmc->block_dev.lba);
+		return 0;
+	}
 	/* We always do full block reads from the card */
 	err = mmc_set_blocklen(mmc, mmc->read_bl_len);
 
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH 2/2] mmc: print out avaible partition table
  2010-09-13  4:06 [U-Boot] [PATCH 1/2] mmc: add boundary check for mmc operation Lei Wen
@ 2010-09-13  4:06 ` Lei Wen
  2010-09-13  8:54   ` Sergei Shtylyov
  2010-09-13  8:52 ` [U-Boot] [PATCH 1/2] mmc: add boundary check for mmc operation Sergei Shtylyov
  1 sibling, 1 reply; 6+ messages in thread
From: Lei Wen @ 2010-09-13  4:06 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Lei Wen <leiwen@marvell.com>
---
 common/cmd_mmc.c |   20 ++++++++++++++++++++
 disk/part.c      |    3 +++
 2 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c
index c0b30d8..fe04f8d 100644
--- a/common/cmd_mmc.c
+++ b/common/cmd_mmc.c
@@ -154,6 +154,25 @@ int do_mmcops(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 			mmc_init(mmc);
 
 			return 0;
+		} else if (strncmp(argv[1], "part", 4) == 0) {
+			int dev = simple_strtoul(argv[2], NULL, 10);
+			block_dev_desc_t *mmc_dev;
+			struct mmc *mmc = find_mmc_device(dev);
+
+			if (!mmc) {
+				puts("no mmc devices available\n");
+				return 1;
+			}
+			mmc_init(mmc);
+			mmc_dev = mmc_get_dev(dev);
+			if (mmc_dev != NULL &&
+					mmc_dev->type != DEV_TYPE_UNKNOWN) {
+				print_part(mmc_dev);
+				return 0;
+			}
+
+			puts("get mmc type error!\n");
+			return 1;
 		}
 
 	case 0:
@@ -230,5 +249,6 @@ U_BOOT_CMD(
 	"read <device num> addr blk# cnt\n"
 	"mmc write <device num> addr blk# cnt\n"
 	"mmc rescan <device num>\n"
+	"mmc part <device num>- lists avaiable partition on mmc\n"
 	"mmc list - lists available devices");
 #endif
diff --git a/disk/part.c b/disk/part.c
index 3ba88c7..1806fe6 100644
--- a/disk/part.c
+++ b/disk/part.c
@@ -364,6 +364,9 @@ static void print_part_header (const char *type, block_dev_desc_t * dev_desc)
 	case IF_TYPE_DOC:
 		puts ("DOC");
 		break;
+	case IF_TYPE_MMC:
+		puts ("MMC");
+		break;
 	default:
 		puts ("UNKNOWN");
 		break;
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH 1/2] mmc: add boundary check for mmc operation
  2010-09-13  4:06 [U-Boot] [PATCH 1/2] mmc: add boundary check for mmc operation Lei Wen
  2010-09-13  4:06 ` [U-Boot] [PATCH 2/2] mmc: print out avaible partition table Lei Wen
@ 2010-09-13  8:52 ` Sergei Shtylyov
  2010-09-13  9:08   ` Lei Wen
  1 sibling, 1 reply; 6+ messages in thread
From: Sergei Shtylyov @ 2010-09-13  8:52 UTC (permalink / raw)
  To: u-boot

Hello.

On 13-09-2010 8:06, Lei Wen wrote:

> Signed-off-by: Lei Wen<leiwen@marvell.com>
> ---
>   drivers/mmc/mmc.c |   10 ++++++++++
>   1 files changed, 10 insertions(+), 0 deletions(-)

> diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
> index cf4ea16..5ff1c54 100644
> --- a/drivers/mmc/mmc.c
> +++ b/drivers/mmc/mmc.c
> @@ -92,6 +92,11 @@ mmc_bwrite(int dev_num, ulong start, lbaint_t blkcnt, const void*src)
>
>   	blklen = mmc->write_bl_len;
>
> +	if (start > mmc->block_dev.lba || (start + blkcnt) > mmc->block_dev.lba) {

    The second comparison should suffice, no? Also, parens are not necessary.

> +		puts("operation exceed mmc boundary..\n
 > +		     This devices only have 0x%x blocks\n",
 > mmc->block_dev.lba);

    Where's the cloging quote? String literals are not broken up like this -- 
this adds extra spaces to them. Should be:

		puts("operation exceed mmc boundary..\n"
		     "This devices only have 0x%x blocks\n", mmc->block_dev.lba);

> +		return 0;
> +	}
>   	err = mmc_set_blocklen(mmc, mmc->write_bl_len);
>
>   	if (err) {
> @@ -219,6 +224,11 @@ static ulong mmc_bread(int dev_num, ulong start, lbaint_t blkcnt, void *dst)
>   	if (!mmc)
>   		return 0;
>
> +	if (start > mmc->block_dev.lba || (start + blkcnt) > mmc->block_dev.lba) {
> +		puts("operation exceed mmc boundary..\n
> +		     This devices only have 0x%x blocks\n", mmc->block_dev.lba);

    Same comments here...

WBR, Sergei

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH 2/2] mmc: print out avaible partition table
  2010-09-13  4:06 ` [U-Boot] [PATCH 2/2] mmc: print out avaible partition table Lei Wen
@ 2010-09-13  8:54   ` Sergei Shtylyov
  0 siblings, 0 replies; 6+ messages in thread
From: Sergei Shtylyov @ 2010-09-13  8:54 UTC (permalink / raw)
  To: u-boot

Hello.

On 13-09-2010 8:06, Lei Wen wrote:

> Signed-off-by: Lei Wen<leiwen@marvell.com>
> ---
>   common/cmd_mmc.c |   20 ++++++++++++++++++++
>   disk/part.c      |    3 +++
>   2 files changed, 23 insertions(+), 0 deletions(-)

> diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c
> index c0b30d8..fe04f8d 100644
> --- a/common/cmd_mmc.c
> +++ b/common/cmd_mmc.c
> @@ -154,6 +154,25 @@ int do_mmcops(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
>   			mmc_init(mmc);
>
>   			return 0;
> +		} else if (strncmp(argv[1], "part", 4) == 0) {
> +			int dev = simple_strtoul(argv[2], NULL, 10);
> +			block_dev_desc_t *mmc_dev;
> +			struct mmc *mmc = find_mmc_device(dev);
> +
> +			if (!mmc) {
> +				puts("no mmc devices available\n");
> +				return 1;
> +			}
> +			mmc_init(mmc);
> +			mmc_dev = mmc_get_dev(dev);
> +			if (mmc_dev != NULL &&
> +					mmc_dev->type != DEV_TYPE_UNKNOWN) {

    Too much indentation.

WBR, Sergei

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH 1/2] mmc: add boundary check for mmc operation
  2010-09-13  8:52 ` [U-Boot] [PATCH 1/2] mmc: add boundary check for mmc operation Sergei Shtylyov
@ 2010-09-13  9:08   ` Lei Wen
  0 siblings, 0 replies; 6+ messages in thread
From: Lei Wen @ 2010-09-13  9:08 UTC (permalink / raw)
  To: u-boot

On Mon, Sep 13, 2010 at 4:52 PM, Sergei Shtylyov <sshtylyov@mvista.com> wrote:
> Hello.
>
> On 13-09-2010 8:06, Lei Wen wrote:
>
>> Signed-off-by: Lei Wen<leiwen@marvell.com>
>> ---
>> ?drivers/mmc/mmc.c | ? 10 ++++++++++
>> ?1 files changed, 10 insertions(+), 0 deletions(-)
>
>> diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
>> index cf4ea16..5ff1c54 100644
>> --- a/drivers/mmc/mmc.c
>> +++ b/drivers/mmc/mmc.c
>> @@ -92,6 +92,11 @@ mmc_bwrite(int dev_num, ulong start, lbaint_t blkcnt,
>> const void*src)
>>
>> ? ? ? ?blklen = mmc->write_bl_len;
>>
>> + ? ? ? if (start > mmc->block_dev.lba || (start + blkcnt) >
>> mmc->block_dev.lba) {
>
> ? The second comparison should suffice, no? Also, parens are not necessary.
Em, that is correct.
>
>> + ? ? ? ? ? ? ? puts("operation exceed mmc boundary..\n
>
>> + ? ? ? ? ? ? ? ? ?This devices only have 0x%x blocks\n",
>> mmc->block_dev.lba);
>
> ? Where's the cloging quote? String literals are not broken up like this --
> this adds extra spaces to them. Should be:

I see...
Thanks,
Lei

>
> ? ? ? ? ? ? ? ?puts("operation exceed mmc boundary..\n"
> ? ? ? ? ? ? ? ? ? ? "This devices only have 0x%x blocks\n",
> mmc->block_dev.lba);
>
>> + ? ? ? ? ? ? ? return 0;
>> + ? ? ? }
>> ? ? ? ?err = mmc_set_blocklen(mmc, mmc->write_bl_len);
>>
>> ? ? ? ?if (err) {
>> @@ -219,6 +224,11 @@ static ulong mmc_bread(int dev_num, ulong start,
>> lbaint_t blkcnt, void *dst)
>> ? ? ? ?if (!mmc)
>> ? ? ? ? ? ? ? ?return 0;
>>
>> + ? ? ? if (start > mmc->block_dev.lba || (start + blkcnt) >
>> mmc->block_dev.lba) {
>> + ? ? ? ? ? ? ? puts("operation exceed mmc boundary..\n
>> + ? ? ? ? ? ? ? ? ? ?This devices only have 0x%x blocks\n",
>> mmc->block_dev.lba);
>
> ? Same comments here...
>
> WBR, Sergei
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH 2/2] mmc: print out avaible partition table
  2010-09-13  9:17 Lei Wen
@ 2010-09-13  9:17 ` Lei Wen
  0 siblings, 0 replies; 6+ messages in thread
From: Lei Wen @ 2010-09-13  9:17 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Lei Wen <leiwen@marvell.com>
---
 common/cmd_mmc.c |   20 ++++++++++++++++++++
 disk/part.c      |    3 +++
 2 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c
index c0b30d8..437dd88 100644
--- a/common/cmd_mmc.c
+++ b/common/cmd_mmc.c
@@ -154,6 +154,25 @@ int do_mmcops(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 			mmc_init(mmc);
 
 			return 0;
+		} else if (strncmp(argv[1], "part", 4) == 0) {
+			int dev = simple_strtoul(argv[2], NULL, 10);
+			block_dev_desc_t *mmc_dev;
+			struct mmc *mmc = find_mmc_device(dev);
+
+			if (!mmc) {
+				puts("no mmc devices available\n");
+				return 1;
+			}
+			mmc_init(mmc);
+			mmc_dev = mmc_get_dev(dev);
+			if (mmc_dev != NULL &&
+			    mmc_dev->type != DEV_TYPE_UNKNOWN) {
+				print_part(mmc_dev);
+				return 0;
+			}
+
+			puts("get mmc type error!\n");
+			return 1;
 		}
 
 	case 0:
@@ -230,5 +249,6 @@ U_BOOT_CMD(
 	"read <device num> addr blk# cnt\n"
 	"mmc write <device num> addr blk# cnt\n"
 	"mmc rescan <device num>\n"
+	"mmc part <device num>- lists avaiable partition on mmc\n"
 	"mmc list - lists available devices");
 #endif
diff --git a/disk/part.c b/disk/part.c
index 3ba88c7..1806fe6 100644
--- a/disk/part.c
+++ b/disk/part.c
@@ -364,6 +364,9 @@ static void print_part_header (const char *type, block_dev_desc_t * dev_desc)
 	case IF_TYPE_DOC:
 		puts ("DOC");
 		break;
+	case IF_TYPE_MMC:
+		puts ("MMC");
+		break;
 	default:
 		puts ("UNKNOWN");
 		break;
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2010-09-13  9:17 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-13  4:06 [U-Boot] [PATCH 1/2] mmc: add boundary check for mmc operation Lei Wen
2010-09-13  4:06 ` [U-Boot] [PATCH 2/2] mmc: print out avaible partition table Lei Wen
2010-09-13  8:54   ` Sergei Shtylyov
2010-09-13  8:52 ` [U-Boot] [PATCH 1/2] mmc: add boundary check for mmc operation Sergei Shtylyov
2010-09-13  9:08   ` Lei Wen
  -- strict thread matches above, loose matches on Subject: below --
2010-09-13  9:17 Lei Wen
2010-09-13  9:17 ` [U-Boot] [PATCH 2/2] mmc: print out avaible partition table Lei Wen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox