spl.c 835 B

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