handoff.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Passing basic information from SPL to U-Boot proper
  4. *
  5. * Copyright 2018 Google, Inc
  6. */
  7. #ifndef __HANDOFF_H
  8. #define __HANDOFF_H
  9. #if CONFIG_IS_ENABLED(HANDOFF)
  10. #include <asm/handoff.h>
  11. /**
  12. * struct spl_handoff - information passed from SPL to U-Boot proper
  13. *
  14. * @ram_size: Value to use for gd->ram_size
  15. */
  16. struct spl_handoff {
  17. struct arch_spl_handoff arch;
  18. u64 ram_size;
  19. struct {
  20. u64 start;
  21. u64 size;
  22. } ram_bank[CONFIG_NR_DRAM_BANKS];
  23. };
  24. void handoff_save_dram(struct spl_handoff *ho);
  25. void handoff_load_dram_size(struct spl_handoff *ho);
  26. void handoff_load_dram_banks(struct spl_handoff *ho);
  27. /**
  28. * handoff_arch_save() - Save arch-specific info into the handoff area
  29. *
  30. * This is defined to an empty function by default, but arch-specific code can
  31. * define it to write to spi_handoff->arch. It is called from
  32. * write_spl_handoff().
  33. *
  34. * @ho: Handoff area to fill in
  35. * @return 0 if OK, -ve on error
  36. */
  37. int handoff_arch_save(struct spl_handoff *ho);
  38. #endif
  39. #endif