platform: Move platform common to lib/utils.

Currently, platform/common contains platform/non-platform specific
common minimal drivers and libraries. This is helpful is all platforms
are built within opensbi framework.

Move them to lib/utils so that any external platform code also can
reuse the minimalistic drivers or other common libraries.

This patch doesn't introduce any functional changes.

Signed-off-by: Atish Patra <atish.patra@wdc.com>
Acked-by: Anup Patel <anup.patel@wdc.com>
This commit is contained in:
Atish Patra
2019-06-18 14:54:03 -07:00
committed by Anup Patel
parent 98aaf8317b
commit 793e5e1184
38 changed files with 48 additions and 38 deletions

View File

@@ -0,0 +1,21 @@
/*
* SPDX-License-Identifier: BSD-2-Clause
*
* Copyright (c) 2019 Western Digital Corporation or its affiliates.
*
* Authors:
* Anup Patel <anup.patel@wdc.com>
*/
#ifndef __IRQCHIP_PLIC_H__
#define __IRQCHIP_PLIC_H__
#include <sbi/sbi_types.h>
void plic_fdt_fixup(void *fdt, const char *compat);
int plic_warm_irqchip_init(u32 target_hart, int m_cntx_id, int s_cntx_id);
int plic_cold_irqchip_init(unsigned long base, u32 num_sources, u32 hart_count);
#endif

View File

@@ -0,0 +1,21 @@
/*
* SPDX-License-Identifier: BSD-2-Clause
*
* Copyright (c) 2019 Western Digital Corporation or its affiliates.
*
* Authors:
* Anup Patel <anup.patel@wdc.com>
*/
#ifndef __SERIAL_SIFIVE_UART_H__
#define __SERIAL_SIFIVE_UART_H__
#include <sbi/sbi_types.h>
void sifive_uart_putc(char ch);
int sifive_uart_getc(void);
int sifive_uart_init(unsigned long base, u32 in_freq, u32 baudrate);
#endif

View File

@@ -0,0 +1,22 @@
/*
* SPDX-License-Identifier: BSD-2-Clause
*
* Copyright (c) 2019 Western Digital Corporation or its affiliates.
*
* Authors:
* Anup Patel <anup.patel@wdc.com>
*/
#ifndef __SERIAL_UART8250_H__
#define __SERIAL_UART8250_H__
#include <sbi/sbi_types.h>
void uart8250_putc(char ch);
int uart8250_getc(void);
int uart8250_init(unsigned long base, u32 in_freq, u32 baudrate, u32 reg_shift,
u32 reg_width);
#endif

View File

@@ -0,0 +1,35 @@
/*
* SPDX-License-Identifier: BSD-2-Clause
*
* Copyright (c) 2019 Western Digital Corporation or its affiliates.
*
* Authors:
* Anup Patel <anup.patel@wdc.com>
*/
#ifndef __SYS_CLINT_H__
#define __SYS_CLINT_H__
#include <sbi/sbi_types.h>
void clint_ipi_send(u32 target_hart);
void clint_ipi_sync(u32 target_hart);
void clint_ipi_clear(u32 target_hart);
int clint_warm_ipi_init(void);
int clint_cold_ipi_init(unsigned long base, u32 hart_count);
u64 clint_timer_value(void);
void clint_timer_event_stop(void);
void clint_timer_event_start(u64 next_event);
int clint_warm_timer_init(void);
int clint_cold_timer_init(unsigned long base, u32 hart_count);
#endif

View File

@@ -0,0 +1,67 @@
/*
* SPDX-License-Identifier: BSD-2-Clause
*
* Copyright (c) 2019 Western Digital Corporation or its affiliates.
*
* Authors:
* Anup Patel <anup.patel@wdc.com>
*/
#ifndef __FDT_H__
#define __FDT_H__
#include <sbi/sbi_types.h>
struct fdt_node {
char *data;
const struct fdt_node *parent;
const char *name;
int depth;
int address_cells;
int size_cells;
};
struct fdt_prop {
const struct fdt_node *node;
const char *name;
void *value;
u32 len;
};
/* Reverse byte-order of 32bit number */
u32 fdt_rev32(u32 v);
/* Length of a string */
ulong fdt_strlen(const char *str);
/* Compate two strings */
int fdt_strcmp(const char *a, const char *b);
/* Find index of matching string from a list of strings */
int fdt_prop_string_index(const struct fdt_prop *prop, const char *str);
/* Iterate over each property of matching node */
int fdt_match_node_prop(void *fdt,
int (*match)(const struct fdt_node *node,
const struct fdt_prop *prop, void *priv),
void *match_priv,
void (*fn)(const struct fdt_node *node,
const struct fdt_prop *prop, void *priv),
void *fn_priv);
/* Iterate over each property of compatible node */
int fdt_compat_node_prop(void *fdt, const char *compat,
void (*fn)(const struct fdt_node *node,
const struct fdt_prop *prop, void *priv),
void *fn_priv);
/* Iterate over each node and property */
int fdt_walk(void *fdt,
void (*fn)(const struct fdt_node *node,
const struct fdt_prop *prop, void *priv),
void *fn_priv);
/* Get size of FDT */
u32 fdt_size(void *fdt);
#endif