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