SL-C700/B500 special kernel

(2003/7/24-2003/9/4)

変更履歴

無責任

本カーネルの使用により、あなたのZaurusがレンガになったりしても、私は 何も補償できませんのであしからず。

何だろう

SL-C750/C760のカーネルをちょっといじってSL-C700/B500で動くかもしれない ようにしたものです。メモリ不足にならないようにswap(16M〜32M)を用意して、 そーっと使うのがコツのようです。

カーネルの入れ換え手順

(1) SHARPのサイトからアップデータをもらってくる。1.50JPのアップデータでも動きます。 (2) 上記を展開して出てくる4つのファイルのうち、zImage.binを下記のもの に置き換える(ファイル名はzImage.binにしてください)。いくつかあるものは 上のほうがお勧め。バージョンとお勧めが逆転しているものもあります(新し くても良いとは限らない)。 (3) 後は(1)のアップデータの手順通り。

復旧手順

何か問題があった場合は、アップデータに入っているカーネルを使ってアッ プデートをやり直して下さい。

技術情報

ソース

linux-c750-20030620-rom1_10.tar.bz2を元にビルドしました。

動作周波数

               CCCR    L   M   N
C700(Normal)  0x0241  27   2   2
C750          0x0161  27   4   1

              0x0242  32   2   2

Crystal Frequency = 3.6864MHz
Memory Frequency = Crystal Frequency * L
Run Mode Frequency = Memory Frequency * M
Turbo Mode Frequency = Run Mode Frequency * N
PXbus Frequency = Run Mode Frequency / 2

Memory Frequency(100MHz)を基準に考えると、
C700(Normal)はRun modeは2倍速(200MHz)でTurbo modeは4倍速(400MHz)。
C750はRun modeもTurbo modeも4倍速(400MHz)。
Run mode周波数を高くするとPXバスも速くなる(Run mode周波数の半分)。

周波数確認

周波数の確認は、ターミナル(コンソール)にて
# /sbin/modprobe registers
# cat /proc/cpu/registers/CCCR
として行なう。modprobeはroot権限で一度だけ実行すればよい。

周波数切替え(ぴろさんのパッチ適用版のみ)

C700の場合はぴろさんの書いている通り。
B500の場合は、Power以外のキー+Powerで立ち上がってしまうが、実は切り替わっている。

カーネルコンフィグレーション

C700(Normal)  CONFIG_XSCALE_CACHE_ERRATA=y, CONFIG_ARM_FCSE=n
C750          CONFIG_XSCALE_CACHE_ERRATA=n, CONFIG_ARM_FCSE=y

CONFIG_XSCALE_CACHE_ERRATAはPXA250のライトバックキャッシュバグの対処。
CONFIG_ARM_FCSEはコンテクストスイッチの高速化(新規追加)。

SL-C700/B500共通

以下のようにソースを修正しています。

SL-C700用

SL-C750/C760のカーネルソースには、shepherd-jという名前でSL-C750用の configが含まれており、このファイルを使ってビルドしています。

SL-B500用

SL-C750/C700のカーネルソースには、poodle-jという名前でSL-B500用の configが含まれています。このファイルを元に、以下の2点を修正していま す。
# CONFIG_XSCALE_CACHE_ERRATA is not set
CONFIG_ARM_FCSE=y

Mail: webmaster@tetsu.homelinux.org