boot: pxe: Allow loading a kernel without kernel_addr_r

When this environment variable is missing, reserve space using lmb.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2025-08-07 05:22:31 -06:00
parent d6c2e45c4f
commit 137765cf69

View File

@@ -691,18 +691,12 @@ static int label_boot(struct pxe_context *ctx, struct pxe_label *label)
if (get_relfile_envaddr(ctx, label->kernel, "kernel_addr_r", SZ_2M,
(enum bootflow_img_t)IH_TYPE_KERNEL,
&addr, NULL) < 0) {
&kern_addr, NULL) < 0) {
printf("Skipping %s for failure retrieving kernel\n",
label->name);
return 1;
}
kern_addr = env_get_hex("kernel_addr_r", 0);
if (!kern_addr) {
printf("No kernel_addr_r available for kernel\n");
return 1;
}
/* for FIT, append the configuration identifier */
snprintf(fit_addr, sizeof(fit_addr), "%lx%s", kern_addr,
label->config ? label->config : "");