[U-Boot] [U-BOOT][PATCH 2/3] Change CONFIG_MG_DISK_RES unit to KB
unsik Kim
donari75 at gmail.com
Fri Feb 13 12:06:03 CET 2009
Byte is too small unit for CONFIG_MG_DISK_RES and also needs
sector size alignment.
Signed-off-by: unsik Kim <donari75 at gmail.com>
---
doc/README.mflash | 10 +++++-----
drivers/block/mg_disk.c | 10 +++-------
2 files changed, 8 insertions(+), 12 deletions(-)
diff --git a/doc/README.mflash b/doc/README.mflash
index fb74b90..d0d0f7b 100644
--- a/doc/README.mflash
+++ b/doc/README.mflash
@@ -30,13 +30,13 @@ sector) and size of 0x400 (1024 byte)
* Reserved size config (optional)
If you want to use some reserved area for bootloader, environment variable or
-whatever, use CONFIG_MG_DISK_RES. The value should be multiple of
-MG_SECTOR_SIZE (512Byte). Mflash's block operation method use this value as
-start offset. So any u-boot's partition table parser and file system command
-work consistently. You can access this area by using mflash command.
+whatever, use CONFIG_MG_DISK_RES. The unit is KB. Mflash's block operation
+method use this value as start offset. So any u-boot's partition table parser
+and file system command work consistently. You can access this area by using
+mflash command.
Following example sets 10MB of reserved area.
-#define CONFIG_MG_DISK_RES 10485760
+#define CONFIG_MG_DISK_RES 10240
2-2. Porting mg_get_drv_data function
Mflash is active device and need some gpio control for proper operation.
diff --git a/drivers/block/mg_disk.c b/drivers/block/mg_disk.c
index 4454fca..e1b1a68 100644
--- a/drivers/block/mg_disk.c
+++ b/drivers/block/mg_disk.c
@@ -34,11 +34,7 @@
#define CONFIG_MG_DISK_RES 0
#endif
-#if (CONFIG_MG_DISK_RES % MG_SECTOR_SIZE != 0)
-#error "CONFIG_MG_DISK_RES should be MG_SECTOR_SIZE algined"
-#endif
-
-#define MG_DISK_RES ((CONFIG_MG_DISK_RES) / MG_SECTOR_SIZE)
+#define MG_RES_SEC ((CONFIG_MG_DISK_RES) << 1)
#define MG_BASE (host.drv_data->base)
@@ -344,7 +340,7 @@ unsigned int mg_disk_read_sects(void *buff, u32 sect_num, u32 sect_cnt)
unsigned long mg_block_read (int dev, unsigned long start,
lbaint_t blkcnt, void *buffer)
{
- start += MG_DISK_RES;
+ start += MG_RES_SEC;
if (! mg_disk_read_sects(buffer, start, blkcnt))
return blkcnt;
else
@@ -482,7 +478,7 @@ unsigned int mg_disk_write_sects(void *buff, u32 sect_num, u32 sect_cnt)
unsigned long mg_block_write (int dev, unsigned long start,
lbaint_t blkcnt, const void *buffer)
{
- start += MG_DISK_RES;
+ start += MG_RES_SEC;
if (!mg_disk_write_sects((void *)buffer, start, blkcnt))
return blkcnt;
else
--
1.5.6.6
More information about the U-Boot
mailing list