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.

SPI boot parameter table 中时钟所有频率对应的16bit映射表

您好:

        我目前在研究SPI BOOT PARAMETER TABLE 时,希望用16bit表示其所有时钟频率的映射关系,其中已经知道CPU时钟频率为5MHZ时,16bit

      0x0320 0000;//CPU频率,默认5MHZ

      0x01f4 0000;//bus 频率

        有几点求助:

        1、希望高手给出spi boot parameter table的针对不同频率的16bit 映射关系图。

         2、我算下来最高频率能达到40M左右,但映射关系表就乱了

         请高手帮忙,谢谢!

  • 不太明白你的问题,boot parameter table的各个字段的定义见RBL中的tiboot.h如附件,其中cpuFreqMhz字段是16bit,单位是MHz,0x320代表的是800MHz

    0x00500000  length checksum

    0x00320000  boot_mode portNum

    0x40140002  swPllCfg_msw swPllCfg_lsw

    0x00010018  options addrWidth

    0x00040000  n_pins csel

    0x00000000  mode c2tdelay

    0x03e80000  cpuFreqMhz busFreqMhz

    0x01f40051  busFreqKhz  read_addr_msw

    0x04000000  read_addr_lsw next_csel

    tiboot.h
  • 您好,我是初学spi boot parameter table的内容,现在想获得busFreqMhz及busFreqKhz所有可取的频率值及对应的16bit映射关系

    例如 0x03e80000  cpuFreqMhz busFreqMhz 中后四位0000,为默认值5MHZ。我想知道:对于spi bus 的所能取得频率值,比如40Mhz,20Mhz,10Mhz等等,它应该用xxxx表示,那对应的xxxx是哪些值及可取的频率值?

    0x01f40051  busFreqKhz  read_addr_msw,也是一样的,需要获得busFreqKhz的频率取值范围及对应的xxxx值。麻烦您了。谢谢!

  • 十六进制转换为十进制对应的就是频率值,没有什么转换关系。如0x03e80000  cpuFreqMhz busFreqMhz,其中前16bit为cpuFreqMhz,对应的就是cpu主频1000MHz,0x01f40051  busFreqKhz  read_addr_msw前16bit为busFreqKhz,对应就是500KHz。

  •      您好,我的问题可能还没描述清楚,给您带来理解的不便,sorry。 

         为什么我对你的回复不解呢,在0x03e80000  cpuFreqMhz busFreqMhz,后16bit为0x0000,可它默认的频率值是5MHZ,这就与16进制转换为10进制的结果不一样了(5Mhz对应0x0000,无法理解)。

    我现在想知道spi bus Freq可取的频率值及范围,和对应的16进制表示。

  • "后16bit为0x0000" 对应的是0MHz,5MHZ的话后16bit应该是5;SPI bus clock取值如SPI user guide下面截图所述,SPI module clock=CPU clock/6

  • 你好,SPI module clock=CPU clock/6,即对CPU clock进行6分频,在配置spi boot parameter 之前,那么CPU clock实际的时钟频率是多少?

  • 如bootloader user guide所述,SPI boot mode是PLL是bypass的,即corepac是工作在参考时钟频率,之后可以根据boot parameter table中的PLL参数进行配置的。