Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

ID 814346
Date 4/01/2024
Public
Document Table of Contents

7.7.5. Summary Table of Registers Used to Program Clocks

Table 322.  Summary of Registers Used to Program Clocks
Clock Name   *.src *.cnt (n+1 divider) *.div (2^n divider) Clock Gate (enable)
CORES
core3_clk

ctlgrp.core23ctr.src

= 0 (Main_PLL_C0)

= 1 (Peri_PLL)

ctlgrp.core3ctr.cnt mainpllgrp.en.core3en
core2_clk ctlgrp.core2ctr.cnt mainpllgrp.en.core2en
core1_clk

Ctlgrp.core01ctr.src

= 0 (Main_PLL_C1)

= 1 (Peri_PLL_C0)

ctlgrp.core01ctr.cnt mainpllgrp.en.core1en
core0_clk mainpllgrp.en.core0en
DSU/APS
mpu_free_clk

Ctlgrp.dsuctr.src

= 0 (Main_PLL_C2)

= 1 (Peri_PLL_C0)

Ctlgrp.dsuctr.cnt
mpu_clk
Mpu_ccu_clk Mainpllgrp.nocdiv.ccudiv
Mpu_periph_clk Mainpllgrp.nocdiv.mpuperiphdiv
PSS NOC
l3_main_free_clk

Mainpllgrp.nocclk.src

= 0 (Main_PLL_C3)

= 1 (Peri_PLL_C1)

l4_main_clk Mainpllgrp.en.l4mainclken
l4_mp_clk Mainpllgrp.nocdiv.l4mpclk Mainpllgrp.en.l4mpclken
l4_sp_clk Mainpllgrp.nocdiv.l4spclk Mainpllgrp.en.l4spclken
l4_sys_free_clk Mainpllgrp.nocdiv.l4sysfreeclk
SPIM: spim[1,0]_sclk_out l4_main_clk Perpllgrp.en.spim_[1,0]_clken

SPIS:

spis[1,0]_sclk_in

Perpllgrp.en.spis_[1,0]_clken

DMA:

dmac_core_clk, aclk_mi

Perpllgrp.en.dmaclken

DMA:

hs_clk

l4_mp_clk Perpllgrp.en.dmaclken

USB2OTG:

hclk, pmu_hclk, utmi_clk

perpllgrp.en.usb2clken

I3C:

core_clk

Perpllgrp.en.i3c_[1,0]_clken

I2C:

pclk

l4_sp_clk Perpllgrp.en.i2c_[1,0]_clken

UART:

pclk

Perpllgrp.en.uart_[1,0]_clken

SP TIMER:

pclk

Perpllgrp.en.spitimer_[1,0]_clken
MPFE
--- ---
EMAC
emac0_clk Emac0sel = 0

Ctlgrp.emacActr.src

= 0 (Main_PLL_C1)

= 1 (Peri_PLL_C3)

Ctlgrp.emacActr.cnt Perpllgrp.en.emac0en
Emac0sel = 1

Ctlgrp.emacBctr.src

= 0 (Main_PLL_C1)

= 1 (Peri_PLL_C3)

Ctlgrp.emacBctr.cnt
Emac1_clk Emac1sel = 0

Ctlgrp.emacActr.src

= 0 (Main_PLL_C1)

= 1 (Peri_PLL_C3)

Ctlgrp.emacActr.cnt Perpllgrp.en.emac1en
Emac1sel = 1

Ctlgrp.emacBctr.src

= 0 (Main_PLL_C1)

= 1 (Peri_PLL_C3)

Ctlgrp.emacBctr.cnt
Emac2_clk Emac2sel = 0

Ctlgrp.emacActr.src

= 0 (Main_PLL_C1)

= 1 (Peri_PLL_C3)

Ctlgrp.emacActr.cnt Perpllgrp.en.emac2en
Emac2sel = 1

Ctlgrp.emacBctr.src

= 0 (Main_PLL_C1)

= 1 (Peri_PLL_C3)

Ctlgrp.emacBctr.cnt
emac_ptp_clk

Ctlgrp.emacPTPctr.src

= 0 (Main_PLL_C3)

= 1 (Peri_PLL_C3)

Ctlgrp.emacPTPctr.cnt Perpllgrp.en.emacPTPen
USB3.1
Usb31_ref_clk

Ctlgrp.usb31ctr.src

= 0 (Main_PLL_C3)

= 1 (Peri_PLL_C2)

Ctlgrp.usb31ctr.cnt Perpllgrp.en.usb31clken
SD/eMMC / NAND / SoftPHY

SoftPHY:

phy_clk

l4_mp_clk Mainpllgrp.nocdiv.softphydiv

SoftPHY:

dfi_clk

phy_clk

System_Mgr.dfi_interface_cfg.dfi_ctrl_sel 42

SD/eMMC: sdphy_reg_clk, S_pclk, clk l4_mp_clk Perpllgrp.en.sdmmcclken

SD/eMMC:

Sdmclk

dfi_clk

NAND:

bch_clk, mACLK, regPCLK, Phy_reg_pclk

l4_mp_clk Perpllgrp.en.nandclken

NAND:

nf_clk

dfi_clk

SoftPHY:

reg_pclk

l4_mp_clk Perpllgrp.en.softphyclken

SoftPHY:

clk_ctrl

dfi_clk

SoftPHY:

clk_phy

phy_clk
H2F
h2f_user0_clk

Ctlgrp.s2fuser0ctr.src

= 0 (Main_PLL_C1)

= 1 (Peri_PLL_C3)

Ctlgrp.s2fuser0ctr.cnt Mainpllgrp.en.s2fuser0clken
h2f_user1_clk

Ctlgrp.s2fuser1ctr.src

= 0 (Main_PLL_C1)

= 1 (Peri_PLL_C3)

Ctlgrp.s2fuser1ctr.cnt perpllgrp.en.s2fuser1clken
GPIO
gpio_db_clk

Ctlgrp.gpiodbctr.src

= 0 (Main_PLL_C3)

= 1 (Peri_PLL_C1)

Ctlgrp.gpiodbctr.cnt

Perpllgrp.gpiodiv.gpiodbclk 43

Perpllgrp.en.gpiodben
CoreSight
cs_at_clk

Mainpllgrp.nocclk.src

= 0 (Main_PLL_C3)

= 1 (Peri_PLL_C1)

Mainpllgrp.nocdiv.csclk Mainpllgrp.en.csclken
cs_pdbg_clk Mainpllgrp.nocdiv.cspdbgclk
cs_trace_clk Mainpllgrp.nocdiv.cstraceclk
PSI
psi_ref_clk

Ctlgrp.psirefctr.src

= 0 (Main_PLL_C1)

= 1 (Peri_PLL_C3)

Ctlgrp.psirefctr.cnt Perpllgrp.en.psiclken
42 System_Mgr.dfi_interface_cfg.dfi_ctrl_sel. If using NAND, then set this to =0. If using SD/eMMC, then set this to =1.
43 perpllgrp.gpiodiv.gpiodbclk is actually a n+1 divider, and not a 2^n divider. A divide by 1 value (perpllgrp.gpiodiv.gpiodbclk = 0) is not supported and may produce unpredictable results.