/******************************************************************************** Copyright (C) 2018 Marvell International Ltd. SPDX-License-Identifier: BSD-2-Clause-Patent Glossary - abbreviations used in Marvell SampleAtReset library implementation: AP - Application Processor hardware block (Armada 7k8k incorporates AP806) CP - South Bridge hardware blocks (Armada 7k8k incorporates CP110) SAR - Sample At Reset *******************************************************************************/ #define SAR_MAX_OPTIONS 16 #define AP806_SAR_BASE 0xf06f8200 #define SAR_CLOCK_FREQUENCY_MODE_MASK 0x1f #define CP110_SAR_BASE(_CpIndex) (0xf2000000 + (0x2000000 * (_CpIndex)) + 0x400200) typedef enum { CPU_2000_DDR_1200_RCLK_1200 = 0x0, CPU_2000_DDR_1050_RCLK_1050 = 0x1, CPU_1600_DDR_800_RCLK_800 = 0x4, CPU_1800_DDR_1200_RCLK_1200 = 0x6, CPU_1800_DDR_1050_RCLK_1050 = 0x7, CPU_1600_DDR_1050_RCLK_1050 = 0x0d, CPU_1000_DDR_650_RCLK_650 = 0x13, CPU_1300_DDR_800_RCLK_800 = 0x14, CPU_1300_DDR_650_RCLK_650 = 0x17, CPU_1200_DDR_800_RCLK_800 = 0x19, CPU_1400_DDR_800_RCLK_800 = 0x1a, CPU_600_DDR_800_RCLK_800 = 0x1b, CPU_800_DDR_800_RCLK_800 = 0x1c, CPU_1000_DDR_800_RCLK_800 = 0x1d, } CLOCKING_OPTIONS; typedef struct { UINT32 CpuFrequency; UINT32 DdrFrequency; UINT32 RingFrequency; CLOCKING_OPTIONS ClockingOption; } PLL_FREQUENCY_DESCRIPTION; STATIC CONST PLL_FREQUENCY_DESCRIPTION PllFrequencyTable[SAR_MAX_OPTIONS] = { /* CPU DDR Ring [MHz] */ {2000, 1200, 1200, CPU_2000_DDR_1200_RCLK_1200}, {2000, 1050, 1050, CPU_2000_DDR_1050_RCLK_1050}, {1800, 1200, 1200, CPU_1800_DDR_1200_RCLK_1200}, {1800, 1050, 1050, CPU_1800_DDR_1050_RCLK_1050}, {1600, 1050, 1050, CPU_1600_DDR_1050_RCLK_1050}, {1300, 800 , 800 , CPU_1300_DDR_800_RCLK_800}, {1300, 650 , 650 , CPU_1300_DDR_650_RCLK_650}, {1600, 800 , 800 , CPU_1600_DDR_800_RCLK_800}, {1000, 650 , 650 , CPU_1000_DDR_650_RCLK_650}, {1200, 800 , 800 , CPU_1200_DDR_800_RCLK_800}, {1400, 800 , 800 , CPU_1400_DDR_800_RCLK_800}, {600 , 800 , 800 , CPU_600_DDR_800_RCLK_800}, {800 , 800 , 800 , CPU_800_DDR_800_RCLK_800}, {1000, 800 , 800 , CPU_1000_DDR_800_RCLK_800} };