This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

disable unused clocks

Hi,

How to disable the pcie, sata, NEON and SGX530 in uboot and linux (power down and clocks disabled)

Thanks And Regards,

Mike

  • Mike,

    Let us first focus on PCIe. In u-boot, unless you configure to boot from PCIe, the PCIe is disabled by default. Make sure the below registers have these values:

    SERDES_REFCLK_CTRL/0x48140E24 = 0x3
    PCIE_PLLCFG0/0x481406D8 = 0x40007000
    CM_DEFAULT_PCI_CLKCTRL/0x48180578 = 0x00070000
    CM_DEFAULT_PCI_CLKSTCTRL/0x48180510 = 0x00000001

    While in linux kernel, PCIe module is enabled by default in the below file and functions:

    linux-kernel/arch/arm/mach-omap2/devices.c - ti814x_pcie_pllcfg() and ti81xx_init_pcie()

    You can remove this code or modify it to get the right values in the above registers.

    static int __init omap2_init_devices(void)
    {

    #ifdef CONFIG_ARCH_TI81XX
        if (cpu_is_ti814x()) {
            /* Init PCIe,SATA PLL here, before invoking respective init*/
            //ti814x_pcie_pllcfg();
            //if(!cpu_is_ti811x())
                //ti814x_sata_pllcfg();
        }

        ti81xx_ethernet_init();
        //ti81xx_init_pcie();



    BR
    Pavel

  • Hi Pavel,

    Thanks for the response, I have fixed the disabling of clocks as per your suggestion but how do I disable the clocks for SGX, NEON and DSP ?

    are they enabled in u-boot or linux ?

    Thanks And Regards

    Mike

  • Mike,

    Regarding SATA, you should have the below values:

    CM_DEFAULT_SATA_CLKCTRL/0x48180560 = 0x00070000
    SATA_PLLCFG0/0x48140720 = 0xC0000000

    in u-boot, remove the sata pll init code:
    u-boot/board/ti/ti8148/evm.c -> sata_pll_config()

    in linux kernel, remove sata pll and sata init code:
    linux-kernel/arch/arm/mach-omap2/devices.c -> ti814x_sata_pllcfg() and omap_init_ahci()/ti81xx_ahci_plat_init()

    BR
    Pavel
  • Hi Pavel,

    I see that CM_DEFAULT_SATA_CLKCTRL/0x48180560 = 0x00070000,
    but SATA_PLLCFG0/0x48140720 = 0xC0000017

    I tried commenting out the sata_pll_config() in uboot and saw that the U-boot itself
    doesn’t come up. I see that sata serdes clock is used by GMII probably thats the reason it didnt boot up ?

    Thanks And Regards
    Mike
  • mike A said:
    I tried commenting out the sata_pll_config() in uboot and saw that the U-boot itself
    doesn’t come up. I see that sata serdes clock is used by GMII probably thats the reason it didnt boot up ?

    That is correct.

  • Hi Pavel,

    Is there a way to power down the SATA ?

    Thanks And Regards,
    Mike
  • Hi Pavel,

    I tried commenting out the sata_pll_config() and with NO_ETH config enabled yet the board doesnt boot up any pointer on this ?

    Thanks And Regards,
    Mike
  • mike A said:
    Is there a way to power down the SATA ?

    No, SATA is in Always on power domain.

    BR
    Pavel

  • mike A said:
    I tried commenting out the sata_pll_config() and with NO_ETH config enabled yet the board doesnt boot up any pointer on this ?

    Try with removing ethernet support.

    u-boot/board/ti/ti8148/em.c

    void per_clocks_enable(void)
    {

    /* Ethernet */
        //__raw_writel(0x2, CM_ETHERNET_CLKSTCTRL);
        //__raw_writel(0x2, CM_ALWON_ETHERNET_0_CLKCTRL);
        //while((__raw_readl(CM_ALWON_ETHERNET_0_CLKCTRL) & 0x30000) != 0);
        //__raw_writel(0x2, CM_ALWON_ETHERNET_1_CLKCTRL);

    u-boot/include/configs/ti8148_evm.h

    //# define CONFIG_DRIVER_TI_CPSW

    BR
    Pavel

  • mike A said:
    How to disable

    mike A said:
    NEON

    NEON is part of the Cortex-A8 ARM core and is documented in the Cortex-A8 ARM Core TRM, available at the ARM site:

    I would recommend you to check this TRM how (if possible) to disable only NEON part of the Cortex-A8 ARM core. You can also contact the ARM support team if any questions regarding the ARM TRM.


    The below wiki pages might be also in help:

    BR
    Pavel

  • mike A said:
    how do I disable the clocks for SGX

    SGX is disabled by default in u-boot and linux kernel, you should have the below values:

    SGXPLL_PWRCTRL/0x481C50B0 = 0x30

    SGXPLL_CLKCTRL[23] IDLE/0x481C50B4 = 1

    CM_SGX_CLKSTCTRL/0x48180900 = 0x1

    CM_SGX_CLKCTRL/0x48180920 = 0x70000

    PM_SGX_PWRSTCTRL/0x48180F00 = 0x30000

    PM_SGX_PWRSTST/0x48180F10 = 0

    SGX is enabled through linux kernel loadable modules (omaplfb.ko, pvrsrvkm.ko and bufferclass_ti.ko), so if you do not load these modules into the kernel, SGX stay disabled.


    BR
    Pavel

  • mike A said:
    how do I disable

    mike A said:
    DSP

    Unless you load DSP firmware, DSP stay disable in u-boot and linux kernel. See the below e2e thread for more info:

    BR
    Pavel