2 * Copyright (C) Marvell International Ltd. and its affiliates
4 * SPDX-License-Identifier: GPL-2.0
7 #ifndef _DDR3_HWS_HW_TRAINING_H
8 #define _DDR3_HWS_HW_TRAINING_H
10 /* struct used for DLB configuration array */
16 /* Topology update structure */
17 struct topology_update_info {
22 int update_ecc_pup3_mode;
23 u8 ecc_pup_mode_offset;
26 /* Topology update defines */
27 #define TOPOLOGY_UPDATE_WIDTH_16BIT 1
28 #define TOPOLOGY_UPDATE_WIDTH_32BIT 0
29 #define TOPOLOGY_UPDATE_WIDTH_32BIT_MASK 0xf
30 #define TOPOLOGY_UPDATE_WIDTH_16BIT_MASK 0x3
32 #define TOPOLOGY_UPDATE_ECC_ON 1
33 #define TOPOLOGY_UPDATE_ECC_OFF 0
34 #define TOPOLOGY_UPDATE_ECC_OFFSET_PUP4 4
35 #define TOPOLOGY_UPDATE_ECC_OFFSET_PUP3 3
38 * 1. L2 filter should be set at binary header to 0xd000000,
39 * to avoid conflict with internal register IO.
40 * 2. U-Boot modifies internal registers base to 0xf100000,
41 * and than should update L2 filter accordingly to 0xf000000 (3.75 GB)
43 /* temporary limit l2 filter to 3GiB (LSP issue) */
44 #define L2_FILTER_FOR_MAX_MEMORY_SIZE 0xc0000000
45 #define ADDRESS_FILTERING_END_REGISTER 0x8c04
49 #endif /* _DDR3_HWS_HW_TRAINING_H */