Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/sparc/prom/init_64.c
26425 views
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 ([email protected])
7
* Copyright (C) 1996,1997 Jakub Jelinek ([email protected])
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. */
19
char prom_version[80];
20
21
/* The root node of the prom device tree. */
22
int prom_stdout;
23
phandle 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
void __init prom_init(void *cif_handler)
30
{
31
phandle node;
32
33
prom_cif_init(cif_handler);
34
35
prom_chosen_node = prom_finddevice(prom_chosen_path);
36
if (!prom_chosen_node || (s32)prom_chosen_node == -1)
37
prom_halt();
38
39
prom_stdout = prom_getint(prom_chosen_node, "stdout");
40
41
node = prom_finddevice("/openprom");
42
if (!node || (s32)node == -1)
43
prom_halt();
44
45
prom_getstring(node, "version", prom_version, sizeof(prom_version));
46
47
prom_printf("\n");
48
}
49
50
void __init prom_init_report(void)
51
{
52
printk("PROMLIB: Sun IEEE Boot Prom '%s'\n", prom_version);
53
printk("PROMLIB: Root node compatible: %s\n", prom_root_compatible);
54
}
55
56