龙芯开源社区

 找回密码
 注册新用户(newuser)
查看: 7171|回复: 19

用了一个晚上写的2F动态调整频率的驱动

[复制链接]
发表于 2008-7-21 21:54:40 | 显示全部楼层 |阅读模式
从没有写过内核模块,依样画葫芦地写了一个,功能是为cpufreq提供2F的驱动,支持SMP,如果成功的话,可以通过cpuspeed自动调节频率了。

有几点无奈:
1、2F主频调节分8档,不知用具体的一档时与原主频的关系。暂时按照第n档为原主频的n/8处理。
2、MIPS的cpu信息不包括主频,也不知道如何得到当前系统的主频。暂时自己定义了一个800MHz的伪主频。

没有龙芯环境,该文件需要有环境的人帮忙测试修改(简单的语法错误肯定会犯的)。

希望这个驱动的修改版可以真正做到调节频率。

[ 本帖最后由 jamesr 于 2008-7-30 20:55 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册新用户(newuser)

x
发表于 2008-7-21 22:43:21 | 显示全部楼层
不管行不行。

都要支持一下。
发表于 2008-7-22 07:54:03 | 显示全部楼层
呵呵,我也来支持下,虽然我用的是2E的盒子
发表于 2008-7-22 23:09:47 | 显示全部楼层
不错,支持
发表于 2008-7-23 08:55:03 | 显示全部楼层

回复 #1 jamesr 的帖子

是主频的n/8。为0时由外部中断触发。在2.6.24以上的内核可以采用其它时钟做clock source,enable dyntick(动态时钟?), 然后在cpu_idle中把时钟设为0, 这样对降低功耗有很大好处,龙梦下一步会对功耗管理进行深入的研究,争取能够把本本的电池时间大幅度增加。
发表于 2008-7-23 08:56:08 | 显示全部楼层
今天晚上可以帮你测试
只要我们家小家伙不闹。
发表于 2008-7-23 09:18:03 | 显示全部楼层
原帖由 foxsen 于 2008-7-23 08:55 发表
是主频的n/8。为0时由外部中断触发。在2.6.24以上的内核可以采用其它时钟做clock source,enable dyntick(动态时钟?), 然后在cpu_idle中把时钟设为0, 这样对降低功耗有很大好处,龙梦下一步会对功耗管理进行深 ...


龙芯是不是没有wait之类的指令?我看了下内核代码,龙芯没有cpu_wait()函数。结果idle跟不idle似乎功耗都一样。
 楼主| 发表于 2008-7-23 09:44:34 | 显示全部楼层
原帖由 foxsen 于 2008-7-23 08:55 发表
是主频的n/8。为0时由外部中断触发。在2.6.24以上的内核可以采用其它时钟做clock source,enable dyntick(动态时钟?), 然后在cpu_idle中把时钟设为0, 这样对降低功耗有很大好处,龙梦下一步会对功耗管理进行深 ...


那个控制变频的只有8个值3'b000到3‘b111,默认是3‘b111(如果是n/8岂不成了7/8?),难道其它地方有开关?
另外,硬件手册上说有个SYSCLK输入信号,不知软件如何读取,软件手册上找不到。现在倍频软件可读取,如果SYSCLK也可读取,就能计算出主频了。
发表于 2008-7-23 17:56:03 | 显示全部楼层
收藏, 晚上帮你试验
发表于 2008-7-23 17:56:56 | 显示全部楼层
成功了的话, 可以提交到 kernel的,  对kernel贡献代码的人, 大部分只提交过一次, 嘿嘿.

本版积分规则

小黑屋|手机版|Archiver|Lemote Inc.  

GMT+8, 2019-8-25 08:56 , Processed in 0.205640 second(s), 21 queries .

快速回复 返回顶部 返回列表