【网络Tips6】Tina网络如何修改SDIO的频率?
-
大家好,我是三颗芋圆,始于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工具修改sdc1fdt print /soc/sdmmc@04021000
二.修改SDIO频率
1)在dts或者sys_config.fex中修改:
1.1)sys_config.fex402 [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的修改只是单次有效,重启后就无效了。
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号