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

init_64.c (1368B)


      1// SPDX-License-Identifier: GPL-2.0
      2/*
      3 * init.c:  Initialize internal variables used by the PROM
      4 *          library functions.
      5 *
      6 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
      7 * Copyright (C) 1996,1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
      8 */
      9
     10#include <linux/kernel.h>
     11#include <linux/init.h>
     12#include <linux/string.h>
     13#include <linux/ctype.h>
     14
     15#include <asm/openprom.h>
     16#include <asm/oplib.h>
     17
     18/* OBP version string. */
     19char prom_version[80];
     20
     21/* The root node of the prom device tree. */
     22int prom_stdout;
     23phandle prom_chosen_node;
     24
     25/* You must call prom_init() before you attempt to use any of the
     26 * routines in the prom library.
     27 * It gets passed the pointer to the PROM vector.
     28 */
     29
     30extern void prom_cif_init(void *);
     31
     32void __init prom_init(void *cif_handler)
     33{
     34	phandle node;
     35
     36	prom_cif_init(cif_handler);
     37
     38	prom_chosen_node = prom_finddevice(prom_chosen_path);
     39	if (!prom_chosen_node || (s32)prom_chosen_node == -1)
     40		prom_halt();
     41
     42	prom_stdout = prom_getint(prom_chosen_node, "stdout");
     43
     44	node = prom_finddevice("/openprom");
     45	if (!node || (s32)node == -1)
     46		prom_halt();
     47
     48	prom_getstring(node, "version", prom_version, sizeof(prom_version));
     49
     50	prom_printf("\n");
     51}
     52
     53void __init prom_init_report(void)
     54{
     55	printk("PROMLIB: Sun IEEE Boot Prom '%s'\n", prom_version);
     56	printk("PROMLIB: Root node compatible: %s\n", prom_root_compatible);
     57}