spl.c 799 B

1234567891011121314151617181920212223242526272829
  1. // SPDX-License-Identifier: GPL-2.0+
  2. /*
  3. * Copyright 2012 Stefan Roese <sr@denx.de>
  4. */
  5. #include <common.h>
  6. #include <config.h>
  7. #include <log.h>
  8. #include <spl.h>
  9. #include <image.h>
  10. #include <linux/compiler.h>
  11. /*
  12. * This function jumps to an image with argument. Normally an FDT or ATAGS
  13. * image.
  14. */
  15. #ifdef CONFIG_SPL_OS_BOOT
  16. void __noreturn jump_to_image_linux(struct spl_image_info *spl_image)
  17. {
  18. debug("Entering kernel arg pointer: 0x%p\n", spl_image->arg);
  19. typedef void (*image_entry_arg_t)(void *, ulong r4, ulong r5, ulong r6,
  20. ulong r7, ulong r8, ulong r9)
  21. __attribute__ ((noreturn));
  22. image_entry_arg_t image_entry =
  23. (image_entry_arg_t)spl_image->entry_point;
  24. image_entry(spl_image->arg, 0, 0, EPAPR_MAGIC, CONFIG_SYS_BOOTMAPSZ,
  25. 0, 0);
  26. }
  27. #endif /* CONFIG_SPL_OS_BOOT */