mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-26 23:41:50 +00:00
cmd: blk_common: Stop using hard-coded block size for Sandbox operations
commit 3d2fc79714
("cmd: blk: Allow generic read/write operations to work in sandbox")
used the hard-coded block size (512) for accessing the sandbox host
device. Now that we have added support for non-512 block size for both
Sandbox host device and blkmap driver, let's stop using the hard-coded
block size.
Signed-off-by: Bin Meng <bmeng@tinylab.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
a9bf25cb93
commit
4e345656e7
1 changed files with 14 additions and 6 deletions
|
@ -67,15 +67,19 @@ int blk_common_cmd(int argc, char *const argv[], enum uclass_id uclass_id,
|
||||||
phys_addr_t paddr = hextoul(argv[2], NULL);
|
phys_addr_t paddr = hextoul(argv[2], NULL);
|
||||||
lbaint_t blk = hextoul(argv[3], NULL);
|
lbaint_t blk = hextoul(argv[3], NULL);
|
||||||
ulong cnt = hextoul(argv[4], NULL);
|
ulong cnt = hextoul(argv[4], NULL);
|
||||||
|
struct blk_desc *desc;
|
||||||
void *vaddr;
|
void *vaddr;
|
||||||
ulong n;
|
ulong n;
|
||||||
|
int ret;
|
||||||
|
|
||||||
printf("\n%s read: device %d block # "LBAFU", count %lu ... ",
|
printf("\n%s read: device %d block # "LBAFU", count %lu ... ",
|
||||||
if_name, *cur_devnump, blk, cnt);
|
if_name, *cur_devnump, blk, cnt);
|
||||||
|
|
||||||
vaddr = map_sysmem(paddr, 512 * cnt);
|
ret = blk_get_desc(uclass_id, *cur_devnump, &desc);
|
||||||
n = blk_read_devnum(uclass_id, *cur_devnump, blk, cnt,
|
if (ret)
|
||||||
vaddr);
|
return CMD_RET_FAILURE;
|
||||||
|
vaddr = map_sysmem(paddr, desc->blksz * cnt);
|
||||||
|
n = blk_dread(desc, blk, cnt, vaddr);
|
||||||
unmap_sysmem(vaddr);
|
unmap_sysmem(vaddr);
|
||||||
|
|
||||||
printf("%ld blocks read: %s\n", n,
|
printf("%ld blocks read: %s\n", n,
|
||||||
|
@ -85,15 +89,19 @@ int blk_common_cmd(int argc, char *const argv[], enum uclass_id uclass_id,
|
||||||
phys_addr_t paddr = hextoul(argv[2], NULL);
|
phys_addr_t paddr = hextoul(argv[2], NULL);
|
||||||
lbaint_t blk = hextoul(argv[3], NULL);
|
lbaint_t blk = hextoul(argv[3], NULL);
|
||||||
ulong cnt = hextoul(argv[4], NULL);
|
ulong cnt = hextoul(argv[4], NULL);
|
||||||
|
struct blk_desc *desc;
|
||||||
void *vaddr;
|
void *vaddr;
|
||||||
ulong n;
|
ulong n;
|
||||||
|
int ret;
|
||||||
|
|
||||||
printf("\n%s write: device %d block # "LBAFU", count %lu ... ",
|
printf("\n%s write: device %d block # "LBAFU", count %lu ... ",
|
||||||
if_name, *cur_devnump, blk, cnt);
|
if_name, *cur_devnump, blk, cnt);
|
||||||
|
|
||||||
vaddr = map_sysmem(paddr, 512 * cnt);
|
ret = blk_get_desc(uclass_id, *cur_devnump, &desc);
|
||||||
n = blk_write_devnum(uclass_id, *cur_devnump, blk, cnt,
|
if (ret)
|
||||||
vaddr);
|
return CMD_RET_FAILURE;
|
||||||
|
vaddr = map_sysmem(paddr, desc->blksz * cnt);
|
||||||
|
n = blk_dwrite(desc, blk, cnt, vaddr);
|
||||||
unmap_sysmem(vaddr);
|
unmap_sysmem(vaddr);
|
||||||
|
|
||||||
printf("%ld blocks written: %s\n", n,
|
printf("%ld blocks written: %s\n", n,
|
||||||
|
|
Loading…
Add table
Reference in a new issue