1 /*
2  * Copyright 2020-2021 NXP
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 #ifndef SCFG_H
9 #define SCFG_H
10 
11 #ifdef CONFIG_CHASSIS_2
12 
13 /* SCFG register offsets */
14 #define SCFG_CORE0_SFT_RST_OFFSET	0x0130
15 #define SCFG_SNPCNFGCR_OFFSET		0x01A4
16 #define SCFG_CORESRENCR_OFFSET		0x0204
17 #define SCFG_RVBAR0_0_OFFSET		0x0220
18 #define SCFG_RVBAR0_1_OFFSET		0x0224
19 #define SCFG_COREBCR_OFFSET		0x0680
20 #define SCFG_RETREQCR_OFFSET		0x0424
21 
22 #define SCFG_COREPMCR_OFFSET		0x042C
23 #define COREPMCR_WFIL2			0x1
24 
25 #define SCFG_GIC400_ADDR_ALIGN_OFFSET	0x0188
26 #define SCFG_BOOTLOCPTRH_OFFSET		0x0600
27 #define SCFG_BOOTLOCPTRL_OFFSET		0x0604
28 #define SCFG_SCRATCHRW2_OFFSET		0x0608
29 #define SCFG_SCRATCHRW3_OFFSET		0x060C
30 
31 /* SCFG bit fields */
32 #define SCFG_SNPCNFGCR_SECRDSNP		0x80000000
33 #define SCFG_SNPCNFGCR_SECWRSNP		0x40000000
34 
35 /* GIC Address Align Register */
36 #define SCFG_GIC400_ADDR_ALIGN_4KMODE_MASK	0x80000000
37 #define SCFG_GIC400_ADDR_ALIGN_4KMODE_EN	0x80000000
38 #define SCFG_GIC400_ADDR_ALIGN_4KMODE_DIS	0x0
39 
40 #endif /* CONFIG_CHASSIS_2 */
41 
42 #ifndef __ASSEMBLER__
43 #include <endian.h>
44 #include <lib/mmio.h>
45 
46 #ifdef NXP_SCFG_BE
47 #define scfg_in32(a)		bswap32(mmio_read_32((uintptr_t)(a)))
48 #define scfg_out32(a, v)	mmio_write_32((uintptr_t)(a), bswap32(v))
49 #define scfg_setbits32(a, v)	mmio_setbits_32((uintptr_t)(a), v)
50 #define scfg_clrbits32(a, v)	mmio_clrbits_32((uintptr_t)(a), v)
51 #define scfg_clrsetbits32(a, clear, set)	\
52 				mmio_clrsetbits_32((uintptr_t)(a), clear, set)
53 #elif defined(NXP_SCFG_LE)
54 #define scfg_in32(a)		mmio_read_32((uintptr_t)(a))
55 #define scfg_out32(a, v)	mmio_write_32((uintptr_t)(a), v)
56 #define scfg_setbits32(a, v)	mmio_setbits_32((uintptr_t)(a), v)
57 #define scfg_clrbits32(a, v)	mmio_clrbits_32((uintptr_t)(a), v)
58 #define scfg_clrsetbits32(a, clear, set)	\
59 				mmio_clrsetbits_32((uintptr_t)(a), clear, set)
60 #else
61 #error Please define CCSR SCFG register endianness
62 #endif
63 #endif	/*	__ASSEMBLER__	*/
64 
65 #endif	/* SCFG_H */
66