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