1/**
2 * \file plat_arm_vm.c
3 * \brief
4 */
5
6
7/*
8 * Copyright (c) 2016 ETH Zurich.
9 * All rights reserved.
10 *
11 * This file is distributed under the terms in the attached LICENSE file.
12 * If you do not find this file, copies can be found by writing to:
13 * ETH Zurich D-INFK, Universitaetsstrasse 6, CH-8092 Zurich. Attn: Systems Group.
14 */
15
16#include <kernel.h>
17#include <offsets.h>
18#include <platform.h>
19#include <serial.h>
20#include <arch/arm/pl011.h>
21#include <arch/armv8/gic_v3.h>
22
23errval_t serial_init(unsigned port, bool initialize_hw)
24{
25    lvaddr_t base = local_phys_to_mem(uart_base[port]);
26    pl011_init(port, base, initialize_hw);
27    return SYS_ERR_OK;
28};
29
30/*
31 * Return the address of the UART device.
32 */
33lpaddr_t platform_get_uart_address(unsigned port)
34{
35    return local_phys_to_mem(uart_base[port]);
36}
37
38/*
39 * Do any extra initialisation for this particular CPU (e.g. A9/A15).
40 */
41void platform_revision_init(void)
42{
43
44}
45
46/*
47 * Figure out how much RAM we have
48 */
49size_t platform_get_ram_size(void)
50{
51    return 0;
52}
53
54/*
55 * Boot secondary processors
56 */
57errval_t platform_boot_core(hwid_t target, genpaddr_t gen_entry, genpaddr_t context)
58{
59    return 0;
60}
61
62void platform_notify_bsp(lpaddr_t *mailbox)
63{
64
65}
66
67
68/*
69 * Return the core count
70 */
71size_t platform_get_core_count(void)
72{
73    return 0;
74}
75
76/*
77 * Print system identification. MMU is NOT yet enabled.
78 */
79void platform_print_id(void)
80{
81
82}
83
84/*
85 * Fill out provided `struct platform_info`
86 */
87void platform_get_info(struct platform_info *pi)
88{
89    pi->arch = PI_ARCH_ARMV8A;
90    pi->platform = PI_PLATFORM_FVP;
91}
92
93void armv8_get_info(struct arch_info_armv8 *ai)
94{
95
96}
97