Linux kernel 使用旧内核更新mtd驱动程序

Linux kernel 使用旧内核更新mtd驱动程序,linux-kernel,embedded-linux,flash-memory,Linux Kernel,Embedded Linux,Flash Memory,我正在使用Spansion 64MB NOR闪存(通过mtd/cfi_cmdset_0002),并且面临与闪存擦除操作相关的问题 我有Linux内核2.6.10,通过比较2.6.10和3.11.1之间的/drivers/mtd代码 对于/drivers/mtd/chips/cfi_cmdset_0002.c)和othet mtd文件,以及检查位切换、闪存擦除时的延迟更改以及启用和禁用闪存操作的VPP,提供了一些修复程序 我已经对drivers/mtd/chips下的文件进行了更改,但是当检查/m

我正在使用Spansion 64MB NOR闪存(通过mtd/cfi_cmdset_0002),并且面临与闪存擦除操作相关的问题

我有Linux内核2.6.10,通过比较2.6.10和3.11.1之间的/drivers/mtd代码

对于/drivers/mtd/chips/cfi_cmdset_0002.c)和othet mtd文件,以及检查位切换、闪存擦除时的延迟更改以及启用和禁用闪存操作的VPP,提供了一些修复程序

我已经对drivers/mtd/chips下的文件进行了更改,但是当检查/mtd文件(如mtdpart、mtdcore、cmdlinepart等)的更改时,我发现需要进行大量的移植,似乎需要移植内核本身。有没有办法解决这个问题,因为我不想改变内核,而是想用2.6.10本身将mtd驱动程序代码升级到尽可能好的状态

我还想知道在哪里可以找到mtd代码从2.6.10到3.11.1的更改日志(我找不到它,这些文件中的修订历史也不会因更改而更新)

有没有办法解决这个问题,因为我不想改变内核,而是想用2.6.10本身将mtd驱动程序代码升级到尽可能好的状态

通常,对Linux的所有提交都试图成为实现一大块功能的原子块。任何有点编码的人都会知道,有些变化是非常孤立的,而另一些变化是系统性的。也就是说,您有特定的功能变化和基础结构变化。如果你想得到所有3.11.1的修改,你必须得到3.11.1。你需要决定哪些基础设施的改变是你不想要的

infradead.org上有一些UbiFs后台端口,例如,包含MTD层的补丁,最高可达Linux 3.0。将这些更改应用到您的树中应该不是什么问题。Linux 2.6.34和2.6.32有更好的后端端口;如果你能升级到那个版本,那么你就不用那么做了。将特定于驱动程序或芯片组的所有更改都向后移植是相当简单的。有时,基础设施的变化会使后台变得困难或不可能。例如,在旧内核中不允许从中断上下文调用函数,但在新版本中可以调用。结帐的一些,一个可能适合你的情况

一般来说,我会进行更改,只对需要的更改进行回接。您可以使用
git-format-patch-verA..verB-file
获取单个文件的补丁,然后使用
git-am
应用它们。应用10-20然后进行构建/回归测试是非常简单的。当你不得不扔掉补丁时,合并后面的补丁会变得越来越困难

我还想知道在哪里可以找到mtd代码从2.6.10到3.11.1的更改日志(我找不到它,这些文件中的修订历史也不会因更改而更新)

只需转到该目录并使用git日志即可——遵循操作。;在文件移动的情况下,需要使用
--follow
选项;至少我认为这会奏效。如果没有,您可以使用git在移动前使用*SHA_ID~1*签出版本,并使用分离的头部获取移动前的历史记录

有没有办法解决这个问题,因为我不想改变内核,而是想用2.6.10本身将mtd驱动程序代码升级到尽可能好的状态

通常,对Linux的所有提交都试图成为实现一大块功能的原子块。任何有点编码的人都会知道,有些变化是非常孤立的,而另一些变化是系统性的。也就是说,您有特定的功能变化和基础结构变化。如果你想得到所有3.11.1的修改,你必须得到3.11.1。你需要决定哪些基础设施的改变是你不想要的

infradead.org上有一些UbiFs后台端口,例如,包含MTD层的补丁,最高可达Linux 3.0。将这些更改应用到您的树中应该不是什么问题。Linux 2.6.34和2.6.32有更好的后端端口;如果你能升级到那个版本,那么你就不用那么做了。将特定于驱动程序或芯片组的所有更改都向后移植是相当简单的。有时,基础设施的变化会使后台变得困难或不可能。例如,在旧内核中不允许从中断上下文调用函数,但在新版本中可以调用。结帐的一些,一个可能适合你的情况

一般来说,我会进行更改,只对需要的更改进行回接。您可以使用
git-format-patch-verA..verB-file
获取单个文件的补丁,然后使用
git-am
应用它们。应用10-20然后进行构建/回归测试是非常简单的。当你不得不扔掉补丁时,合并后面的补丁会变得越来越困难

我还想知道在哪里可以找到mtd代码从2.6.10到3.11.1的更改日志(我找不到它,这些文件中的修订历史也不会因更改而更新)


只需转到该目录并使用git日志即可——遵循操作。;在文件移动的情况下,需要使用
--follow
选项;至少我认为这会奏效。如果没有,您可以使用git在移动前使用*SHA_ID~1*签出版本,并使用分离的头获取移动前的历史记录。

gitk drivers/mtd/*将给出影响其中任何文件/目录的提交,您可以浏览所有这些差异。但是,这不会显示驱动程序/mtd/*之外的文件/diff。我怀疑最后的结论是,你无法获得你想要的全面升级。gitk drivers/mtd/*将给出影响到其中任何文件/目录的提交,你可以浏览所有这些差异。但是,这不会显示驱动程序/mtd/*之外的文件/diff。我怀疑