mediatek: mt7623: phase out uImage.FIT partition parser
[openwrt/staging/stintel.git] / package / boot / uboot-mediatek / patches / 313-mt7623-select-rootdisk.patch
1 --- a/board/mediatek/mt7623/mt7623_rfb.c
2 +++ b/board/mediatek/mt7623/mt7623_rfb.c
3 @@ -91,3 +91,43 @@ int board_late_init(void)
4 env_relocate();
5 return 0;
6 }
7 +
8 +int ft_system_setup(void *blob, struct bd_info *bd)
9 +{
10 + const u32 *media_handle_p;
11 + int chosen, len, ret;
12 + const char *media;
13 + u32 media_handle;
14 +
15 +#ifdef CONFIG_MMC
16 + switch (mmc_get_boot_dev()) {
17 + case 0:
18 + media = "rootdisk-emmc";
19 + break
20 + ;;
21 + case 1:
22 + media = "rootdisk-sd";
23 + break
24 + ;;
25 + }
26 +
27 + chosen = fdt_path_offset(blob, "/chosen");
28 + if (chosen <= 0)
29 + return 0;
30 +
31 + media_handle_p = fdt_getprop(blob, chosen, media, &len);
32 + if (media_handle_p <= 0 || len != 4)
33 + return 0;
34 +
35 + media_handle = *media_handle_p;
36 + ret = fdt_setprop(blob, chosen, "rootdisk", &media_handle, sizeof(media_handle));
37 + if (ret) {
38 + printf("cannot set media phandle %s as rootdisk /chosen node\n", media);
39 + return ret;
40 + }
41 +
42 + printf("set /chosen/rootdisk to bootrom media: %s (phandle 0x%08x)\n", media, fdt32_to_cpu(media_handle));
43 +#endif
44 +
45 + return 0;
46 +}