sysinfo.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. #ifndef _COREBOOT_SYSINFO_H
  9. #define _COREBOOT_SYSINFO_H
  10. #include <asm/arch/tables.h>
  11. /* Maximum number of memory range definitions */
  12. #define SYSINFO_MAX_MEM_RANGES 32
  13. /* Allow a maximum of 8 GPIOs */
  14. #define SYSINFO_MAX_GPIOS 8
  15. struct sysinfo_t {
  16. int n_memranges;
  17. struct memrange {
  18. unsigned long long base;
  19. unsigned long long size;
  20. unsigned int type;
  21. } memrange[SYSINFO_MAX_MEM_RANGES];
  22. u32 cmos_range_start;
  23. u32 cmos_range_end;
  24. u32 cmos_checksum_location;
  25. u32 vbnv_start;
  26. u32 vbnv_size;
  27. char *version;
  28. char *extra_version;
  29. char *build;
  30. char *compile_time;
  31. char *compile_by;
  32. char *compile_host;
  33. char *compile_domain;
  34. char *compiler;
  35. char *linker;
  36. char *assembler;
  37. struct cb_framebuffer *framebuffer;
  38. int num_gpios;
  39. struct cb_gpio gpios[SYSINFO_MAX_GPIOS];
  40. void *vdat_addr;
  41. u32 vdat_size;
  42. void *tstamp_table;
  43. void *cbmem_cons;
  44. struct cb_serial *serial;
  45. };
  46. extern struct sysinfo_t lib_sysinfo;
  47. #endif