mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-04 04:02:26 +00:00
7da0c61157
This parameter is UML specific and is unknown to kernel. It should not be propagated to kernel, otherwise it will be passed to user space as an environment option by kernel with a warning like: Unknown kernel command line parameters "dtb=/foo", will be passed to user space. Signed-off-by: Tiwei Bie <tiwei.btw@antgroup.com> Link: https://patch.msgid.link/20241011040441.1586345-5-tiwei.btw@antgroup.com Signed-off-by: Johannes Berg <johannes.berg@intel.com>
43 lines
731 B
C
43 lines
731 B
C
// SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
#include <linux/init.h>
|
|
#include <linux/of_fdt.h>
|
|
#include <linux/printk.h>
|
|
#include <linux/memblock.h>
|
|
#include <init.h>
|
|
|
|
#include "um_arch.h"
|
|
|
|
static char *dtb __initdata;
|
|
|
|
void uml_dtb_init(void)
|
|
{
|
|
long long size;
|
|
void *area;
|
|
|
|
area = uml_load_file(dtb, &size);
|
|
if (area) {
|
|
if (!early_init_dt_scan(area)) {
|
|
pr_err("invalid DTB %s\n", dtb);
|
|
memblock_free(area, size);
|
|
return;
|
|
}
|
|
|
|
early_init_fdt_scan_reserved_mem();
|
|
}
|
|
|
|
unflatten_device_tree();
|
|
}
|
|
|
|
static int __init uml_dtb_setup(char *line, int *add)
|
|
{
|
|
*add = 0;
|
|
dtb = line;
|
|
return 0;
|
|
}
|
|
|
|
__uml_setup("dtb=", uml_dtb_setup,
|
|
"dtb=<file>\n"
|
|
" Boot the kernel with the devicetree blob from the specified file.\n"
|
|
);
|