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