ThinkPad X201 と 8GB SODIMM の関係

まあ、そもそも i5-560M のスペックに Max Memory Size が 8GB とか書かれてる時点で使えるとは思っていないんですけど…。
実際にメモリに触りにいったらフリーズ、もしくはリセットするってのは、メモリコントローラに設定するパラメータが正しく設定されていないんだろうか。BIOS でメモリコントローラに設定する値が間違っているのか、そもそも設定する値が無いのか…。

MCHBAR の設定

とりあえず MCHBAR(手元の環境では 0xfed10000) の C0DRA01(+208h) と C1DRA01(+608h) を見てみる。

8GB (4GBx2) の場合
fed10200: 00800040 00800080 00008888 00000000
fed10600: 00800040 00800080 00008888 00000000
16GB (8GBx2) の場合
fed10200: 00800040 00800080 00008a8a 00000000
fed10600: 00800040 00800080 00008a8a 00000000

88 とか 8a が設定値で、値の内容は以下の通り。

cfg Tech Depth in rows Device Width Row Bits Column Bits Bank Bits Capacity Size
88h 2Gb 256M 8 15 10 3 2GB 8KB
89h 2Gb 128M 16 14 10 3 1GB 9KB
8ah Reserved
8bh 4Gb 256M 16 15 10 3 2GB 8KB


おーい、8GB SODIMM 差した時の 8a って何だよ。Reserved じゃねーか。
89h と 8bh から推測すると設定値としてはこんな感じなのかな。

cfg Tech Depth in rows Device Width Row Bits Column Bits Bank Bits Capacity Size
8ah 4Gb 512M 8 16 10 3 4GB 8KB

手元の UMAX Castor DCSoD3-16GB-1333 はチップの素性が不明なので、この設定値が正しいのか判らんね。
これ以上時間をかけるのも何なのでここで終了。

結論:16GB メモリをサポートしてる機種買えよ

解析は NetBSD/i386ブートローダパッチあてて調査しました。ブートローダにはこれ位の機能はそもそも備えておいて欲しいよねw
32bit OS ならというか 上位アドレス(8GB?)を触らなきゃ問題無いような気がするんでパラメータなのかねー。いや、知らんけど。