匿名
未登录
登录
百问网嵌入式Linux wiki
搜索
查看“STM32MP15 clock tree”的源代码
来自百问网嵌入式Linux wiki
名字空间
页面
讨论
更多
更多
页面选项
Read
查看源代码
历史
←
STM32MP15 clock tree
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
__FORCETOC__ All the peripherals receive one or several clocks that are generated via [[RCC internal peripheral]]. RCC relies on several clocks sources (LSI, LSE, HSI, HSE, CSI) and four PLL in order to provide adequate input frequencies to all the peripherals. The clock tree covers all the system clock distribution aspects, from the clock sources to the consumer peripherals (internal and external), except clock gating management that is locally controlled by each peripheral driver. == Overview == The clock tree is managed via [[RCC internal peripheral]] hardware block and it is configured at different steps from the Cortex-A7: * When the device is '''reset''', all RCC registers take their reset values: the four PLL are disabled and most of the clock source selectors are pointing to the HSI. * The [[STM32MP15 ROM code overview|ROM Code]] configures the minimum clock tree needed to boot on the selected boot device. * The '''FSBL''' (Cf. [[Boot chains overview]]) completely configures the clock tree as expected, all the way up to Linux, thanks to the configuration given in the [[STM32MP15 device tree|device tree]]. ** [[U-Boot_overview#SPL:_FSBL_for_basic_boot|U-Boot SPL]] ([[Boot_chains_overview#STM32MP boot chains|basic boot chain]]) binding is available in {{CodeSource | U-Boot | doc/device-tree-bindings/clock/st,stm32mp1.txt | doc/device-tree-bindings/clock/st,stm32mp1.txt}} ** [[TF-A overview|TF-A]] ([[Boot_chains_overview#STM32MP boot chains|trusted boot chain]]) binding follows the same syntax as U-Boot SPL * '''Linux''' is responsible for the clock tree at runtime and it may partly modify it thanks to information taken from the [[STM32MP15 device tree|device tree]]: ** Linux binding is available in {{CodeSource | Linux kernel | Documentation/devicetree/bindings/clock/clock-bindings.txt | Documentation/devicetree/bindings/clock/clock-bindings.txt}} (and surrounding files): 'fixed-clock' compatible, 'clocks' and 'assigned-clocks' properties are important concepts to understand the management of clocks providers/consumers. <br /> Notice that [[STM32CubeMP1 Package|STM32Cube]] (running on the Cortex-M4) does not control the clock tree setup so the configuration applied by the Cortex-A7 must provide suitable clocks to Cortex-M4, like it is explained in [[Resource manager for coprocessing|resource manager]] description. One exception to this rule is the [[STM32MP15_ROM_code_overview#Engineering_boot|engineering boot]], allowing to directly load (and debug) the Cortex-M4 whereas the Cortex-A7 execution is stalled in the ROM code. ==How to build a clock tree?== Building a clock tree is quite complex as it needs to take into account the constraints set by each internal and external peripheral, including external clock sources.<br /> <br /> We encourage the use of [[STM32CubeMX]] to build the clock tree, and avoid having to know all internal peripherals details: the tool allows to select the peripherals that will be present on the board, fix the clock sources frequencies and automatically find an optimized clock tree. It is then able to generate the device tree that is directly consumed by the boot chain and Linux. ==ST boards clock tree== ===For {{EcosystemRelease | revision=1.1.0 | range=and after}}=== ====STM32MP157C-EV1 case==== This chapter shows the boot time clock tree set by the FSBL on [[:category:STM32MP15_Evaluation_boards|STM32MP157C-EV1]] evaluation board. Linux eventual runtime modifications are not covered here. =====Clock tree===== The following table shows what [[:category:STM32MP15_Evaluation_boards|STM32MP157C-EV1]] clock tree looks like, as a result of the [[Boot chains overview|boot chain]] execution with the [[STM32MP15 device tree|device tree]] built with [[STM32CubeMX]]. <pre> Component | Parent | Frequency | Used? | Comment | -----------------------|---------|-----------------|--------|-----------------------------------| LSI |N.A. | 0.032000 MHz | yes | Mandatory for IWDG, DAC DAC |LSI | 0.032000 MHz | yes | RNG1 |LSI | 0.032000 MHz | yes | Input frequency should be as low as possible RNG2 |LSI | 0.032000 MHz | yes | Input frequency should be as low as possible IWDG1 |LSI | 0.032000 MHz | yes | IWDG2 |LSI | 0.032000 MHz | yes | LSE |N.A. | 0.032768 MHz | yes | Mandatory for DTS RTC |LSE | 0.032768 MHz | yes | TAMP |LSE | 0.032768 MHz | yes | CEC |LSE | 0.032768 MHz | yes | LPTIM4 |LSE | 0.032768 MHz | yes | LPTIM5 |LSE | 0.032768 MHz | yes | HSI |N.A. | 64.000000 MHz | yes | SPI4 |HSI | 64.000000 MHz | no | SPI5 |HSI | 64.000000 MHz | no | SPI6 |HSI | 64.000000 MHz | yes | I2C4 |HSI | 64.000000 MHz | yes | PMIC I2C6 |HSI | 64.000000 MHz | no | I2C1 |HSI | 64.000000 MHz | no | I2C2 |HSI | 64.000000 MHz | yes | Rpi and peripherals I2C3 |HSI | 64.000000 MHz | no | I2C5 |HSI | 64.000000 MHz | yes | Rpi USART1 |HSI | 64.000000 MHz | yes | USART2 |HSI | 64.000000 MHz | no | USART3 |HSI | 64.000000 MHz | yes | Rpi UART4 |HSI | 64.000000 MHz | yes | Linux console UART5 |HSI | 64.000000 MHz | no | USART6 |HSI | 64.000000 MHz | no | UART7 |HSI | 64.000000 MHz | no | UART8 |HSI | 64.000000 MHz | no | MCO1 |HSI | 64.000000 MHz | no | Available so can be used HSE |N.A. | 24.000000 MHz | yes | DSIPLL |HSE | 125.000000 MHz | no | DSI DPHY PLL DSIBL |DSIPLL | 125.000000 MHz | no | DSI lanebyte clock RTCDIV |HSE | 1.000000 MHz | yes | Only used when RTC source is HSE ck_per |HSE | 24.000000 MHz | yes | ADC |ck_per | 24.000000 MHz | yes | Can use internal divider to be < 40MHz PLL1 |HSE | 1300.000000 MHz | yes | PLL1P |PLL1 | 650.000000 MHz | yes | MPUDIV |PLL1P | 325.000000 MHz | yes | Cortex-A7 |PLL1P | 650.000000 MHz | yes | MCO2 |Cortex-A7| 650.000000 MHz | no | Available so can be used PLL2 |HSE | 1066.000000 MHz | yes | PLL2P |PLL2 | 266.500000 MHz | yes | AXI |PLL2P | 266.500000 MHz | yes | < 266MHz FMC |AXI | 266.500000 MHz | yes | NAND flash QSPI |AXI | 266.500000 MHz | yes | NOR flash SYSRAM |AXI | 266.500000 MHz | yes | ROM |AXI | 266.500000 MHz | yes | AHB5 |AXI | 266.500000 MHz | yes | < 266MHz CRYP1 |AHB5 | 266.500000 MHz | yes | HASH1 |AHB5 | 266.500000 MHz | yes | GPIOZ |AHB5 | 266.500000 MHz | yes | BKPSRAM |AHB5 | 266.500000 MHz | yes | AHB6 |AXI | 266.500000 MHz | yes | < 266MHz CRC1 |AHB6 | 266.500000 MHz | yes | MDMA |AHB6 | 266.500000 MHz | yes | USBH |AHB6 | 266.500000 MHz | yes | USB Host APB4 |AHB6 | 133.250000 MHz | yes | APB5 |AHB6 | 66.625000 MHz | yes | BSEC |APB5 | 66.625000 MHz | yes | < 67MHz ETZPC |APB5 | 66.625000 MHz | yes | TZC |APB5 | 66.625000 MHz | yes | DBGAPB |AXI | 133.250000 MHz | yes | JTAG & Coresight DBGMCU |DBGAPB | 66.625000 MHz | yes | STM |DBGAPB | 66.625000 MHz | yes | PLL2Q |PLL2 | 533.000000 MHz | yes | GPU |PLL2Q | 533.000000 MHz | yes | < 533MHz PLL2R |PLL2 | 533.000000 MHz | yes | DDR |PLL2R | 533.000000 MHz | yes | < 533MHz PLL3 |HSE | 417.755859 MHz | yes | PLL3P |PLL3 | 208.877930 MHz | yes | MLAHB |PLL3P | 208.877930 MHz | yes | < 209MHz Cortex-M4 |MLAHB | 208.877930 MHz | yes | SRAM1 |MLAHB | 208.877930 MHz | yes | SRAM2 |MLAHB | 208.877930 MHz | yes | SRAM3 |MLAHB | 208.877930 MHz | yes | RETRAM |MLAHB | 208.877930 MHz | yes | AHB1 |MLAHB | 208.877930 MHz | yes | < 209MHz AHB2 |MLAHB | 208.877930 MHz | yes | < 209MHz DMA1 |AHB2 | 208.877930 MHz | yes | DMA2 |AHB2 | 208.877930 MHz | yes | DMAMUX |AHB2 | 208.877930 MHz | yes | APB1 |MLAHB | 104.438965 MHz | yes | LPTIM1 |APB1 | 104.438965 MHz | yes | WWDG |APB1 | 104.438965 MHz | yes | APB2 |MLAHB | 104.438965 MHz | yes | TIM2 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM3 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM4 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM5 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM6 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM7 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM12 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM13 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM14 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM1 |MLAHB | 208.877930 MHz | yes | TIM Group 2 TIM8 |MLAHB | 208.877930 MHz | yes | TIM Group 2 TIM15 |MLAHB | 208.877930 MHz | yes | TIM Group 2 TIM16 |MLAHB | 208.877930 MHz | yes | TIM Group 2 TIM17 |MLAHB | 208.877930 MHz | yes | TIM Group 2 APB3 |MLAHB | 104.438965 MHz | yes | LPTIM2 |APB3 | 104.438965 MHz | yes | LPTIM3 |APB3 | 104.438965 MHz | yes | SYSCFG |APB3 | 104.438965 MHz | yes | VREFBUF |APB3 | 104.438965 MHz | yes | DTS |APB3 | 104.438965 MHz | yes | HDP |APB3 | 104.438965 MHz | yes | AHB3 |MLAHB | 208.877930 MHz | yes | < 209MHz CRC2 |AHB3 | 208.877930 MHz | yes | CRYP2 |AHB3 | 208.877930 MHz | yes | HASH2 |AHB3 | 208.877930 MHz | yes | DCMI |AHB3 | 208.877930 MHz | yes | Camera IPCC |AHB3 | 208.877930 MHz | yes | Mailbox AHB4 |MLAHB | 208.877930 MHz | yes | < 209MHz PWR |AHB4 | 208.877930 MHz | yes | RCC |AHB4 | 208.877930 MHz | yes | GPIOA-K |AHB4 | 208.877930 MHz | yes | EXTI |AHB4 | 208.877930 MHz | yes | PLL3Q |PLL3 | 24.573874 MHz | yes | SPI1 |PLL3Q | 24.573874 MHz | no | SPI2 |PLL3Q | 24.573874 MHz | no | SPI3 |PLL3Q | 24.573874 MHz | no | DFSDM |PLL3Q | 24.573874 MHz | yes | Digital micro SAI1 |PLL3Q | 24.573874 MHz | no | SAI2 |PLL3Q | 24.573874 MHz | yes | AudCodec 48kHz (use PLL3R for 44.1kHz) SAI3 |PLL3Q | 24.573874 MHz | no | SAI4 |PLL3Q | 24.573874 MHz | yes | SPDIF TX 48kHz (use PLL3R for 44.1kHz) PLL3R |PLL3 | 11.290699 MHz | yes | PLL4 |HSE | 594.000000 MHz | yes | PLL4P |PLL4 | 99.000000 MHz | yes | SDMMC1 |PLL4P | 99.000000 MHz | yes | µSD card SDMMC2 |PLL4P | 99.000000 MHz | yes | eMMC SDMMC3 |PLL4P | 99.000000 MHz | yes | SPDIF |PLL4P | 99.000000 MHz | yes | SPDIF RX PLL4Q |PLL4 | 74.250000 MHz | yes | LCD |PLL4Q | 74.250000 MHz | yes | LTDC & DSI display pixel clock PLL4R |PLL4 | 74.250000 MHz | yes | FDCAN |PLL4R | 74.250000 MHz | yes | Should be as high as possible and < 100MHz STGEN |HSE | 24.000000 MHz | yes | USBPHYC |HSE | 24.000000 MHz | yes | USB PHY Ctrl for USB Host and OTG USBPLL |USBPHYC | 48.000000 MHz | yes | USBO |USBPLL | 48.000000 MHz | yes | USB OTG CSI |N.A. | 4.000000 MHz | yes | Mandatory for IO compensation ETH |N.A. | 0.000000 MHz | no | ETH clocked by RGMII PHY -----------------------|---------|-----------------|--------|-----------------------------------| </pre> =====Device tree===== Here are the corresponding device tree '''rcc_clk''' sub node properties consumed by the first stage boot loader (FSBL) to configure the clock tree above: <pre> st,clksrc = < CLK_MPU_PLL1P CLK_AXI_PLL2P CLK_MCU_PLL3P CLK_PLL12_HSE CLK_PLL3_HSE CLK_PLL4_HSE CLK_RTC_LSE CLK_MCO1_DISABLED CLK_MCO2_DISABLED >; st,clkdiv = < 1 /*MPU*/ 0 /*AXI*/ 0 /*MCU*/ 1 /*APB1*/ 1 /*APB2*/ 1 /*APB3*/ 1 /*APB4*/ 2 /*APB5*/ 23 /*RTC*/ 0 /*MCO1*/ 0 /*MCO2*/ >; st,pkcs = < CLK_CKPER_HSE CLK_FMC_ACLK CLK_QSPI_ACLK CLK_ETH_DISABLED CLK_SDMMC12_PLL4P CLK_DSI_DSIPLL CLK_STGEN_HSE CLK_USBPHY_HSE CLK_SPI2S1_PLL3Q CLK_SPI2S23_PLL3Q CLK_SPI45_HSI CLK_SPI6_HSI CLK_I2C46_HSI CLK_SDMMC3_PLL4P CLK_USBO_USBPHY CLK_ADC_CKPER CLK_CEC_LSE CLK_I2C12_HSI CLK_I2C35_HSI CLK_UART1_HSI CLK_UART24_HSI CLK_UART35_HSI CLK_UART6_HSI CLK_UART78_HSI CLK_SPDIF_PLL4P CLK_FDCAN_PLL4R CLK_SAI1_PLL3Q CLK_SAI2_PLL3Q CLK_SAI3_PLL3Q CLK_SAI4_PLL3Q CLK_RNG1_LSI CLK_RNG2_LSI CLK_LPTIM1_PCLK1 CLK_LPTIM23_PCLK3 CLK_LPTIM45_LSE >; /* VCO = 1300.0 MHz => P = 650 (CPU) */ pll1: st,pll@0 { cfg = < 2 80 0 0 0 PQR(1,0,0) >; frac = < 0x800 >; u-boot,dm-pre-reloc; }; /* VCO = 1066.0 MHz => P = 266 (AXI), Q = 533 (GPU), R = 533 (DDR) */ pll2: st,pll@1 { cfg = < 2 65 1 0 0 PQR(1,1,1) >; frac = < 0x1400 >; u-boot,dm-pre-reloc; }; /* VCO = 417.8 MHz => P = 209, Q = 25, R = 11 */ pll3: st,pll@2 { cfg = < 1 33 1 16 36 PQR(1,1,1) >; frac = < 0x1a04 >; u-boot,dm-pre-reloc; }; /* VCO = 594.0 MHz => P = 99, Q = 74, R = 74 */ pll4: st,pll@3 { cfg = < 3 98 5 7 7 PQR(1,1,1) >; u-boot,dm-pre-reloc; }; </pre> ====STM32MP157C-DK2 case==== This chapter shows the boot time clock tree set by the FSBL on [[:category:STM32MP15_Evaluation_boards|STM32MP157C-DK2]] DISCO board. Linux eventual runtime modifications are not covered here. =====Clock tree===== The following table shows what [[:category:STM32MP15_Evaluation_boards|STM32MP157C-DK2]] clock tree looks like, as a result of the [[Boot chains overview|boot chain]] execution with the [[STM32MP15 device tree|device tree]] built with [[STM32CubeMX]]. <pre> Component | Parent | Frequency | Used? | Comment | -----------------------|---------|-----------------|--------|-----------------------------------| LSI |N.A. | 0.032000 MHz | yes | Mandatory for IWDG, DAC DAC |LSI | 0.032000 MHz | no | RNG1 |LSI | 0.032000 MHz | yes | Input frequency should be as low as possible RNG2 |LSI | 0.032000 MHz | yes | Input frequency should be as low as possible IWDG1 |LSI | 0.032000 MHz | yes | IWDG2 |LSI | 0.032000 MHz | yes | LSE |N.A. | 0.032768 MHz | yes | Mandatory for DTS RTC |LSE | 0.032768 MHz | yes | TAMP |LSE | 0.032768 MHz | yes | CEC |LSE | 0.032768 MHz | yes | LPTIM4 |LSE | 0.032768 MHz | yes | LPTIM5 |LSE | 0.032768 MHz | yes | HSI |N.A. | 64.000000 MHz | yes | SPI4 |HSI | 64.000000 MHz | yes | Arduino SPI5 |HSI | 64.000000 MHz | yes | Rpi SPI6 |HSI | 64.000000 MHz | no | I2C4 |HSI | 64.000000 MHz | yes | PMIC I2C6 |HSI | 64.000000 MHz | no | I2C1 |HSI | 64.000000 MHz | yes | Rpi and peripherals I2C2 |HSI | 64.000000 MHz | no | I2C3 |HSI | 64.000000 MHz | no | I2C5 |HSI | 64.000000 MHz | yes | Rpi and Arduino USART1 |HSI | 64.000000 MHz | no | USART2 |HSI | 64.000000 MHz | yes | Bluetooth USART3 |HSI | 64.000000 MHz | yes | Rpi UART4 |HSI | 64.000000 MHz | yes | Linux console UART5 |HSI | 64.000000 MHz | no | USART6 |HSI | 64.000000 MHz | no | UART7 |HSI | 64.000000 MHz | yes | Arduino UART8 |HSI | 64.000000 MHz | no | MCO1 |HSI | 64.000000 MHz | no | Available so can be used HSE |N.A. | 24.000000 MHz | yes | DSIPLL |HSE | 125.000000 MHz | no | DSI DPHY PLL DSIBL |DSIPLL | 125.000000 MHz | no | DSI lanebyte clock RTCDIV |HSE | 1.000000 MHz | yes | Only used when RTC source is HSE ck_per |HSE | 24.000000 MHz | yes | ADC |ck_per | 24.000000 MHz | yes | Can use internal divider to be < 40MHz PLL1 |HSE | 1300.000000 MHz | yes | PLL1P |PLL1 | 650.000000 MHz | yes | MPUDIV |PLL1P | 325.000000 MHz | yes | Cortex-A7 |PLL1P | 650.000000 MHz | yes | MCO2 |Cortex-A7| 650.000000 MHz | no | Available so can be used PLL2 |HSE | 1066.000000 MHz | yes | PLL2P |PLL2 | 266.500000 MHz | yes | AXI |PLL2P | 266.500000 MHz | yes | < 266MHz FMC |AXI | 266.500000 MHz | no | QSPI |AXI | 266.500000 MHz | no | SYSRAM |AXI | 266.500000 MHz | yes | ROM |AXI | 266.500000 MHz | yes | AHB5 |AXI | 266.500000 MHz | yes | < 266MHz CRYP1 |AHB5 | 266.500000 MHz | yes | HASH1 |AHB5 | 266.500000 MHz | yes | GPIOZ |AHB5 | 266.500000 MHz | yes | BKPSRAM |AHB5 | 266.500000 MHz | yes | AHB6 |AXI | 266.500000 MHz | yes | < 266MHz CRC1 |AHB6 | 266.500000 MHz | yes | MDMA |AHB6 | 266.500000 MHz | yes | USBH |AHB6 | 266.500000 MHz | yes | USB Host APB4 |AHB6 | 133.250000 MHz | yes | APB5 |AHB6 | 66.625000 MHz | yes | BSEC |APB5 | 66.625000 MHz | yes | < 67MHz ETZPC |APB5 | 66.625000 MHz | yes | TZC |APB5 | 66.625000 MHz | yes | DBGAPB |AXI | 133.250000 MHz | yes | JTAG & Coresight DBGMCU |DBGAPB | 66.625000 MHz | yes | STM |DBGAPB | 66.625000 MHz | no | PLL2Q |PLL2 | 533.000000 MHz | yes | GPU |PLL2Q | 533.000000 MHz | yes | < 533MHz PLL2R |PLL2 | 533.000000 MHz | yes | DDR |PLL2R | 533.000000 MHz | yes | < 533MHz PLL3 |HSE | 417.755859 MHz | yes | PLL3P |PLL3 | 208.877930 MHz | yes | MLAHB |PLL3P | 208.877930 MHz | yes | < 209MHz Cortex-M4 |MLAHB | 208.877930 MHz | yes | SRAM1 |MLAHB | 208.877930 MHz | yes | SRAM2 |MLAHB | 208.877930 MHz | yes | SRAM3 |MLAHB | 208.877930 MHz | yes | RETRAM |MLAHB | 208.877930 MHz | yes | AHB1 |MLAHB | 208.877930 MHz | yes | < 209MHz AHB2 |MLAHB | 208.877930 MHz | yes | < 209MHz DMA1 |AHB2 | 208.877930 MHz | yes | DMA2 |AHB2 | 208.877930 MHz | yes | DMAMUX |AHB2 | 208.877930 MHz | yes | APB1 |MLAHB | 104.438965 MHz | yes | LPTIM1 |APB1 | 104.438965 MHz | yes | WWDG |APB1 | 104.438965 MHz | yes | APB2 |MLAHB | 104.438965 MHz | yes | TIM2 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM3 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM4 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM5 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM6 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM7 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM12 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM13 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM14 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM1 |MLAHB | 208.877930 MHz | yes | TIM Group 2 TIM8 |MLAHB | 208.877930 MHz | yes | TIM Group 2 TIM15 |MLAHB | 208.877930 MHz | yes | TIM Group 2 TIM16 |MLAHB | 208.877930 MHz | yes | TIM Group 2 TIM17 |MLAHB | 208.877930 MHz | yes | TIM Group 2 APB3 |MLAHB | 104.438965 MHz | yes | LPTIM2 |APB3 | 104.438965 MHz | yes | LPTIM3 |APB3 | 104.438965 MHz | yes | SYSCFG |APB3 | 104.438965 MHz | yes | VREFBUF |APB3 | 104.438965 MHz | yes | DTS |APB3 | 104.438965 MHz | yes | HDP |APB3 | 104.438965 MHz | no | AHB3 |MLAHB | 208.877930 MHz | yes | < 209MHz CRC2 |AHB3 | 208.877930 MHz | yes | CRYP2 |AHB3 | 208.877930 MHz | yes | HASH2 |AHB3 | 208.877930 MHz | yes | DCMI |AHB3 | 208.877930 MHz | no | IPCC |AHB3 | 208.877930 MHz | yes | Mailbox AHB4 |MLAHB | 208.877930 MHz | yes | < 209MHz PWR |AHB4 | 208.877930 MHz | yes | RCC |AHB4 | 208.877930 MHz | yes | GPIOA-K |AHB4 | 208.877930 MHz | yes | EXTI |AHB4 | 208.877930 MHz | yes | PLL3Q |PLL3 | 24.573874 MHz | yes | SPI1 |PLL3Q | 24.573874 MHz | yes | SPI2S1 for BT PCM SPI2 |PLL3Q | 24.573874 MHz | yes | SPI2S2 for HDMI SPI3 |PLL3Q | 24.573874 MHz | no | DFSDM |PLL3Q | 24.573874 MHz | no | SAI1 |PLL3Q | 24.573874 MHz | no | SAI2 |PLL3Q | 24.573874 MHz | yes | AudCodec 48kHz (use PLL3R for 44.1kHz) SAI3 |PLL3Q | 24.573874 MHz | no | SAI4 |PLL3Q | 24.573874 MHz | no | PLL3R |PLL3 | 11.290699 MHz | yes | PLL4 |HSE | 594.000000 MHz | yes | PLL4P |PLL4 | 99.000000 MHz | yes | SDMMC1 |PLL4P | 99.000000 MHz | yes | µSD card SDMMC2 |PLL4P | 99.000000 MHz | yes | Wifi SDMMC3 |PLL4P | 99.000000 MHz | yes | Rpi SPDIF |PLL4P | 99.000000 MHz | no | PLL4Q |PLL4 | 74.250000 MHz | yes | LCD |PLL4Q | 74.250000 MHz | yes | LTDC & DSI display pixel clock PLL4R |PLL4 | 74.250000 MHz | yes | FDCAN |PLL4R | 74.250000 MHz | no | STGEN |HSE | 24.000000 MHz | yes | USBPHYC |HSE | 24.000000 MHz | yes | USB PHY Ctrl for USB Host and OTG USBPLL |USBPHYC | 48.000000 MHz | yes | USBO |USBPLL | 48.000000 MHz | yes | USB OTG CSI |N.A. | 4.000000 MHz | yes | Mandatory for IO compensation ETH |N.A. | 0.000000 MHz | no | ETH clocked by RGMII PHY -----------------------|---------|-----------------|--------|-----------------------------------| </pre> =====Device tree===== Here are the corresponding device tree '''rcc_clk''' sub node properties consumed by the first stage boot loader (FSBL) to configure the clock tree above: <pre> st,clksrc = < CLK_MPU_PLL1P CLK_AXI_PLL2P CLK_MCU_PLL3P CLK_PLL12_HSE CLK_PLL3_HSE CLK_PLL4_HSE CLK_RTC_LSE CLK_MCO1_DISABLED CLK_MCO2_DISABLED >; st,clkdiv = < 1 /*MPU*/ 0 /*AXI*/ 0 /*MCU*/ 1 /*APB1*/ 1 /*APB2*/ 1 /*APB3*/ 1 /*APB4*/ 2 /*APB5*/ 23 /*RTC*/ 0 /*MCO1*/ 0 /*MCO2*/ >; st,pkcs = < CLK_CKPER_HSE CLK_FMC_ACLK CLK_QSPI_ACLK CLK_ETH_DISABLED CLK_SDMMC12_PLL4P CLK_DSI_DSIPLL CLK_STGEN_HSE CLK_USBPHY_HSE CLK_SPI2S1_PLL3Q CLK_SPI2S23_PLL3Q CLK_SPI45_HSI CLK_SPI6_HSI CLK_I2C46_HSI CLK_SDMMC3_PLL4P CLK_USBO_USBPHY CLK_ADC_CKPER CLK_CEC_LSE CLK_I2C12_HSI CLK_I2C35_HSI CLK_UART1_HSI CLK_UART24_HSI CLK_UART35_HSI CLK_UART6_HSI CLK_UART78_HSI CLK_SPDIF_PLL4P CLK_FDCAN_PLL4R CLK_SAI1_PLL3Q CLK_SAI2_PLL3Q CLK_SAI3_PLL3Q CLK_SAI4_PLL3Q CLK_RNG1_LSI CLK_RNG2_LSI CLK_LPTIM1_PCLK1 CLK_LPTIM23_PCLK3 CLK_LPTIM45_LSE >; /* VCO = 1300.0 MHz => P = 650 (CPU) */ pll1: st,pll@0 { cfg = < 2 80 0 0 0 PQR(1,0,0) >; frac = < 0x800 >; u-boot,dm-pre-reloc; }; /* VCO = 1066.0 MHz => P = 266 (AXI), Q = 533 (GPU), R = 533 (DDR) */ pll2: st,pll@1 { cfg = < 2 65 1 0 0 PQR(1,1,1) >; frac = < 0x1400 >; u-boot,dm-pre-reloc; }; /* VCO = 417.8 MHz => P = 209, Q = 25, R = 11 */ pll3: st,pll@2 { cfg = < 1 33 1 16 36 PQR(1,1,1) >; frac = < 0x1a04 >; u-boot,dm-pre-reloc; }; /* VCO = 594.0 MHz => P = 99, Q = 74, R = 74 */ pll4: st,pll@3 { cfg = < 3 98 5 7 7 PQR(1,1,1) >; u-boot,dm-pre-reloc; }; </pre> <div class="mw-collapsible mw-collapsed"> ===For {{EcosystemRelease | revision=1.0.0}}=== <div class="mw-collapsible-content"> ====STM32MP157C-EV1 case==== This chapter shows the boot time clock tree set by the FSBL on [[:category:STM32MP15_Evaluation_boards|STM32MP157C-EV1]] evaluation board. Linux eventual runtime modifications are not covered here. =====Clock tree===== The following table shows what [[:category:STM32MP15_Evaluation_boards|STM32MP157C-EV1]] clock tree looks like, as a result of the [[Boot chains overview|boot chain]] execution with the [[STM32MP15 device tree|device tree]] built with [[STM32CubeMX]]. <pre> Component | Parent | Frequency | Used? | Comment | -----------------------|---------|-----------------|--------|-----------------------------------| LSI |N.A. | 0.032000 MHz | yes | Mandatory for IWDG, DAC DAC |LSI | 0.032000 MHz | yes | RNG1 |LSI | 0.032000 MHz | yes | Input frequency should be as low as possible RNG2 |LSI | 0.032000 MHz | yes | Input frequency should be as low as possible IWDG1 |LSI | 0.032000 MHz | yes | IWDG2 |LSI | 0.032000 MHz | yes | LSE |N.A. | 0.032768 MHz | yes | Mandatory for DTS RTC |LSE | 0.032768 MHz | yes | TAMP |LSE | 0.032768 MHz | yes | CEC |LSE | 0.032768 MHz | yes | LPTIM4 |LSE | 0.032768 MHz | yes | LPTIM5 |LSE | 0.032768 MHz | yes | HSI |N.A. | 64.000000 MHz | yes | SPI4 |HSI | 64.000000 MHz | no | SPI5 |HSI | 64.000000 MHz | no | SPI6 |HSI | 64.000000 MHz | yes | I2C4 |HSI | 64.000000 MHz | yes | PMIC I2C6 |HSI | 64.000000 MHz | no | I2C1 |HSI | 64.000000 MHz | no | I2C2 |HSI | 64.000000 MHz | yes | Rpi and peripherals I2C3 |HSI | 64.000000 MHz | no | I2C5 |HSI | 64.000000 MHz | yes | Rpi USART1 |HSI | 64.000000 MHz | yes | USART2 |HSI | 64.000000 MHz | no | USART3 |HSI | 64.000000 MHz | yes | Rpi UART4 |HSI | 64.000000 MHz | yes | Linux console UART5 |HSI | 64.000000 MHz | no | USART6 |HSI | 64.000000 MHz | no | UART7 |HSI | 64.000000 MHz | no | UART8 |HSI | 64.000000 MHz | no | MCO1 |HSI | 64.000000 MHz | no | Available so can be used HSE |N.A. | 24.000000 MHz | yes | DSIPLL |HSE | 125.000000 MHz | no | DSI DPHY PLL DSIBL |DSIPLL | 125.000000 MHz | no | DSI lanebyte clock RTCDIV |HSE | 1.000000 MHz | yes | Only used when RTC source is HSE ck_per |HSE | 24.000000 MHz | yes | ADC |ck_per | 24.000000 MHz | yes | Can use internal divider to be < 40MHz PLL1 |HSE | 1300.000000 MHz | yes | PLL1P |PLL1 | 650.000000 MHz | yes | MPUDIV |PLL1P | 325.000000 MHz | yes | Cortex-A7 |PLL1P | 650.000000 MHz | yes | MCO2 |Cortex-A7| 650.000000 MHz | no | Available so can be used PLL2 |HSE | 1066.000000 MHz | yes | PLL2P |PLL2 | 266.500000 MHz | yes | AXI |PLL2P | 266.500000 MHz | yes | < 266MHz FMC |AXI | 266.500000 MHz | yes | NAND flash QSPI |AXI | 266.500000 MHz | yes | NOR flash SYSRAM |AXI | 266.500000 MHz | yes | ROM |AXI | 266.500000 MHz | yes | AHB5 |AXI | 266.500000 MHz | yes | < 266MHz CRYP1 |AHB5 | 266.500000 MHz | yes | HASH1 |AHB5 | 266.500000 MHz | yes | GPIOZ |AHB5 | 266.500000 MHz | yes | BKPSRAM |AHB5 | 266.500000 MHz | yes | AHB6 |AXI | 266.500000 MHz | yes | < 266MHz CRC1 |AHB6 | 266.500000 MHz | yes | MDMA |AHB6 | 266.500000 MHz | yes | USBH |AHB6 | 266.500000 MHz | yes | USB Host APB4 |AHB6 | 133.250000 MHz | yes | APB5 |AHB6 | 66.625000 MHz | yes | BSEC |APB5 | 66.625000 MHz | yes | < 67MHz ETZPC |APB5 | 66.625000 MHz | yes | TZC |APB5 | 66.625000 MHz | yes | DBGAPB |AXI | 133.250000 MHz | yes | JTAG & Coresight DBGMCU |DBGAPB | 66.625000 MHz | yes | STM |DBGAPB | 66.625000 MHz | yes | PLL2Q |PLL2 | 533.000000 MHz | yes | GPU |PLL2Q | 533.000000 MHz | yes | < 533MHz PLL2R |PLL2 | 533.000000 MHz | yes | DDR |PLL2R | 533.000000 MHz | yes | < 533MHz PLL3 |HSE | 417.755859 MHz | yes | PLL3P |PLL3 | 208.877930 MHz | yes | MLAHB |PLL3P | 208.877930 MHz | yes | < 209MHz Cortex-M4 |MLAHB | 208.877930 MHz | yes | SRAM1 |MLAHB | 208.877930 MHz | yes | SRAM2 |MLAHB | 208.877930 MHz | yes | SRAM3 |MLAHB | 208.877930 MHz | yes | RETRAM |MLAHB | 208.877930 MHz | yes | AHB1 |MLAHB | 208.877930 MHz | yes | < 209MHz AHB2 |MLAHB | 208.877930 MHz | yes | < 209MHz DMA1 |AHB2 | 208.877930 MHz | yes | DMA2 |AHB2 | 208.877930 MHz | yes | DMAMUX |AHB2 | 208.877930 MHz | yes | APB1 |MLAHB | 104.438965 MHz | yes | LPTIM1 |APB1 | 104.438965 MHz | yes | WWDG |APB1 | 104.438965 MHz | yes | APB2 |MLAHB | 104.438965 MHz | yes | TIM2 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM3 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM4 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM5 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM6 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM7 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM12 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM13 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM14 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM1 |MLAHB | 208.877930 MHz | yes | TIM Group 2 TIM8 |MLAHB | 208.877930 MHz | yes | TIM Group 2 TIM15 |MLAHB | 208.877930 MHz | yes | TIM Group 2 TIM16 |MLAHB | 208.877930 MHz | yes | TIM Group 2 TIM17 |MLAHB | 208.877930 MHz | yes | TIM Group 2 APB3 |MLAHB | 104.438965 MHz | yes | LPTIM2 |APB3 | 104.438965 MHz | yes | LPTIM3 |APB3 | 104.438965 MHz | yes | SYSCFG |APB3 | 104.438965 MHz | yes | VREFBUF |APB3 | 104.438965 MHz | yes | DTS |APB3 | 104.438965 MHz | yes | HDP |APB3 | 104.438965 MHz | yes | AHB3 |MLAHB | 208.877930 MHz | yes | < 209MHz CRC2 |AHB3 | 208.877930 MHz | yes | CRYP2 |AHB3 | 208.877930 MHz | yes | HASH2 |AHB3 | 208.877930 MHz | yes | DCMI |AHB3 | 208.877930 MHz | yes | Camera IPCC |AHB3 | 208.877930 MHz | yes | Mailbox AHB4 |MLAHB | 208.877930 MHz | yes | < 209MHz PWR |AHB4 | 208.877930 MHz | yes | RCC |AHB4 | 208.877930 MHz | yes | GPIOA-K |AHB4 | 208.877930 MHz | yes | EXTI |AHB4 | 208.877930 MHz | yes | PLL3Q |PLL3 | 24.573874 MHz | yes | SPI1 |PLL3Q | 24.573874 MHz | no | SPI2 |PLL3Q | 24.573874 MHz | no | SPI3 |PLL3Q | 24.573874 MHz | no | DFSDM |PLL3Q | 24.573874 MHz | yes | Digital micro SAI1 |PLL3Q | 24.573874 MHz | no | SAI2 |PLL3Q | 24.573874 MHz | yes | AudCodec 48kHz (use PLL3R for 44.1kHz) SAI3 |PLL3Q | 24.573874 MHz | no | SAI4 |PLL3Q | 24.573874 MHz | yes | SPDIF TX 48kHz (use PLL3R for 44.1kHz) PLL3R |PLL3 | 11.290699 MHz | yes | PLL4 |HSE | 594.000000 MHz | yes | PLL4P |PLL4 | 99.000000 MHz | yes | SDMMC1 |PLL4P | 99.000000 MHz | yes | µSD card SDMMC2 |PLL4P | 99.000000 MHz | yes | eMMC SDMMC3 |PLL4P | 99.000000 MHz | yes | SPDIF |PLL4P | 99.000000 MHz | yes | SPDIF RX PLL4Q |PLL4 | 74.250000 MHz | yes | LCD |PLL4Q | 74.250000 MHz | yes | LTDC & DSI display pixel clock FDCAN |PLL4Q | 74.250000 MHz | yes | Should be as high as possible and < 100MHz PLL4R |PLL4 | 74.250000 MHz | yes | STGEN |HSE | 24.000000 MHz | yes | USBPHYC |HSE | 24.000000 MHz | yes | USB PHY Ctrl for USB Host and OTG USBPLL |USBPHYC | 48.000000 MHz | yes | USBO |USBPLL | 48.000000 MHz | yes | USB OTG CSI |N.A. | 4.000000 MHz | yes | Mandatory for IO compensation ETH |N.A. | 0.000000 MHz | no | ETH clocked by RGMII PHY -----------------------|---------|-----------------|--------|-----------------------------------| </pre> =====Device tree===== Here are the corresponding device tree '''rcc_clk''' sub node properties consumed by the first stage boot loader (FSBL) to configure the clock tree above: <pre> st,clksrc = < CLK_MPU_PLL1P CLK_AXI_PLL2P CLK_MCU_PLL3P CLK_PLL12_HSE CLK_PLL3_HSE CLK_PLL4_HSE CLK_RTC_LSE CLK_MCO1_DISABLED CLK_MCO2_DISABLED >; st,clkdiv = < 1 /*MPU*/ 0 /*AXI*/ 0 /*MCU*/ 1 /*APB1*/ 1 /*APB2*/ 1 /*APB3*/ 1 /*APB4*/ 2 /*APB5*/ 23 /*RTC*/ 0 /*MCO1*/ 0 /*MCO2*/ >; st,pkcs = < CLK_CKPER_HSE CLK_FMC_ACLK CLK_QSPI_ACLK CLK_ETH_DISABLED CLK_SDMMC12_PLL4P CLK_DSI_DSIPLL CLK_STGEN_HSE CLK_USBPHY_HSE CLK_SPI2S1_PLL3Q CLK_SPI2S23_PLL3Q CLK_SPI45_HSI CLK_SPI6_HSI CLK_I2C46_HSI CLK_SDMMC3_PLL4P CLK_USBO_USBPHY CLK_ADC_CKPER CLK_CEC_LSE CLK_I2C12_HSI CLK_I2C35_HSI CLK_UART1_HSI CLK_UART24_HSI CLK_UART35_HSI CLK_UART6_HSI CLK_UART78_HSI CLK_SPDIF_PLL4P CLK_FDCAN_PLL4Q CLK_SAI1_PLL3Q CLK_SAI2_PLL3Q CLK_SAI3_PLL3Q CLK_SAI4_PLL3Q CLK_RNG1_LSI CLK_RNG2_LSI CLK_LPTIM1_PCLK1 CLK_LPTIM23_PCLK3 CLK_LPTIM45_LSE >; /* VCO = 1300.0 MHz => P = 650 (CPU) */ pll1: st,pll@0 { cfg = < 2 80 0 0 0 PQR(1,0,0) >; frac = < 0x800 >; u-boot,dm-pre-reloc; }; /* VCO = 1066.0 MHz => P = 266 (AXI), Q = 533 (GPU), R = 533 (DDR) */ pll2: st,pll@1 { cfg = < 2 65 1 0 0 PQR(1,1,1) >; frac = < 0x1400 >; u-boot,dm-pre-reloc; }; /* VCO = 417.8 MHz => P = 209, Q = 25, R = 11 */ pll3: st,pll@2 { cfg = < 1 33 1 16 36 PQR(1,1,1) >; frac = < 0x1a04 >; u-boot,dm-pre-reloc; }; /* VCO = 594.0 MHz => P = 99, Q = 74, R = 74 */ pll4: st,pll@3 { cfg = < 3 98 5 7 7 PQR(1,1,1) >; u-boot,dm-pre-reloc; }; </pre> ====STM32MP157C-DK2 case==== This chapter shows the boot time clock tree set by the FSBL on [[:category:STM32MP15_Evaluation_boards|STM32MP157C-DK2]] DISCO board. Linux eventual runtime modifications are not covered here. =====Clock tree===== The following table shows what [[:category:STM32MP15_Evaluation_boards|STM32MP157C-DK2]] clock tree looks like, as a result of the [[Boot chains overview|boot chain]] execution with the [[STM32MP15 device tree|device tree]] built with [[STM32CubeMX]]. <pre> Component | Parent | Frequency | Used? | Comment | -----------------------|---------|-----------------|--------|-----------------------------------| LSI |N.A. | 0.032000 MHz | yes | Mandatory for IWDG, DAC DAC |LSI | 0.032000 MHz | no | RNG1 |LSI | 0.032000 MHz | yes | Input frequency should be as low as possible RNG2 |LSI | 0.032000 MHz | yes | Input frequency should be as low as possible IWDG1 |LSI | 0.032000 MHz | yes | IWDG2 |LSI | 0.032000 MHz | yes | LSE |N.A. | 0.032768 MHz | yes | Mandatory for DTS RTC |LSE | 0.032768 MHz | yes | TAMP |LSE | 0.032768 MHz | yes | CEC |LSE | 0.032768 MHz | yes | LPTIM4 |LSE | 0.032768 MHz | yes | LPTIM5 |LSE | 0.032768 MHz | yes | HSI |N.A. | 64.000000 MHz | yes | SPI4 |HSI | 64.000000 MHz | yes | Arduino SPI5 |HSI | 64.000000 MHz | yes | Rpi SPI6 |HSI | 64.000000 MHz | no | I2C4 |HSI | 64.000000 MHz | yes | PMIC I2C6 |HSI | 64.000000 MHz | no | I2C1 |HSI | 64.000000 MHz | yes | Rpi and peripherals I2C2 |HSI | 64.000000 MHz | no | I2C3 |HSI | 64.000000 MHz | no | I2C5 |HSI | 64.000000 MHz | yes | Rpi and Arduino USART1 |HSI | 64.000000 MHz | no | USART2 |HSI | 64.000000 MHz | yes | Bluetooth USART3 |HSI | 64.000000 MHz | yes | Rpi UART4 |HSI | 64.000000 MHz | yes | Linux console UART5 |HSI | 64.000000 MHz | no | USART6 |HSI | 64.000000 MHz | no | UART7 |HSI | 64.000000 MHz | yes | Arduino UART8 |HSI | 64.000000 MHz | no | MCO1 |HSI | 64.000000 MHz | no | Available so can be used HSE |N.A. | 24.000000 MHz | yes | DSIPLL |HSE | 125.000000 MHz | no | DSI DPHY PLL DSIBL |DSIPLL | 125.000000 MHz | no | DSI lanebyte clock RTCDIV |HSE | 1.000000 MHz | yes | Only used when RTC source is HSE ck_per |HSE | 24.000000 MHz | yes | ADC |ck_per | 24.000000 MHz | yes | Can use internal divider to be < 40MHz PLL1 |HSE | 1300.000000 MHz | yes | PLL1P |PLL1 | 650.000000 MHz | yes | MPUDIV |PLL1P | 325.000000 MHz | yes | Cortex-A7 |PLL1P | 650.000000 MHz | yes | MCO2 |Cortex-A7| 650.000000 MHz | no | Available so can be used PLL2 |HSE | 1066.000000 MHz | yes | PLL2P |PLL2 | 266.500000 MHz | yes | AXI |PLL2P | 266.500000 MHz | yes | < 266MHz FMC |AXI | 266.500000 MHz | no | QSPI |AXI | 266.500000 MHz | no | SYSRAM |AXI | 266.500000 MHz | yes | ROM |AXI | 266.500000 MHz | yes | AHB5 |AXI | 266.500000 MHz | yes | < 266MHz CRYP1 |AHB5 | 266.500000 MHz | yes | HASH1 |AHB5 | 266.500000 MHz | yes | GPIOZ |AHB5 | 266.500000 MHz | yes | BKPSRAM |AHB5 | 266.500000 MHz | yes | AHB6 |AXI | 266.500000 MHz | yes | < 266MHz CRC1 |AHB6 | 266.500000 MHz | yes | MDMA |AHB6 | 266.500000 MHz | yes | USBH |AHB6 | 266.500000 MHz | yes | USB Host APB4 |AHB6 | 133.250000 MHz | yes | APB5 |AHB6 | 66.625000 MHz | yes | BSEC |APB5 | 66.625000 MHz | yes | < 67MHz ETZPC |APB5 | 66.625000 MHz | yes | TZC |APB5 | 66.625000 MHz | yes | DBGAPB |AXI | 133.250000 MHz | yes | JTAG & Coresight DBGMCU |DBGAPB | 66.625000 MHz | yes | STM |DBGAPB | 66.625000 MHz | no | PLL2Q |PLL2 | 533.000000 MHz | yes | GPU |PLL2Q | 533.000000 MHz | yes | < 533MHz PLL2R |PLL2 | 533.000000 MHz | yes | DDR |PLL2R | 533.000000 MHz | yes | < 533MHz PLL3 |HSE | 417.755859 MHz | yes | PLL3P |PLL3 | 208.877930 MHz | yes | MLAHB |PLL3P | 208.877930 MHz | yes | < 209MHz Cortex-M4 |MLAHB | 208.877930 MHz | yes | SRAM1 |MLAHB | 208.877930 MHz | yes | SRAM2 |MLAHB | 208.877930 MHz | yes | SRAM3 |MLAHB | 208.877930 MHz | yes | RETRAM |MLAHB | 208.877930 MHz | yes | AHB1 |MLAHB | 208.877930 MHz | yes | < 209MHz AHB2 |MLAHB | 208.877930 MHz | yes | < 209MHz DMA1 |AHB2 | 208.877930 MHz | yes | DMA2 |AHB2 | 208.877930 MHz | yes | DMAMUX |AHB2 | 208.877930 MHz | yes | APB1 |MLAHB | 104.438965 MHz | yes | LPTIM1 |APB1 | 104.438965 MHz | yes | WWDG |APB1 | 104.438965 MHz | yes | APB2 |MLAHB | 104.438965 MHz | yes | TIM2 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM3 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM4 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM5 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM6 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM7 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM12 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM13 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM14 |MLAHB | 208.877930 MHz | yes | TIM Group 1 TIM1 |MLAHB | 208.877930 MHz | yes | TIM Group 2 TIM8 |MLAHB | 208.877930 MHz | yes | TIM Group 2 TIM15 |MLAHB | 208.877930 MHz | yes | TIM Group 2 TIM16 |MLAHB | 208.877930 MHz | yes | TIM Group 2 TIM17 |MLAHB | 208.877930 MHz | yes | TIM Group 2 APB3 |MLAHB | 104.438965 MHz | yes | LPTIM2 |APB3 | 104.438965 MHz | yes | LPTIM3 |APB3 | 104.438965 MHz | yes | SYSCFG |APB3 | 104.438965 MHz | yes | VREFBUF |APB3 | 104.438965 MHz | yes | DTS |APB3 | 104.438965 MHz | yes | HDP |APB3 | 104.438965 MHz | no | AHB3 |MLAHB | 208.877930 MHz | yes | < 209MHz CRC2 |AHB3 | 208.877930 MHz | yes | CRYP2 |AHB3 | 208.877930 MHz | yes | HASH2 |AHB3 | 208.877930 MHz | yes | DCMI |AHB3 | 208.877930 MHz | no | IPCC |AHB3 | 208.877930 MHz | yes | Mailbox AHB4 |MLAHB | 208.877930 MHz | yes | < 209MHz PWR |AHB4 | 208.877930 MHz | yes | RCC |AHB4 | 208.877930 MHz | yes | GPIOA-K |AHB4 | 208.877930 MHz | yes | EXTI |AHB4 | 208.877930 MHz | yes | PLL3Q |PLL3 | 24.573874 MHz | yes | SPI1 |PLL3Q | 24.573874 MHz | yes | SPI2S1 for BT PCM SPI2 |PLL3Q | 24.573874 MHz | yes | SPI2S2 for HDMI SPI3 |PLL3Q | 24.573874 MHz | no | DFSDM |PLL3Q | 24.573874 MHz | no | SAI1 |PLL3Q | 24.573874 MHz | no | SAI2 |PLL3Q | 24.573874 MHz | yes | AudCodec 48kHz (use PLL3R for 44.1kHz) SAI3 |PLL3Q | 24.573874 MHz | no | SAI4 |PLL3Q | 24.573874 MHz | no | PLL3R |PLL3 | 11.290699 MHz | yes | PLL4 |HSE | 594.000000 MHz | yes | PLL4P |PLL4 | 99.000000 MHz | yes | SDMMC1 |PLL4P | 99.000000 MHz | yes | µSD card SDMMC2 |PLL4P | 99.000000 MHz | yes | Wifi SDMMC3 |PLL4P | 99.000000 MHz | yes | Rpi SPDIF |PLL4P | 99.000000 MHz | no | PLL4Q |PLL4 | 74.250000 MHz | yes | LCD |PLL4Q | 74.250000 MHz | yes | LTDC & DSI display pixel clock FDCAN |PLL4Q | 74.250000 MHz | yes | Should be as high as possible and < 100MHz PLL4R |PLL4 | 74.250000 MHz | yes | STGEN |HSE | 24.000000 MHz | yes | USBPHYC |HSE | 24.000000 MHz | yes | USB PHY Ctrl for USB Host and OTG USBPLL |USBPHYC | 48.000000 MHz | yes | USBO |USBPLL | 48.000000 MHz | yes | USB OTG CSI |N.A. | 4.000000 MHz | yes | Mandatory for IO compensation ETH |N.A. | 0.000000 MHz | no | ETH clocked by RGMII PHY -----------------------|---------|-----------------|--------|-----------------------------------| </pre> =====Device tree===== Here are the corresponding device tree '''rcc_clk''' sub node properties consumed by the first stage boot loader (FSBL) to configure the clock tree above: <pre> st,clksrc = < CLK_MPU_PLL1P CLK_AXI_PLL2P CLK_MCU_PLL3P CLK_PLL12_HSE CLK_PLL3_HSE CLK_PLL4_HSE CLK_RTC_LSE CLK_MCO1_DISABLED CLK_MCO2_DISABLED >; st,clkdiv = < 1 /*MPU*/ 0 /*AXI*/ 0 /*MCU*/ 1 /*APB1*/ 1 /*APB2*/ 1 /*APB3*/ 1 /*APB4*/ 2 /*APB5*/ 23 /*RTC*/ 0 /*MCO1*/ 0 /*MCO2*/ >; st,pkcs = < CLK_CKPER_HSE CLK_FMC_ACLK CLK_QSPI_ACLK CLK_ETH_DISABLED CLK_SDMMC12_PLL4P CLK_DSI_DSIPLL CLK_STGEN_HSE CLK_USBPHY_HSE CLK_SPI2S1_PLL3Q CLK_SPI2S23_PLL3Q CLK_SPI45_HSI CLK_SPI6_HSI CLK_I2C46_HSI CLK_SDMMC3_PLL4P CLK_USBO_USBPHY CLK_ADC_CKPER CLK_CEC_LSE CLK_I2C12_HSI CLK_I2C35_HSI CLK_UART1_HSI CLK_UART24_HSI CLK_UART35_HSI CLK_UART6_HSI CLK_UART78_HSI CLK_SPDIF_PLL4P CLK_FDCAN_PLL4Q CLK_SAI1_PLL3Q CLK_SAI2_PLL3Q CLK_SAI3_PLL3Q CLK_SAI4_PLL3Q CLK_RNG1_LSI CLK_RNG2_LSI CLK_LPTIM1_PCLK1 CLK_LPTIM23_PCLK3 CLK_LPTIM45_LSE >; /* VCO = 1300.0 MHz => P = 650 (CPU) */ pll1: st,pll@0 { cfg = < 2 80 0 0 0 PQR(1,0,0) >; frac = < 0x800 >; u-boot,dm-pre-reloc; }; /* VCO = 1066.0 MHz => P = 266 (AXI), Q = 533 (GPU), R = 533 (DDR) */ pll2: st,pll@1 { cfg = < 2 65 1 0 0 PQR(1,1,1) >; frac = < 0x1400 >; u-boot,dm-pre-reloc; }; /* VCO = 417.8 MHz => P = 209, Q = 25, R = 11 */ pll3: st,pll@2 { cfg = < 1 33 1 16 36 PQR(1,1,1) >; frac = < 0x1a04 >; u-boot,dm-pre-reloc; }; /* VCO = 594.0 MHz => P = 99, Q = 74, R = 74 */ pll4: st,pll@3 { cfg = < 3 98 5 7 7 PQR(1,1,1) >; u-boot,dm-pre-reloc; }; </pre> </div></div> <noinclude> [[Category:STM32MP15 platform configuration|0]] {{PublicationRequestId | 6329 | 2018-02-26 | BrunoB}} <!-- clock_tree-1.14 --> </noinclude>
该页面使用的模板:
模板:CodeSource
(
查看源代码
)
模板:EcosystemRelease
(
查看源代码
)
模板:EcosystemRelease/Components
(
查看源代码
)
模板:EcosystemRelease/Revision
(
查看源代码
)
模板:PublicationRequestId
(
查看源代码
)
返回至
STM32MP15 clock tree
。
导航
导航
WIKI首页
官方店铺
资料下载
交流社区
所有页面
所有产品
MPU-Linux开发板
MCU-单片机开发板
Linux开发系列视频
单片机开发系列视频
所有模块配件
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志