http://vonger.cn/?p=931
http://vonger.cn/?p=1259
收获还不少,
虽然全英文的页面, 但是域名还是中国的.
为了防止链接失效, 我转成pdf了:
在线
mark,可以用来做加密了
离线
mark,可以用来做加密了
一的想法
离线
用来做加密,不错
离线
这个加密,我是不是只要知道一个已知的ID,然后自己编译个LINUX,然后另写一个
DEVICE_ATTR(factory_id, S_IRUGO, m25p_factory_id_show, NULL);
m25p_factory_id_show 这个函数直接返回与另一个板一样的值?
估计得再实现一个写入值,然后写入值与这个ID进行混合,按双方都知道的算法进行加密,再返回,进行一次校验。。。
最近编辑记录 staunchheart (2020-09-25 15:51:57)
离线
winbond的是有的。但是MX25L的似乎没有这个唯一ID呢。
离线
Download new driver file m25p80.c
diff the origin m25p80.c and my m25p80.c
64,66d63
< /* Used for Winbond flashes only. */
< #define OPCODE_WINBOND_ID 0x4b /* Get flash unique id */
<
1001,1016d997
< /* flash unique id probe */
< static int unique_id_prob(struct spi_device *spi, u8 *id)
< {
< int tmp;
< u8 code[5];
<
< code[0] = OPCODE_WINBOND_ID;
< tmp = spi_write_then_read(spi, &code, 5, id, 8);
< if (tmp < 0) {
< pr_debug("%s: error %d reading UNIQUE ID\n",
< dev_name(&spi->dev), tmp);
< return tmp;
< }
< return 0;
< }
<
1125,1136d1105
< /* show unique id in kernel debug log for w25q64 or w25q128. */
< if(info->jedec_id == 0xef4017 || info->jedec_id == 0xef4018) {
< u8 unique_id[8];
< if(!unique_id_prob(spi, unique_id)) {
< dev_warn(&spi->dev, "flash id: %02x%02x%02x%02x%02x%02x%02x%02x\n",
< unique_id[7], unique_id[6], unique_id[5], unique_id[4],
< unique_id[3], unique_id[2], unique_id[1], unique_id[0]);
< } else {
< dev_warn(&spi->dev, "failed to get flash unique id.\n");
< }
< }
<
离线
函数spi_write_then_read是怎么实现的?
离线
我的nor flash是by25q256es,即博雅的,如何读取整个uid号码呀。上面的完整代码能否参考一下
离线