int do_mg_disk_cmd (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { u32 from, to, size; switch (argc) { case 2: if (!strcmp(argv[1], "init")) mg_disk_init(); else return 1; break; case 5: from = simple_strtoul(argv[2], NULL, 0); to = simple_strtoul(argv[3], NULL, 0); size = simple_strtoul(argv[4], NULL, 0); if (!strcmp(argv[1], "read")) mg_disk_read(from, (u8 *)to, size); else if (!strcmp(argv[1], "write")) mg_disk_write(to, (u8 *)from, size); else if (!strcmp(argv[1], "readsec")) mg_disk_read_sects((void *)to, from, size); else if (!strcmp(argv[1], "writesec")) mg_disk_write_sects((void *)from, to, size); else return 1; break; default: printf("Usage:\n%s\n", cmdtp->usage); return 1; } return 0; }
int saveenv(void) { unsigned int err; env_ptr->crc = crc32(0, env_ptr->data, ENV_SIZE); err = mg_disk_write(CONFIG_ENV_ADDR, (u_char *)env_ptr, CONFIG_ENV_SIZE); if (err) puts("*** Warning - mg_disk_write error\n\n"); return err; }