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