[BOOT_DEVICE_MMC2] = "/mmc@ff370000",
[BOOT_DEVICE_MMC1] = "/mmc@ff390000",
};
-
-const char *spl_decode_boot_device(u32 boot_device)
-{
- const char *spl_bootdevice_ofpath = NULL;
-
- if (boot_device < ARRAY_SIZE(spl_boot_devices))
- spl_bootdevice_ofpath = spl_boot_devices[boot_device];
-
- if (spl_bootdevice_ofpath)
- debug("%s: spl_bootdevice_id %x maps to '%s'\n",
- __func__, boot_device, spl_bootdevice_ofpath);
- else
- debug("%s: failed to resolve spl_bootdevice_id %x\n",
- __func__, boot_device);
-
- return spl_bootdevice_ofpath;
-}
-
-void spl_perform_fixups(struct spl_image_info *spl_image)
-{
- void *blob = spl_image->fdt_addr;
- const char *boot_ofpath;
- int chosen;
-
- /*
- * Inject the ofpath of the device the full U-Boot (or Linux in
- * Falcon-mode) was booted from into the FDT, if a FDT has been
- * loaded at the same time.
- */
- if (!blob)
- return;
-
- boot_ofpath = spl_decode_boot_device(spl_image->boot_device);
- if (!boot_ofpath) {
- pr_err("%s: could not map boot_device to ofpath\n", __func__);
- return;
- }
-
- chosen = fdt_find_or_add_subnode(blob, 0, "chosen");
- if (chosen < 0) {
- pr_err("%s: could not find/create '/chosen'\n", __func__);
- return;
- }
- fdt_setprop_string(blob, chosen,
- "u-boot,spl-boot-device", boot_ofpath);
-}
#endif
[BOOT_DEVICE_SPI] = "/spi@ff1d0000/flash@0",
};
-const char *spl_decode_boot_device(u32 boot_device)
-{
- const char *spl_bootdevice_ofpath = NULL;
-
- if (boot_device < ARRAY_SIZE(spl_boot_devices))
- spl_bootdevice_ofpath = spl_boot_devices[boot_device];
-
- if (spl_bootdevice_ofpath)
- debug("%s: spl_bootdevice_id %x maps to '%s'\n",
- __func__, boot_device, spl_bootdevice_ofpath);
- else
- debug("%s: failed to resolve spl_bootdevice_id %x\n",
- __func__, boot_device);
-
- return spl_bootdevice_ofpath;
-}
-
-void spl_perform_fixups(struct spl_image_info *spl_image)
-{
- void *blob = spl_image->fdt_addr;
- const char *boot_ofpath;
- int chosen;
-
- /*
- * Inject the ofpath of the device the full U-Boot (or Linux in
- * Falcon-mode) was booted from into the FDT, if a FDT has been
- * loaded at the same time.
- */
- if (!blob)
- return;
-
- boot_ofpath = spl_decode_boot_device(spl_image->boot_device);
- if (!boot_ofpath) {
- pr_err("%s: could not map boot_device to ofpath\n", __func__);
- return;
- }
-
- chosen = fdt_find_or_add_subnode(blob, 0, "chosen");
- if (chosen < 0) {
- pr_err("%s: could not find/create '/chosen'\n", __func__);
- return;
- }
- fdt_setprop_string(blob, chosen,
- "u-boot,spl-boot-device", boot_ofpath);
-}
-
static void rk3399_force_power_on_reset(void)
{
ofnode node;
#include <common.h>
#include <dm.h>
+#include <fdt_support.h>
#include <log.h>
#include <mmc.h>
#include <spl.h>
if (idx == 0)
spl_boot_list[0] = spl_boot_device();
}
+
+__weak const char * const spl_boot_devices[BOOT_DEVICE_NONE + 1] = {};
+
+const char *spl_decode_boot_device(u32 boot_device)
+{
+ const char *spl_bootdevice_ofpath = NULL;
+
+ if (boot_device < ARRAY_SIZE(spl_boot_devices))
+ spl_bootdevice_ofpath = spl_boot_devices[boot_device];
+
+ if (spl_bootdevice_ofpath)
+ debug("%s: spl_bootdevice_id %x maps to '%s'\n",
+ __func__, boot_device, spl_bootdevice_ofpath);
+ else
+ debug("%s: failed to resolve spl_bootdevice_id %x\n",
+ __func__, boot_device);
+
+ return spl_bootdevice_ofpath;
+}
+
+void spl_perform_fixups(struct spl_image_info *spl_image)
+{
+ void *blob = spl_image_fdt_addr(spl_image);
+ const char *boot_ofpath;
+ int chosen;
+
+ /*
+ * Inject the ofpath of the device the full U-Boot (or Linux in
+ * Falcon-mode) was booted from into the FDT, if a FDT has been
+ * loaded at the same time.
+ */
+ if (!blob)
+ return;
+
+ boot_ofpath = spl_decode_boot_device(spl_image->boot_device);
+ if (!boot_ofpath) {
+ pr_err("%s: could not map boot_device to ofpath\n", __func__);
+ return;
+ }
+
+ chosen = fdt_find_or_add_subnode(blob, 0, "chosen");
+ if (chosen < 0) {
+ pr_err("%s: could not find/create '/chosen'\n", __func__);
+ return;
+ }
+ fdt_setprop_string(blob, chosen,
+ "u-boot,spl-boot-device", boot_ofpath);
+}
#endif