RTEMS
6.3
Toggle main menu visibility
Loading...
Searching...
No Matches
bsps
sparc64
include
boot
ofw.h
1
/*
2
* Copyright (c) 2005 Martin Decky
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
*
9
* - Redistributions of source code must retain the above copyright
10
* notice, this list of conditions and the following disclaimer.
11
* - Redistributions in binary form must reproduce the above copyright
12
* notice, this list of conditions and the following disclaimer in the
13
* documentation and/or other materials provided with the distribution.
14
* - The name of the author may not be used to endorse or promote products
15
* derived from this software without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
*/
28
29
#ifndef BOOT_OFW_H_
30
#define BOOT_OFW_H_
31
32
#include <boot/types.h>
33
#include <stdarg.h>
34
35
#define MEMMAP_MAX_RECORDS 32
36
#define MAX_OFW_ARGS 12
37
38
#define OFW_TREE_PATH_MAX_LEN 256
39
#define OFW_TREE_PROPERTY_MAX_NAMELEN 32
40
#define OFW_TREE_PROPERTY_MAX_VALUELEN 64
41
42
typedef
unative_t ofw_arg_t;
43
typedef
unsigned
int
ihandle;
44
typedef
unsigned
int
phandle;
45
49
typedef
struct
{
50
ofw_arg_t
service
;
51
ofw_arg_t
nargs
;
52
ofw_arg_t
nret
;
53
ofw_arg_t
args
[MAX_OFW_ARGS];
54
}
ofw_args_t
;
55
56
typedef
struct
{
57
void
*start;
58
uint32_t size;
59
}
memzone_t
;
60
61
typedef
struct
{
62
uint32_t total;
63
uint32_t count;
64
memzone_t
zones[MEMMAP_MAX_RECORDS];
65
}
memmap_t
;
66
67
typedef
struct
{
68
uint32_t info;
69
uint32_t addr_hi;
70
uint32_t addr_lo;
71
}
pci_addr_t
;
72
73
typedef
struct
{
74
pci_addr_t
addr;
75
uint32_t size_hi;
76
uint32_t size_lo;
77
}
pci_reg_t
;
78
79
extern
uintptr_t ofw_cif;
80
81
extern
phandle ofw_chosen;
82
extern
ihandle ofw_stdout;
83
extern
phandle ofw_root;
84
extern
ihandle ofw_mmu;
85
extern
phandle ofw_memory;
86
87
extern
void
ofw_init(
void
);
88
89
extern
void
ofw_write(
const
char
*str,
const
int
len);
90
91
extern
int
ofw_get_property(
const
phandle device,
const
char
*name,
void
*buf,
const
int
buflen);
92
extern
int
ofw_get_proplen(
const
phandle device,
const
char
*name);
93
extern
int
ofw_next_property(
const
phandle device,
char
*previous,
char
*buf);
94
95
extern
phandle ofw_get_child_node(
const
phandle node);
96
extern
phandle ofw_get_peer_node(
const
phandle node);
97
extern
phandle ofw_find_device(
const
char
*name);
98
99
extern
int
ofw_package_to_path(
const
phandle device,
char
*buf,
const
int
buflen);
100
101
extern
int
ofw(
ofw_args_t
*arg);
102
extern
unsigned
long
ofw_call(
const
char
*service,
const
int
nargs,
const
int
nret, ofw_arg_t *rets, ...);
103
extern
void
ofw_write(
const
char
*str,
const
int
len);
104
extern
void
ofw_read(
void
*str,
const
int
len);
105
extern
unsigned
int
ofw_get_address_cells(
const
phandle device);
106
extern
unsigned
int
ofw_get_size_cells(
const
phandle device);
107
extern
void
*ofw_translate(
const
void
*virt);
108
extern
int
ofw_translate_failed(ofw_arg_t flag);
109
extern
void
*ofw_claim_virt(
const
void
*virt,
const
unsigned
int
len);
110
extern
void
*ofw_claim_phys(
const
void
*virt,
const
unsigned
int
len);
111
extern
void
*ofw_claim_phys_any(
const
unsigned
int
len,
const
unsigned
int
alignment);
112
extern
int
ofw_map(
const
void
*phys,
const
void
*virt,
const
unsigned
int
size,
const
int
mode);
113
extern
int
ofw_memmap(
memmap_t
*map);
114
extern
void
ofw_setup_screens(
void
);
115
extern
void
ofw_quiesce(
void
);
116
117
#endif
memmap_t
Definition
boot.h:72
memzone_t
Definition
boot.h:67
ofw_args_t
Definition
ofw.h:49
ofw_args_t::args
ofw_arg_t args[MAX_OFW_ARGS]
Definition
ofw.h:53
ofw_args_t::service
ofw_arg_t service
Definition
ofw.h:50
ofw_args_t::nret
ofw_arg_t nret
Definition
ofw.h:52
ofw_args_t::nargs
ofw_arg_t nargs
Definition
ofw.h:51
pci_addr_t
Definition
ofw.h:67
pci_reg_t
Definition
ofw.h:73
Generated by
1.18.0