mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-09 06:22:46 +00:00
8d03312528
'Core_tlb' ensures that core never throws pagefaults, in contrast to its base 'Tlb' that is planned to use displacement in the future. 'Core_tlb' enables the application of differenet memory attributes in core, according to the board specific partitioning of the physical address space. This way it enables caching in core.
79 lines
1.7 KiB
C++
79 lines
1.7 KiB
C++
/*
|
|
* \brief Driver for the Versatile Express A9X4 board
|
|
* \author Martin stein
|
|
* \date 2011-11-03
|
|
*/
|
|
|
|
/*
|
|
* Copyright (C) 2011-2012 Genode Labs GmbH
|
|
*
|
|
* This file is part of the Genode OS framework, which is distributed
|
|
* under the terms of the GNU General Public License version 2.
|
|
*/
|
|
|
|
#ifndef _INCLUDE__DRIVERS__BOARD_H_
|
|
#define _INCLUDE__DRIVERS__BOARD_H_
|
|
|
|
namespace Genode
|
|
{
|
|
/**
|
|
* Driver for the Versatile Express A9X4 board
|
|
*
|
|
* Implies the uATX motherboard and the CoreTile Express A9X4 daughterboard
|
|
*/
|
|
struct Board
|
|
{
|
|
enum
|
|
{
|
|
/* MMIO */
|
|
MMIO_0_BASE = 0x10000000,
|
|
MMIO_0_SIZE = 0x10000000,
|
|
MMIO_1_BASE = 0x4C000000,
|
|
MMIO_1_SIZE = 0x04000000,
|
|
|
|
/* RAM */
|
|
RAM_0_BASE = 0x00000000,
|
|
RAM_0_SIZE = 0x04000000,
|
|
RAM_1_BASE = 0x60000000,
|
|
RAM_1_SIZE = 0x20000000,
|
|
RAM_2_BASE = 0x84000000,
|
|
RAM_2_SIZE = 0x1c000000,
|
|
RAM_3_BASE = 0x48000000,
|
|
RAM_3_SIZE = 0x01ffffff,
|
|
|
|
/* UART */
|
|
PL011_0_MMIO_BASE = MMIO_0_BASE + 0x9000,
|
|
PL011_0_MMIO_SIZE = 0x1000,
|
|
PL011_0_CLOCK = 24*1000*1000,
|
|
PL011_0_IRQ = 5,
|
|
|
|
/* timer/counter */
|
|
SP804_0_1_MMIO_BASE = MMIO_0_BASE + 0x11000,
|
|
SP804_0_1_MMIO_SIZE = 0x1000,
|
|
SP804_0_1_CLOCK = 1000*1000,
|
|
SP804_0_1_IRQ = 34,
|
|
|
|
/* clocks */
|
|
TCREF_CLOCK = 66670*1000,
|
|
|
|
/* TrustZone Address Space Controller */
|
|
TZASC_MMIO_BASE = 0x100ec000,
|
|
TZASC_MMIO_SIZE = 0x1000,
|
|
|
|
/* TrustZone Protection Controller */
|
|
TZPC_MMIO_BASE = 0x100e6000,
|
|
TZPC_MMIO_SIZE = 0x1000,
|
|
|
|
/* CPU */
|
|
CORTEX_A9_PRIVATE_MEM_BASE = 0x1e000000,
|
|
CORTEX_A9_PRIVATE_MEM_SIZE = 0x2000,
|
|
CORTEX_A9_CLOCK = TCREF_CLOCK,
|
|
|
|
SECURITY_EXTENSION = 1,
|
|
};
|
|
};
|
|
}
|
|
|
|
#endif /* _INCLUDE__DRIVERS__BOARD_H_ */
|
|
|