mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-21 10:43:06 +00:00
e602dd5238
Octeon needs a platform specific cmd to boot the Linux kernel, as specific parameters need to be passed and special handling for the multiple cores (SMP) is needed. Co-developed-by: Stefan Roese <sr@denx.de> Signed-off-by: Aaron Williams <awilliams@marvell.com> Signed-off-by: Stefan Roese <sr@denx.de> [use gd->ram_base instead of gd->bd->bi_memstart] Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
54 lines
1.5 KiB
C
54 lines
1.5 KiB
C
/* 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__ */
|