blob: 384542e666066847851864213dd46686e0580034 [file] [log] [blame]
Mario Bălănicăc883ce02023-12-02 03:08:02 +02001/*
2 * Copyright (c) 2016-2024, Arm Limited and Contributors. All rights reserved.
3 * Copyright (c) 2024, Mario Bălănică <mariobalanica02@gmail.com>
4 *
5 * SPDX-License-Identifier: BSD-3-Clause
6 */
7
8#ifndef RPI_HW_H
9#define RPI_HW_H
10
11#include <lib/utils_def.h>
12
13/*
14 * Peripherals
15 */
16
17#define RPI_IO_BASE ULL(0x1000000000)
18#define RPI_IO_SIZE ULL(0x1000000000)
19
20/*
21 * ARM <-> VideoCore mailboxes
22 */
23#define RPI3_MBOX_BASE (RPI_IO_BASE + ULL(0x7c013880))
24
25/*
26 * Power management, reset controller, watchdog.
27 */
28#define RPI3_PM_BASE (RPI_IO_BASE + ULL(0x7d200000))
29
30/*
31 * Hardware random number generator.
32 */
33#define RPI3_RNG_BASE (RPI_IO_BASE + ULL(0x7d208000))
34
35/*
36 * PL011 system serial port
37 */
38#define RPI4_PL011_UART_BASE (RPI_IO_BASE + ULL(0x7d001000))
39#define RPI4_PL011_UART_CLOCK ULL(44000000)
40
41/*
42 * GIC interrupt controller
43 */
44#define RPI_HAVE_GIC
45#define RPI4_GIC_GICD_BASE (RPI_IO_BASE + ULL(0x7fff9000))
46#define RPI4_GIC_GICC_BASE (RPI_IO_BASE + ULL(0x7fffa000))
47
48#define RPI4_LOCAL_CONTROL_BASE_ADDRESS (RPI_IO_BASE + ULL(0x7c280000))
49#define RPI4_LOCAL_CONTROL_PRESCALER (RPI_IO_BASE + ULL(0x7c280008))
50
51#endif /* RPI_HW_H */