16230dd0fSSilvano di Ninno /* SPDX-License-Identifier: BSD-2-Clause */ 26230dd0fSSilvano di Ninno /* 36230dd0fSSilvano di Ninno * Copyright (C) 2015 Freescale Semiconductor, Inc. 46230dd0fSSilvano di Ninno * Copyright (c) 2016, Wind River Systems. 56230dd0fSSilvano di Ninno * All rights reserved. 66230dd0fSSilvano di Ninno * Copyright 2017-2019 NXP 76230dd0fSSilvano di Ninno * 86230dd0fSSilvano di Ninno * Redistribution and use in source and binary forms, with or without 96230dd0fSSilvano di Ninno * modification, are permitted provided that the following conditions are met: 106230dd0fSSilvano di Ninno * 116230dd0fSSilvano di Ninno * 1. Redistributions of source code must retain the above copyright notice, 126230dd0fSSilvano di Ninno * this list of conditions and the following disclaimer. 136230dd0fSSilvano di Ninno * 146230dd0fSSilvano di Ninno * 2. Redistributions in binary form must reproduce the above copyright notice, 156230dd0fSSilvano di Ninno * this list of conditions and the following disclaimer in the documentation 166230dd0fSSilvano di Ninno * and/or other materials provided with the distribution. 176230dd0fSSilvano di Ninno * 186230dd0fSSilvano di Ninno * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 196230dd0fSSilvano di Ninno * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 206230dd0fSSilvano di Ninno * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 216230dd0fSSilvano di Ninno * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 226230dd0fSSilvano di Ninno * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 236230dd0fSSilvano di Ninno * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 246230dd0fSSilvano di Ninno * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 256230dd0fSSilvano di Ninno * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 266230dd0fSSilvano di Ninno * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 276230dd0fSSilvano di Ninno * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 286230dd0fSSilvano di Ninno * POSSIBILITY OF SUCH DAMAGE. 296230dd0fSSilvano di Ninno */ 306230dd0fSSilvano di Ninno 316230dd0fSSilvano di Ninno #ifndef CONFIG_IMX6QDLSOLO_H 326230dd0fSSilvano di Ninno #define CONFIG_IMX6QDLSOLO_H 336230dd0fSSilvano di Ninno 346230dd0fSSilvano di Ninno /* 356230dd0fSSilvano di Ninno * PL310 TAG RAM Control Register 366230dd0fSSilvano di Ninno * 376230dd0fSSilvano di Ninno * bit[10:8]:1 - 2 cycle of write accesses latency 386230dd0fSSilvano di Ninno * bit[6:4]:3 - 4 cycle of read accesses latency 396230dd0fSSilvano di Ninno * bit[2:0]:2 - 3 cycle of setup latency 406230dd0fSSilvano di Ninno */ 416230dd0fSSilvano di Ninno #ifndef PL310_TAG_RAM_CTRL_INIT 426230dd0fSSilvano di Ninno #define PL310_TAG_RAM_CTRL_INIT 0x00000132 436230dd0fSSilvano di Ninno #endif 446230dd0fSSilvano di Ninno 456230dd0fSSilvano di Ninno /* 466230dd0fSSilvano di Ninno * PL310 DATA RAM Control Register 476230dd0fSSilvano di Ninno * 486230dd0fSSilvano di Ninno * bit[10:8]:1 - 2 cycle of write accesses latency 496230dd0fSSilvano di Ninno * bit[6:4]:3 - 4 cycle of read accesses latency 506230dd0fSSilvano di Ninno * bit[2:0]:2 - 3 cycle of setup latency 516230dd0fSSilvano di Ninno */ 526230dd0fSSilvano di Ninno #ifndef PL310_DATA_RAM_CTRL_INIT 536230dd0fSSilvano di Ninno #define PL310_DATA_RAM_CTRL_INIT 0x00000132 546230dd0fSSilvano di Ninno #endif 556230dd0fSSilvano di Ninno 566230dd0fSSilvano di Ninno /* 576230dd0fSSilvano di Ninno * PL310 Auxiliary Control Register 586230dd0fSSilvano di Ninno */ 596230dd0fSSilvano di Ninno #ifndef PL310_AUX_CTRL_INIT 60*f9cf3c56SClement Faure #if defined(CFG_MX6QP) || defined(CFG_MX6Q) || defined(CFG_MX6D) 616230dd0fSSilvano di Ninno /* 626230dd0fSSilvano di Ninno * Early BRESP enabled (bit30=1) 636230dd0fSSilvano di Ninno * I/Dcache prefetch enabled (bit29:28=2b11) 646230dd0fSSilvano di Ninno * NS can access interrupts (bit27=1) 656230dd0fSSilvano di Ninno * NS can lockown cache lines (bit26=1) 666230dd0fSSilvano di Ninno * Pseudo-random replacement policy (bit25=1) 676230dd0fSSilvano di Ninno * Force write allocated (default) (bit24:23=00) 686230dd0fSSilvano di Ninno * Shared attribute internally ignored (bit22=1, bit13=0) 696230dd0fSSilvano di Ninno * Parity disabled (bit21=0) 706230dd0fSSilvano di Ninno * Event monitor disabled (bit20=0) 716230dd0fSSilvano di Ninno * 64kb way size (bit19:17=3b011) 726230dd0fSSilvano di Ninno * 16-way associativity (bit16=1) 736230dd0fSSilvano di Ninno * Store buffer device limitation disabled (bit11=0) 746230dd0fSSilvano di Ninno * Cacheable accesses have high prio (bit10=0) 756230dd0fSSilvano di Ninno * Full Line Zero (FLZ) enabled (bit0=1) 766230dd0fSSilvano di Ninno */ 776230dd0fSSilvano di Ninno #define PL310_AUX_CTRL_INIT 0x7E470001 786230dd0fSSilvano di Ninno #else 796230dd0fSSilvano di Ninno /* 806230dd0fSSilvano di Ninno * Early BRESP enabled (bit30=0) 816230dd0fSSilvano di Ninno * I/Dcache prefetch enabled (bit29:28=2b11) 826230dd0fSSilvano di Ninno * NS can access interrupts (bit27=1) 836230dd0fSSilvano di Ninno * NS can lockown cache lines (bit26=1) 846230dd0fSSilvano di Ninno * Pseudo-random replacement policy (bit25=0) 856230dd0fSSilvano di Ninno * Force write allocated (default) (bit24:23=00) 866230dd0fSSilvano di Ninno * Shared attribute internally ignored (bit22=1, bit13=0) 876230dd0fSSilvano di Ninno * Parity disabled (bit21=0) 886230dd0fSSilvano di Ninno * Event monitor disabled (bit20=0) 896230dd0fSSilvano di Ninno * 32kb way size (bit19:17=3b010) 906230dd0fSSilvano di Ninno * 8-way associativity (bit16=0) 916230dd0fSSilvano di Ninno * Store buffer device limitation enabled (bit11=1) 926230dd0fSSilvano di Ninno * Cacheable accesses have high prio (bit10=0) 936230dd0fSSilvano di Ninno * Full Line Zero (FLZ) disabled (bit0=0) 946230dd0fSSilvano di Ninno */ 956230dd0fSSilvano di Ninno #define PL310_AUX_CTRL_INIT 0x3C440800 966230dd0fSSilvano di Ninno #endif 976230dd0fSSilvano di Ninno #endif 986230dd0fSSilvano di Ninno 996230dd0fSSilvano di Ninno /* 1006230dd0fSSilvano di Ninno * PL310 Prefetch Control Register 1016230dd0fSSilvano di Ninno * 1026230dd0fSSilvano di Ninno * Double linefill enabled (bit30=1) 1036230dd0fSSilvano di Ninno * I/D prefetch enabled (bit29:28=2b11) 1046230dd0fSSilvano di Ninno * Prefetch drop disabled (bit24=0) 1056230dd0fSSilvano di Ninno * Incr double linefill disable (bit23=0) 1066230dd0fSSilvano di Ninno * Prefetch offset = 0xF (bit4:0) 1076230dd0fSSilvano di Ninno */ 1086230dd0fSSilvano di Ninno #define PL310_PREFETCH_CTRL_INIT 0x7000000F 1096230dd0fSSilvano di Ninno 1106230dd0fSSilvano di Ninno /* 1116230dd0fSSilvano di Ninno * PL310 Power Register 1126230dd0fSSilvano di Ninno * 1136230dd0fSSilvano di Ninno * Dynamic clock gating enabled 1146230dd0fSSilvano di Ninno * Standby mode enabled 1156230dd0fSSilvano di Ninno */ 1166230dd0fSSilvano di Ninno #define PL310_POWER_CTRL_INIT 0x00000003 1176230dd0fSSilvano di Ninno #endif 118