bootoct_cmd.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Copyright (C) 2020 Marvell International Ltd.
  4. */
  5. #ifndef __BOOTOCT_CMD_H__
  6. #define __BOOTOCT_CMD_H__
  7. #include "cvmx-coremask.h"
  8. enum octeon_boot_cmd_type {
  9. BOOTOCT,
  10. BOOTOCTLINUX,
  11. BOOTOCTELF
  12. };
  13. /** Structure to contain results of command line argument parsing */
  14. struct octeon_boot_args {
  15. struct cvmx_coremask coremask; /** Parsed coremask */
  16. int num_cores[CVMX_MAX_NODES]; /** number of cores */
  17. int num_skipped[CVMX_MAX_NODES];/** number of skipped cores */
  18. const char *app_name; /** Application name */
  19. const char *named_block; /** Named block to load Linux into */
  20. u32 stack_size; /** stack size */
  21. u32 heap_size; /** heap size */
  22. u32 boot_flags; /** boot flags */
  23. int node_mask; /** Node mask to use */
  24. int console_uart; /** serial console number */
  25. bool forceboot; /** force booting if core 0 not set */
  26. bool coremask_set; /** set if coremask was set */
  27. bool num_cores_set; /** Set if num_cores was set */
  28. bool num_skipped_set; /** Set if num_skipped was set */
  29. /** Set if endbootargs parameter was passed. */
  30. bool endbootargs;
  31. };
  32. /**
  33. * Parse command line arguments
  34. *
  35. * @param argc number of arguments
  36. * @param[in] argv array of argument strings
  37. * @param cmd command type
  38. * @param[out] boot_args parsed values
  39. *
  40. * Return: number of arguments parsed
  41. */
  42. int octeon_parse_bootopts(int argc, char *const argv[],
  43. enum octeon_boot_cmd_type cmd,
  44. struct octeon_boot_args *boot_args);
  45. void nmi_bootvector(void);
  46. extern u64 nmi_handler_para[];
  47. #endif /* __BOOTOCT_CMD_H__ */