kexec.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #ifndef _PPC64_KEXEC_H
  2. #define _PPC64_KEXEC_H
  3. /*
  4. * KEXEC_SOURCE_MEMORY_LIMIT maximum page get_free_page can return.
  5. * I.e. Maximum page that is mapped directly into kernel memory,
  6. * and kmap is not required.
  7. */
  8. /* Maximum physical address we can use pages from */
  9. /* XXX: since we copy virt we can use any page we allocate */
  10. #define KEXEC_SOURCE_MEMORY_LIMIT (-1UL)
  11. /* Maximum address we can reach in physical address mode */
  12. /* XXX: I want to allow initrd in highmem. otherwise set to rmo on lpar */
  13. #define KEXEC_DESTINATION_MEMORY_LIMIT (-1UL)
  14. /* Maximum address we can use for the control code buffer */
  15. /* XXX: unused today, ppc32 uses TASK_SIZE, probably left over from use_mm */
  16. #define KEXEC_CONTROL_MEMORY_LIMIT (-1UL)
  17. /* XXX: today we don't use this at all, althogh we have a static stack */
  18. #define KEXEC_CONTROL_CODE_SIZE 4096
  19. /* The native architecture */
  20. #define KEXEC_ARCH KEXEC_ARCH_PPC64
  21. #define MAX_NOTE_BYTES 1024
  22. #ifndef __ASSEMBLY__
  23. typedef u32 note_buf_t[MAX_NOTE_BYTES/4];
  24. extern note_buf_t crash_notes[];
  25. extern void kexec_smp_wait(void); /* get and clear naca physid, wait for
  26. master to copy new code to 0 */
  27. #endif /* __ASSEMBLY__ */
  28. #endif /* _PPC_KEXEC_H */