xref: /optee_os/core/arch/arm/plat-imx/config/imx6qdlsolo.h (revision 286380234252221a512d843dbba8561fc3c5e0d9)
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