| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* |
| * Copyright (C) 2020 Marvell International Ltd. |
| */ |
| |
| #ifndef __BOOTOCT_CMD_H__ |
| #define __BOOTOCT_CMD_H__ |
| |
| #include "cvmx-coremask.h" |
| |
| enum octeon_boot_cmd_type { |
| BOOTOCT, |
| BOOTOCTLINUX, |
| BOOTOCTELF |
| }; |
| |
| /** Structure to contain results of command line argument parsing */ |
| struct octeon_boot_args { |
| struct cvmx_coremask coremask; /** Parsed coremask */ |
| int num_cores[CVMX_MAX_NODES]; /** number of cores */ |
| int num_skipped[CVMX_MAX_NODES];/** number of skipped cores */ |
| const char *app_name; /** Application name */ |
| const char *named_block; /** Named block to load Linux into */ |
| u32 stack_size; /** stack size */ |
| u32 heap_size; /** heap size */ |
| u32 boot_flags; /** boot flags */ |
| int node_mask; /** Node mask to use */ |
| int console_uart; /** serial console number */ |
| bool forceboot; /** force booting if core 0 not set */ |
| bool coremask_set; /** set if coremask was set */ |
| bool num_cores_set; /** Set if num_cores was set */ |
| bool num_skipped_set; /** Set if num_skipped was set */ |
| /** Set if endbootargs parameter was passed. */ |
| bool endbootargs; |
| }; |
| |
| /** |
| * Parse command line arguments |
| * |
| * @param argc number of arguments |
| * @param[in] argv array of argument strings |
| * @param cmd command type |
| * @param[out] boot_args parsed values |
| * |
| * Return: number of arguments parsed |
| */ |
| int octeon_parse_bootopts(int argc, char *const argv[], |
| enum octeon_boot_cmd_type cmd, |
| struct octeon_boot_args *boot_args); |
| |
| void nmi_bootvector(void); |
| extern u64 nmi_handler_para[]; |
| |
| #endif /* __BOOTOCT_CMD_H__ */ |