163f559cdSGabe Black /* 263f559cdSGabe Black * This file is part of the libpayload project. 363f559cdSGabe Black * 463f559cdSGabe Black * Copyright (C) 2008 Advanced Micro Devices, Inc. 563f559cdSGabe Black * 6cb3761eaSWolfgang Denk * SPDX-License-Identifier: BSD-3-Clause 763f559cdSGabe Black */ 863f559cdSGabe Black 963f559cdSGabe Black #ifndef _COREBOOT_SYSINFO_H 1063f559cdSGabe Black #define _COREBOOT_SYSINFO_H 1163f559cdSGabe Black 12f1d6fda6SBin Meng #include <asm/coreboot_tables.h> 1363f559cdSGabe Black 1489b87081SBin Meng /* Maximum number of memory range definitions */ 1589b87081SBin Meng #define SYSINFO_MAX_MEM_RANGES 32 16402ed004SSimon Glass /* Allow a maximum of 8 GPIOs */ 17402ed004SSimon Glass #define SYSINFO_MAX_GPIOS 8 1863f559cdSGabe Black 1963f559cdSGabe Black struct sysinfo_t { 2063f559cdSGabe Black int n_memranges; 2163f559cdSGabe Black struct memrange { 2263f559cdSGabe Black unsigned long long base; 2363f559cdSGabe Black unsigned long long size; 2463f559cdSGabe Black unsigned int type; 2563f559cdSGabe Black } memrange[SYSINFO_MAX_MEM_RANGES]; 2663f559cdSGabe Black 2763f559cdSGabe Black u32 cmos_range_start; 2863f559cdSGabe Black u32 cmos_range_end; 2963f559cdSGabe Black u32 cmos_checksum_location; 30402ed004SSimon Glass u32 vbnv_start; 31402ed004SSimon Glass u32 vbnv_size; 32402ed004SSimon Glass 33402ed004SSimon Glass char *version; 34402ed004SSimon Glass char *extra_version; 35402ed004SSimon Glass char *build; 36402ed004SSimon Glass char *compile_time; 37402ed004SSimon Glass char *compile_by; 38402ed004SSimon Glass char *compile_host; 39402ed004SSimon Glass char *compile_domain; 40402ed004SSimon Glass char *compiler; 41402ed004SSimon Glass char *linker; 42402ed004SSimon Glass char *assembler; 4363f559cdSGabe Black 4463f559cdSGabe Black struct cb_framebuffer *framebuffer; 4563f559cdSGabe Black 46402ed004SSimon Glass int num_gpios; 47402ed004SSimon Glass struct cb_gpio gpios[SYSINFO_MAX_GPIOS]; 48402ed004SSimon Glass 49402ed004SSimon Glass void *vdat_addr; 50402ed004SSimon Glass u32 vdat_size; 51402ed004SSimon Glass void *tstamp_table; 52402ed004SSimon Glass void *cbmem_cons; 53402ed004SSimon Glass 54402ed004SSimon Glass struct cb_serial *serial; 5563f559cdSGabe Black }; 5663f559cdSGabe Black 5763f559cdSGabe Black extern struct sysinfo_t lib_sysinfo; 5863f559cdSGabe Black 59*1329020dSBin Meng int get_coreboot_info(struct sysinfo_t *info); 60*1329020dSBin Meng 6163f559cdSGabe Black #endif 62