cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

dtb.c (720B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2
      3#include <linux/init.h>
      4#include <linux/of_fdt.h>
      5#include <linux/printk.h>
      6#include <linux/memblock.h>
      7#include <init.h>
      8
      9#include "um_arch.h"
     10
     11static char *dtb __initdata;
     12
     13void uml_dtb_init(void)
     14{
     15	long long size;
     16	void *area;
     17
     18	area = uml_load_file(dtb, &size);
     19	if (!area)
     20		return;
     21
     22	if (!early_init_dt_scan(area)) {
     23		pr_err("invalid DTB %s\n", dtb);
     24		memblock_free(area, size);
     25		return;
     26	}
     27
     28	early_init_fdt_scan_reserved_mem();
     29	unflatten_device_tree();
     30}
     31
     32static int __init uml_dtb_setup(char *line, int *add)
     33{
     34	dtb = line;
     35	return 0;
     36}
     37
     38__uml_setup("dtb=", uml_dtb_setup,
     39"dtb=<file>\n"
     40"    Boot the kernel with the devicetree blob from the specified file.\n"
     41);