0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

mx25lを直した

Last updated at Posted at 2024-02-03

WHR-300HP2N(MT7620A)が二台あり片方がremoteでのupdateに失敗します。コンソールを見てみたところflashの書き込みが上手くいっていないです。

dtsのFlashの最後のほうに1Mのpartitionを作ってカーネルをビルドしてイメージを作り焼いてテストしてみます。

dd if=/dev/random of=/tmp/abc bs=1m count=1
dd if=/dev/abc of=/dev/flash/spi0s.test obs=64k conv=osync
md5 /tmp/abc /dev/flash/spi0s.test

やはりハッシュ値が異なります。

コードはsys/dev/flash/mx25l.cです。

上手くいくほうはs25fl064で、失敗するほうがw25q64でした。

このモデルでは以前上手くいっていた様な記憶があり、NYC*BUG dmesgdをながめていてFlashが違うことにきがつきました。

コードを見るとw25q64にはFL_ERASE_4Kが指定されています。

どうもFL_ERASE_4Kが正常に動いていないようなので、FL_NONEにしてみたところ問題が解消しました。

そもそもSPI Flash的には64Kがデフォルトで4KはオプションなのでFreeBSDでは4Kのサポートは必要ないと思います。

FL_ERASE_4Kのフラグはかなり前からあって、それを有効にしたのが以下の修正のようです。ちゃんとテストしたのかはなはだ疑問です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?