1/*
2 * Copyright (c) 2018, ETH Zurich.
3 * All rights reserved.
4 *
5 * This file is distributed under the terms in the attached LICENSE file.
6 * If you do not find this file, copies can be found by writing to:
7 * ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group.
8 */
9
10#ifndef __RPI3_MINIUART_H__
11#define __RPI3_MINIUART_H__
12
13#include <barrelfish_kpi/types.h>
14#include <stdbool.h>
15
16/*
17 * \briefConfigure a port.
18 *
19 * This happens at system startup, and before the MMU is turned on.
20 * The hardware is not initialized by this call.
21 * After this, the UART is (hopefully) usable, but after the MMU is
22 * enabled the OS should then call rpi3_miniuart_init below.
23 */
24extern void rpi3_minuart_configure(lpaddr_t addr);
25
26/*
27 * \brief Initialize a UART, and a number to refer to it in the
28 * future.
29 *
30 * \param port : Physical address of the UART.
31 * \param hwinit : Also init the hardware itself if True
32 */
33extern void rpi3_miniuart_init(lvaddr_t base, bool hwinit);
34
35#endif // __PL011_H__
36