导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    【网络Tips6】Tina网络如何修改SDIO的频率?

    MR Series
    1
    1
    1382
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • RCfly
      三颗芋圆 LV 4 最后由 编辑

      大家好,我是三颗芋圆,始于LWIP,陷于TCP/IP,忠于80211。
      本次Tips聊聊如何修改SDIO的频率。
      前面我们提到了Wi-Fi的传输接口有SDIO/USB/PCI等多种接口,常用的还是SDIO,那么这些接口的速率直接就会影响到Wi-Fi的性能,而速率的最关键的一个指标就是频率。
      Tina上有多种方式可以修改和查看SDIO的频率
      一.查看SDIO的频率
      1)启动log查看:

      sunxi-mmc sdc1: sdc set ios:clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B
      sunxi-mmc sdc1: no vqmmc,Check if there is regulator
      sunxi-mmc sdc1: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
      sunxi-mmc sdc1: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
      sunxi-mmc sdc1: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
      sunxi-mmc sdc1: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing SD-HS(SDR25) dt B
      sunxi-mmc sdc1: sdc set ios:clk 50000000Hz bm PP pm ON vdd 21 width 1 timing SD-HS(SDR25) dt B
      sunxi-mmc sdc1: sdc set ios:clk 50000000Hz bm PP pm ON vdd 21 width 4 timing SD-HS(SDR25) dt B
      [SBUS] XRadio Device:sdio clk=50000000
      

      如上是扫卡的打印,一开始是400kHZ,后面是50MHZ。
      2)系统节点操作:

      root@TinaLinux:/sys/kernel/debug/xradio_host_dbg# ls
      dbg_ap          dbg_logfile     dbg_sta         hwinfo
      dbg_bh          dbg_pm          dbg_tpa_node    set_sdio_clk
      dbg_common      dbg_sbus        dbg_txrx        tx_burst_limit
      dbg_etf         dbg_scan        dbg_wsm
      

      3)uboot阶段查看
      利用uboot的 fdt工具修改sdc1

      fdt print /soc/sdmmc@04021000
      

      二.修改SDIO频率
      1)在dts或者sys_config.fex中修改:
      1.1)sys_config.fex

      402 [sdc1]
      403 sdc1_used               = 1
      404 bus-width               = 4
      405 sdc1_clk                = port:PG00<2><1><3><default>
      406 sdc1_cmd                = port:PG01<2><1><3><default>
      407 sdc1_d0                 = port:PG02<2><1><3><default>
      408 sdc1_d1                 = port:PG03<2><1><3><default>
      409 sdc1_d2                 = port:PG04<2><1><3><default>
      410 sdc1_d3                 = port:PG05<2><1><3><default>
      411 cap-sdio-irq            =
      412 max-frequency           = 25000000  //从150M改为25M.
      

      1.2)board.dts

      565 &sdc1 {
      566         bus-width = <4>;
      567         no-mmc;
      568         no-sd;
      569         cap-sd-highspeed;
      570         /*sd-uhs-sdr12*/
      571         /*sd-uhs-sdr25;*/
      572         /*sd-uhs-sdr50;*/
      573         /*sd-uhs-ddr50;*/
      574         /*sd-uhs-sdr104;*/
      575         /*sunxi-power-save-mode;*/
      576         /*sunxi-dis-signal-vol-sw;*/
      577         cap-sdio-irq;
      578         keep-power-in-suspend;
      579         ignore-pm-notify;
      580         max-frequency = <150000000>;  //调整这个最大频率参数
      581         ctl-spec-caps = <0x8>;
      582         status = "okay";
      583 };
      

      2)节点操作

      /sys/kernel/debug/xradio_host_dbg/set_sdio_clk
      

      默认是0表示即扫卡的频率
      操作:echo 50000000 > set_sdio_clk
      3)uboot阶段操作:
      同样也可以在uboot阶段利用fdt工具操作

      fdt set /soc/sdmmc@04021000 max-frequency  <150000000>
      

      PS:注意uboot的修改只是单次有效,重启后就无效了。

      1 条回复 最后回复 回复 引用 分享 0
      • 1 / 1
      • First post
        Last post

      Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

      行为准则 | 用户协议 | 隐私权政策