返回信息流现在有个需求:linux2.4下要写个应用程序(可以是运行在内核空间或者是用户空间)读取目标板上所有芯片的ID号 ,然后把读到的这些信息写到一个文件中
思路1:直接操作芯片的寄存器,看没个芯片地址线、数据线和控制线在整个内存空间的映射;
思路2:改写芯片的驱动程序(比如flash芯片驱动里有直接读芯片ID号的函数,只是它没导出到内核空间,只有它自己的模块能使用这个函数,我现在就导出到内核空间或者加到ioctl里)
不知道思路可行不可行,大家给点意见吧。先谢了。
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #9214同步于 2010/7/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
[求助]读取目标板上所有芯片的ID号
michealyao
2010/7/30镜像同步10 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
直接操作芯片寄存器就相当于写个新的驱动了,把一大堆芯片读取id写在一个驱动里,乱
七八糟的,结构很不好,建议用思路2
【 在 michealyao (吾爱雨寒) 的大作中提到: 】
: 现在有个需求:linux2.4下要写个应用程序(可以是运行在内核空间或者是用户空间)读取目标板上所有芯片的ID号 ,然后把读到的这些信息写到一个文件中
: 思路1:直接操作芯片的寄存器,看没个芯片地址线、数据线和控制线在整个内存空间的映射;
: 思路2:改写芯片的驱动程序(比如flash芯片驱动里有直接读芯片ID号的函数,只是它没导出到内核空间,只有它自己的模块能使用这个函数,我现在就导出到内核空间或者加到ioctl里)
: ...................
我所知道的flash驱动力有直接读写Manufacture ID和Device ID的函数;其他的芯片如SDRAM,cpu, 网卡等驱动程序我就不熟悉了。不知道这方面该从何入手。ArmStrong对这些熟悉不?给点意见啊
【 在 ArmStrong 的大作中提到: 】
: 直接操作芯片寄存器就相当于写个新的驱动了,把一大堆芯片读取id写在一个驱动里,乱
: 七八糟的,结构很不好,建议用思路2
挨个驱动看吧,有调用就调,没有调用就看datasheet往上加,不会有什么捷径啊,说实在的
我对这个需求很无语,读ID干嘛呀
【 在 michealyao (吾爱雨寒) 的大作中提到: 】
: 我所知道的flash驱动力有直接读写Manufacture ID和Device ID的函数;其他的芯片如SDRAM,cpu, 网卡等驱动程序我就不熟悉了。不知道这方面该从何入手。ArmStrong对这些熟悉不?给点意见啊
上头交代下来,据说是要用来加密用。我也不想干这个活。
谢哈!
【 在 ArmStrong 的大作中提到: 】
: 挨个驱动看吧,有调用就调,没有调用就看datasheet往上加,不会有什么捷径啊,说实在的
: 我对这个需求很无语,读ID干嘛呀
有些芯片是挂在其他总线上的 id也只是设备寄存器的一个地址而已 用户空间只要能访问该总线 就可以得到ID
对于Flash的ID 可以将flash的地址空间mmap到用户空间 就可以模仿内核空间的方式按照Flash获得id的时序就可以获得ID了
要加密是不是可以考虑加个eeprom,干嘛读其他所有id...即使这样也不耽误别人抄板啊
【 在 michealyao (吾爱雨寒) 的大作中提到: 】
: 上头交代下来,据说是要用来加密用。我也不想干这个活。
: 谢哈!
我是把flash驱动中读写flash ID的函数给摘出来,做成一个驱动(其他的IC的ID我也想做到驱动的读函数里)。
ps:师兄知道ram有没有ID号啊,我上网查了些资料。无法肯定ram有没有ID
【 在 ssailing 的大作中提到: 】
: 有些芯片是挂在其他总线上的 id也只是设备寄存器的一个地址而已 用户空间只要能访问该总线 就可以得到ID
: 对于Flash的ID 可以将flash的地址空间mmap到用户空间 就可以模仿内核空间的方式按照Flash获得id的时序就可以获得ID了
: --
: ...................
是这样的,有很多芯片在生产的时候,不同批次的产品会有不同的ID号。我灌到目标板里的程序里,加入一个比较IC的ID号的程序(ID号就是通过这个程序读出来的,我板子的ID放在一个加密后的文件中),如果ID不相同就reboot或者destroy。
现在抄板的话,板子里面的程序也很容易破解?
【 在 ArmStrong 的大作中提到: 】
: 要加密是不是可以考虑加个eeprom,干嘛读其他所有id...即使这样也不耽误别人抄板啊
: 【 在 michealyao (吾爱雨寒) 的大作中提到: 】
: : 上头交代下来,据说是要用来加密用。我也不想干这个活。
: ...................