summaryrefslogtreecommitdiff
path: root/boot/bootdev-uclass.c
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2024-12-19 11:28:52 -0700
committerTom Rini <trini@konsulko.com>2024-12-27 15:16:10 -0600
commit19574e35f46ce2b24fd5f9cacb09260226d1b9f5 (patch)
treed922366a05ab5fb03a904a325afbb12dd286d69b /boot/bootdev-uclass.c
parent771f0e9877efec600ebe8c4cb5bc7df549544a4e (diff)
bootstd: Avoid sprintf() in SPL when creating bootdevs
The name of the bootdev device is not that important, particular in SPL. Save a little code space by using a simpler name. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'boot/bootdev-uclass.c')
-rw-r--r--boot/bootdev-uclass.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/boot/bootdev-uclass.c b/boot/bootdev-uclass.c
index 64ec4fde493..2e61c853142 100644
--- a/boot/bootdev-uclass.c
+++ b/boot/bootdev-uclass.c
@@ -16,6 +16,7 @@
#include <malloc.h>
#include <part.h>
#include <sort.h>
+#include <spl.h>
#include <dm/device-internal.h>
#include <dm/lists.h>
#include <dm/uclass-internal.h>
@@ -278,8 +279,13 @@ int bootdev_setup_for_sibling_blk(struct udevice *blk, const char *drv_name)
int ret, len;
len = bootdev_get_suffix_start(blk, ".blk");
- snprintf(dev_name, sizeof(dev_name), "%.*s.%s", len, blk->name,
- "bootdev");
+ if (xpl_phase() < PHASE_BOARD_R) {
+ strlcpy(dev_name, blk->name, sizeof(dev_name) - 5);
+ strcat(dev_name, ".sib");
+ } else {
+ snprintf(dev_name, sizeof(dev_name), "%.*s.%s", len, blk->name,
+ "bootdev");
+ }
parent = dev_get_parent(blk);
ret = device_find_child_by_name(parent, dev_name, &dev);