acrn-hypervisor/hypervisor/debug/dbg_cmd.c
Geoffroy Van Cutsem 8b16be9185 Remove "All rights reserved" string headers
Many of the license and Intel copyright headers include the "All rights
reserved" string. It is not relevant in the context of the BSD-3-Clause
license that the code is released under. This patch removes those strings
throughout the code (hypervisor, devicemodel and misc).

Tracked-On: #7254
Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2022-04-06 13:21:02 +08:00

63 lines
1.3 KiB
C

/*
* Copyright (C) 2018 Intel Corporation.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <types.h>
#include <rtl.h>
#include <pci.h>
#include <uart16550.h>
#include <dbg_cmd.h>
#define MAX_PORT 0x10000 /* port 0 - 64K */
#define DEFAULT_UART_PORT 0x3F8
#define MAX_CMD_LEN 64
static struct uart_cmd {
const char *const str;
int type;
} cmd_list[] = {
{ "uart=port@", PIO }, /* uart=port@0x3F8 */
{ "uart=bdf@", PCI }, /* uart=bdf@0xc1 */
{ "uart=mmio@", MMIO }, /* uart=mmio@0xfe040000 */
{ "uart=disabled", INVALID }
};
bool handle_dbg_cmd(const char *cmd, int32_t len)
{
uint32_t i;
uint64_t data;
for (i = 0; i < ARRAY_SIZE(cmd_list); i++) {
int32_t tmp = strnlen_s(cmd_list[i].str, MAX_CMD_LEN);
int type = cmd_list[i].type;
/* cmd prefix should be same with one in cmd_list */
if (len < tmp)
continue;
if (strncmp(cmd_list[i].str, cmd, tmp) != 0)
continue;
if (type == INVALID) {
/* set uart disabled*/
uart16550_set_property(false, type, 0UL);
} else if (type == PIO) {
data = strtoul_hex(cmd + tmp);
if (data > MAX_PORT) {
data = DEFAULT_UART_PORT;
}
uart16550_set_property(true, type, data);
} else {
data = strtoul_hex(cmd + tmp);
uart16550_set_property(true, type, data);
}
}
return (i < ARRAY_SIZE(cmd_list));
}