{ "serial prompt", menu_do_serial, },
};
-static void menu_init(void)
+static void do_mmc(int dev_id)
{
- const char *check_format1 = "%sload mmc1 0:%d ${loadaddr} boot.scr 4";
- const char *check_format2 = "%sload mmc1 0:%d ${loadaddr} boot.txt 4";
- const char *run_format1 = "%sload mmc1 0:%d ${loadaddr} boot.scr;source ${loadaddr}";
- const char *run_format2 = "%sload mmc1 0:%d ${loadaddr} boot.txt;ssource ${loadaddr} ${filesize}";
+ static const char *check_format1 = "%sload mmc1 %d:%d ${loadaddr} boot.scr 4";
+ static const char *check_format2 = "%sload mmc1 %d:%d ${loadaddr} boot.txt 4";
+ static const char *run_format1 = "%sload mmc1 %d:%d ${loadaddr} boot.scr;source ${loadaddr}";
+ static const char *run_format2 = "%sload mmc1 %d:%d ${loadaddr} boot.txt;ssource ${loadaddr} ${filesize}";
disk_partition_t part_info;
block_dev_desc_t *dev_desc;
char tmp_name[32], tmp_cmd[128];
int i;
- for (i = 0; i < 2; i++)
- menu_items[i] = &default_menu_items[i];
- menu_item_count = i;
-
- if (!do_cmd("mmc rescan"))
- goto no_mmc;
-
- dev_desc = get_dev("mmc1", 0);
+ dev_desc = get_dev("mmc", dev_id);
if (dev_desc == NULL) {
printf("dev desc null\n");
- goto no_mmc;
+ return;
}
- /* kill stdout while we search for bootfiles */
- setenv("stdout", "nulldev");
-
for (i = 1; menu_item_count < ARRAY_SIZE(menu_items); i++) {
if (get_partition_info(dev_desc, i, &part_info))
break;
- if (do_cmd("fatls mmc1 0:%d", i)) {
- if (do_cmd(check_format1, "fat", i)) {
- sprintf(tmp_cmd, run_format1, "fat", i);
+ if (do_cmd("fatls mmc %d:%d", dev_id, i)) {
+ if (do_cmd(check_format1, "fat", dev_id, i)) {
+ sprintf(tmp_cmd, run_format1, "fat", dev_id, i);
goto found;
}
- if (do_cmd(check_format2, "fat", i)) {
- sprintf(tmp_cmd, run_format2, "fat", i);
+ if (do_cmd(check_format2, "fat", dev_id, i)) {
+ sprintf(tmp_cmd, run_format2, "fat", dev_id, i);
goto found;
}
continue;
}
- if (do_cmd("ext2ls mmc1 0:%d", i)) {
- if (do_cmd(check_format1, "ext2", i)) {
- sprintf(tmp_cmd, run_format1, "ext2", i);
+ if (do_cmd("ext2ls mmc %d:%d", dev_id, i)) {
+ if (do_cmd(check_format1, "ext2", dev_id, i)) {
+ sprintf(tmp_cmd, run_format1, "ext2", dev_id, i);
goto found;
}
- if (do_cmd(check_format2, "ext2", i)) {
- sprintf(tmp_cmd, run_format2, "ext2", i);
+ if (do_cmd(check_format2, "ext2", dev_id, i)) {
+ sprintf(tmp_cmd, run_format2, "ext2", dev_id, i);
goto found;
}
continue;
continue;
found:
- sprintf(tmp_name, "boot from SD1:%d", i);
+ sprintf(tmp_name, "boot from SD%d:%d", dev_id + 1, i);
add_menu_item(tmp_name, menu_do_script_cmd, tmp_cmd);
}
+}
+
+static void menu_init(void)
+{
+ int i;
+
+ for (i = 0; i < 2; i++)
+ menu_items[i] = &default_menu_items[i];
+ menu_item_count = i;
+
+ if (do_cmd("mmc rescan"))
+ {
+ /* kill stdout while we search for bootfiles */
+ setenv("stdout", "nulldev");
+
+ do_mmc(0);
+ do_mmc(1);
+ }
-no_mmc:
setenv("stdout", "serial");
if (do_cmd("ubi part boot && ubifsmount boot")) {