x86: Move sysinfo related to sysinfo.h
[oweals/u-boot.git] / arch / x86 / include / asm / arch-coreboot / sysinfo.h
1 /*
2  * This file is part of the libpayload project.
3  *
4  * Copyright (C) 2008 Advanced Micro Devices, Inc.
5  *
6  * SPDX-License-Identifier:     BSD-3-Clause
7  */
8
9 #ifndef _COREBOOT_SYSINFO_H
10 #define _COREBOOT_SYSINFO_H
11
12 #include <asm/coreboot_tables.h>
13
14 /* Maximum number of memory range definitions */
15 #define SYSINFO_MAX_MEM_RANGES  32
16 /* Allow a maximum of 8 GPIOs */
17 #define SYSINFO_MAX_GPIOS       8
18
19 struct sysinfo_t {
20         int n_memranges;
21         struct memrange {
22                 unsigned long long base;
23                 unsigned long long size;
24                 unsigned int type;
25         } memrange[SYSINFO_MAX_MEM_RANGES];
26
27         u32 cmos_range_start;
28         u32 cmos_range_end;
29         u32 cmos_checksum_location;
30         u32 vbnv_start;
31         u32 vbnv_size;
32
33         char *version;
34         char *extra_version;
35         char *build;
36         char *compile_time;
37         char *compile_by;
38         char *compile_host;
39         char *compile_domain;
40         char *compiler;
41         char *linker;
42         char *assembler;
43
44         struct cb_framebuffer *framebuffer;
45
46         int num_gpios;
47         struct cb_gpio gpios[SYSINFO_MAX_GPIOS];
48
49         void    *vdat_addr;
50         u32     vdat_size;
51         void    *tstamp_table;
52         void    *cbmem_cons;
53
54         struct cb_serial *serial;
55 };
56
57 extern struct sysinfo_t lib_sysinfo;
58
59 int get_coreboot_info(struct sysinfo_t *info);
60
61 #endif