SlideShare a Scribd company logo
1 of 19
Yet another Intel Chipset Internal
SMBus device’s driver: ismt(4)
(と spdmem(4))
msaitoh@netbsd.org
サーバ、ストレージ向け SoC
• S1200
– Atom ベースのサーバ用で初の SoC
• C2000
– 1G MAC x4 内蔵
• (Xeon-D)
– 10G MAC x2 内蔵
S1200 & C2000
• S1200
– Codename: Centerton
– サーバ用途、ストレージ用途を想定
– 6.1 - 14.1W
– Release: Q4’12
– 不遇の SoC
• C2000
– Codename: Avoton, Rangeley
– サーバ用途、ストレージ用途を想定
– 6 – 20 W
– Relase: Q3’13
– おおはやり
S1200
• 実際にこれを使った製品がほとんどない・・・
– SuperMicro X9SBAA(-F)
– 一部のNAS
• シリアルポートが puc(4) である
– puc をシリアルコンソールにする問題
– X9SBAA(-F) は別途 super IO がいてそこにも com ポー
トがある。
• ichsmb(4) および LPC bridge 内蔵の SMBus とは
違う SMBus がいる
C2000
• Codename:
– Avoton: for Storage
• Turbo Boost がある。
– Rangeley: for Network
• Turbo Boost はない
• オプションで Quick Assist がある(ハードウェア暗号化エンジ
ン)
• シリアルは LPC の先
• SMBus は S1200 で追加されたものも入っている
そもそもなんでこういう違いがあるか
• 組み込みを想定。軽くしたい
– PCIe 経由して LPC の先の ISA bus とか無駄だろw
• CPU cycle 数的に
• 時間的に
• 電力的に
– I2C, SMBus アクセスを軽くしたい
• Enclosure センサーとかを実際に使うことを想定
• データの読み書きは小さくても、実際に完了するまで
に時間がかかる
見えねぇ
• SuperMicro X9SBAA-F に挿した DDR3
SODIMM の SPD memory が読めない
– ichsmb(4) の先にはいない
– LPC の先にもいない(と思われる)
• SuperMicro A1SRi-2758F の ismt(4) に何か繋
がっているかもしれない
– SPD ROM は ichsmb(4) の先に存在する
– 何かセンサーがあるなら見たい!
• SPD ROM の中身を見てニヤニヤするオタク
spdmem(4)
ichsmb0 at pci0 dev 31 function 4: vendor 8086 product a123 (rev.
0x31)
ichsmb0: interrupting at ioapic0 pin 16
iic0 at ichsmb0: I2C bus
spdmem0 at iic0 addr 0x51: M378A1G43DB0-CPB
spdmem0: DDR4 SDRAM (DDR4 UDIMM), no temp-sensor, 0.938ns
cycle time (1066MHz), 8GB, 2132MHz (PC4-4300)
spdmem0: 12 rows, 13 cols, 4 banks, 4 bank groups
spdmem0: tAA-tRCD-tRP-tRAS: 15-15-15-36
DDR4 の場合の例
ismt(4)
• ichsmb(4) とはプログラミングインターフェース
が全く違う
• ディスクリプタリング+DMA
– ディスクリプタに書いて実行
– 結果はディスクリプタの先
• FreeBSD と Linux にはドライバがある
– 作者は Intel の人
FreeBSD -> NetBSD への移植
• 移植は基本的に機械的作業
– ドライバのデータ構造(いわゆる softc)の調整
– DMA 関連の API の調整
– 割り込み回りの調整
サクッと割り込み来たぜー
なんか、いつも見てるアドレスと違うような・・・
わからん!
• データシート見てもわからない
• 困ったときは Linux のソース
そして・・・
キター
dmesg
ismt0 at pci0 dev 19 function 0: vendor 8086 product 0c59 (rev. 0x01)
ismt0: interrupting at msi2 vec 0
iic0 at ismt0: I2C bus
spdmem0 at iic0 addr 0x50: SMD-N8G28ECAP-16KL
spdmem0: DDR3 SDRAM, ECC, temp-sensor, 8GB, 1600MHz (PC3-12800)
spdmem0: 13 rows, 13 cols, 8 log. banks, 2 phys. banks, 1.250ns cycle time
spdmem0: tAA-tRCD-tRP-tRAS: 10-10-10-28
spdmem0: 1.5V 1.35V operable
spdmem0: 0x00: 92 12 0b 08 04 21 02 09 0b 52 01 08 0a 00 fe 00
spdmem0: 0x10: 69 78 69 30 69 11 18 81 20 08 3c 3c 00 f0 83 01
spdmem0: 0x20: 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
spdmem0: 0x30: 00 00 00 00 00 00 00 00 00 00 00 00 0f 11 03 00
spdmem0: 0x40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
spdmem0: 0x50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
spdmem0: 0x60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
spdmem0: 0x70: 00 00 00 00 00 86 e9 00 00 00 00 00 00 00 8f f5
spdmem0: 0x80: 53 4d 44 2d 4e 38 47 32 38 45 43 41 50 2d 31 36
spdmem0: 0x90: 4b 4c 00 00 00 00 00 00 00 00 00 00 00 00 00 00
spdmem0: 0xa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 verbose出力
diff
--- ismt.c 2014-07-03 13:03:04.000000000 +0900
+++ ismt.c.new 2016-01-05 02:19:27.000000000 +0900
@@ -72,7 +72,7 @@
#define ISMT_DESC_LPR 0x80 /* Large Packet Received */
/* Macros */
-#define ISMT_DESC_ADDR_RW(addr, is_read) ((addr) | (is_read))
+#define ISMT_DESC_ADDR_RW(addr, is_read) ((addr << 1) | (is_read))
/* iSMT General Register address offsets (SMBBAR + <addr>) */
#define ISMT_GR_GCTRL 0x000 /* General Control */
ちょ
• てか、FreeBSD はどうやって動作確認したん
だよ・・・
• Linux のドライバと FreeBSD のドライバは基本
同じで、しかも FreeBSD のほうが後なんです
けど。Linux は最初っから正しいんですけ
ど・・・。
マージされました(^-^)
Q
• FreeBSD の i2C (SMBus) 系のドライバ一覧と
かはどこかにあるの?
– NetBSD と OpenBSD は sys/dev/i2c の下を見れば
わかる

More Related Content

What's hot

Trema day 1
Trema day 1Trema day 1
Trema day 1ykuga
 
RHEL on Azure、初めの一歩
RHEL on Azure、初めの一歩RHEL on Azure、初めの一歩
RHEL on Azure、初めの一歩Ryo Fujita
 
あなたの知らないnopたち@ラボユース合宿
あなたの知らないnopたち@ラボユース合宿あなたの知らないnopたち@ラボユース合宿
あなたの知らないnopたち@ラボユース合宿MITSUNARI Shigeo
 
BLS署名の実装とその応用
BLS署名の実装とその応用BLS署名の実装とその応用
BLS署名の実装とその応用MITSUNARI Shigeo
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方歩 柴田
 
0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきことmao999
 
Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Sho Shimizu
 
20分でわかった事にするパワーマネジメント
20分でわかった事にするパワーマネジメント20分でわかった事にするパワーマネジメント
20分でわかった事にするパワーマネジメントmagoroku Yamamoto
 
10分で分かるデータストレージ
10分で分かるデータストレージ10分で分かるデータストレージ
10分で分かるデータストレージTakashi Hoshino
 
仮想記憶入門 BSD-4.3を例題に
仮想記憶入門 BSD-4.3を例題に仮想記憶入門 BSD-4.3を例題に
仮想記憶入門 BSD-4.3を例題にmagoroku Yamamoto
 
Redisととあるシステム
RedisととあるシステムRedisととあるシステム
RedisととあるシステムTakehiro Torigaki
 
Spectre/Meltdownとその派生
Spectre/Meltdownとその派生Spectre/Meltdownとその派生
Spectre/Meltdownとその派生MITSUNARI Shigeo
 
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤTakashi Hoshino
 
Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化Yusuke Fujimoto
 

What's hot (20)

Trema day 1
Trema day 1Trema day 1
Trema day 1
 
RHEL on Azure、初めの一歩
RHEL on Azure、初めの一歩RHEL on Azure、初めの一歩
RHEL on Azure、初めの一歩
 
Ras piでrt linux
Ras piでrt linuxRas piでrt linux
Ras piでrt linux
 
あなたの知らないnopたち@ラボユース合宿
あなたの知らないnopたち@ラボユース合宿あなたの知らないnopたち@ラボユース合宿
あなたの知らないnopたち@ラボユース合宿
 
slide2
slide2slide2
slide2
 
BLS署名の実装とその応用
BLS署名の実装とその応用BLS署名の実装とその応用
BLS署名の実装とその応用
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
 
0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと
 
Redis速習会@Wantedly
Redis速習会@WantedlyRedis速習会@Wantedly
Redis速習会@Wantedly
 
Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像
 
Kernel ext4
Kernel ext4Kernel ext4
Kernel ext4
 
20分でわかった事にするパワーマネジメント
20分でわかった事にするパワーマネジメント20分でわかった事にするパワーマネジメント
20分でわかった事にするパワーマネジメント
 
10分で分かるデータストレージ
10分で分かるデータストレージ10分で分かるデータストレージ
10分で分かるデータストレージ
 
仮想記憶入門 BSD-4.3を例題に
仮想記憶入門 BSD-4.3を例題に仮想記憶入門 BSD-4.3を例題に
仮想記憶入門 BSD-4.3を例題に
 
V6 unix in okinawa
V6 unix in okinawaV6 unix in okinawa
V6 unix in okinawa
 
Redisととあるシステム
RedisととあるシステムRedisととあるシステム
Redisととあるシステム
 
Spectre/Meltdownとその派生
Spectre/Meltdownとその派生Spectre/Meltdownとその派生
Spectre/Meltdownとその派生
 
Openstack+Ceph設定ガイド
Openstack+Ceph設定ガイドOpenstack+Ceph設定ガイド
Openstack+Ceph設定ガイド
 
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
 
Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化
 

Similar to Yet another Intel Chipset Internal SMBus device’s driver: ismt(4) (and spdmem(4))

Osc2012 tokyo fall_home_san_nayamaguti
Osc2012 tokyo fall_home_san_nayamagutiOsc2012 tokyo fall_home_san_nayamaguti
Osc2012 tokyo fall_home_san_nayamagutiNoriyuki Yamaguchi
 
A story of porting OpenBSD/luna88k
A story of porting OpenBSD/luna88kA story of porting OpenBSD/luna88k
A story of porting OpenBSD/luna88kKenji Aoyama
 
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)Kazuyuki Sato
 
CUDAプログラミング入門
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門NVIDIA Japan
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)Takeshi Yamamuro
 
あるRISC-V CPUの 浮動小数点数(異常なし)
あるRISC-V CPUの 浮動小数点数(異常なし)あるRISC-V CPUの 浮動小数点数(異常なし)
あるRISC-V CPUの 浮動小数点数(異常なし)たけおか しょうぞう
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストールYasuhiro Arai
 
SDN Japan: ovs-hw
SDN Japan: ovs-hwSDN Japan: ovs-hw
SDN Japan: ovs-hwykuga
 
NetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry PiNetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry Pitokudahiroshi
 
OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)Satoshi Shimazaki
 
Bird in show_net
Bird in show_netBird in show_net
Bird in show_netTomoya Hibi
 
INF-002_Azure IaaS 最新動向
INF-002_Azure IaaS 最新動向INF-002_Azure IaaS 最新動向
INF-002_Azure IaaS 最新動向decode2016
 
An Intelligent Storage?
An Intelligent Storage?An Intelligent Storage?
An Intelligent Storage?Kohei KaiGai
 
GPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみたGPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみたRyo Sakamoto
 
[data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎
[data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎[data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎
[data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎Insight Technology, Inc.
 

Similar to Yet another Intel Chipset Internal SMBus device’s driver: ismt(4) (and spdmem(4)) (20)

osoljp 2011.08
osoljp 2011.08osoljp 2011.08
osoljp 2011.08
 
Osc2012 tokyo fall_home_san_nayamaguti
Osc2012 tokyo fall_home_san_nayamagutiOsc2012 tokyo fall_home_san_nayamaguti
Osc2012 tokyo fall_home_san_nayamaguti
 
A story of porting OpenBSD/luna88k
A story of porting OpenBSD/luna88kA story of porting OpenBSD/luna88k
A story of porting OpenBSD/luna88k
 
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
 
CUDAプログラミング入門
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
 
あるRISC-V CPUの 浮動小数点数(異常なし)
あるRISC-V CPUの 浮動小数点数(異常なし)あるRISC-V CPUの 浮動小数点数(異常なし)
あるRISC-V CPUの 浮動小数点数(異常なし)
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
 
SDN Japan: ovs-hw
SDN Japan: ovs-hwSDN Japan: ovs-hw
SDN Japan: ovs-hw
 
NetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry PiNetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry Pi
 
OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)
 
retrobsd-2012-JUL-07 at JNUG BSD BoF
retrobsd-2012-JUL-07 at JNUG BSD BoFretrobsd-2012-JUL-07 at JNUG BSD BoF
retrobsd-2012-JUL-07 at JNUG BSD BoF
 
Bird in show_net
Bird in show_netBird in show_net
Bird in show_net
 
InfiniBand on Debian
InfiniBand on DebianInfiniBand on Debian
InfiniBand on Debian
 
WalBの紹介
WalBの紹介WalBの紹介
WalBの紹介
 
INF-002_Azure IaaS 最新動向
INF-002_Azure IaaS 最新動向INF-002_Azure IaaS 最新動向
INF-002_Azure IaaS 最新動向
 
An Intelligent Storage?
An Intelligent Storage?An Intelligent Storage?
An Intelligent Storage?
 
GPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみたGPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみた
 
Code jp2015 cpuの話
Code jp2015 cpuの話Code jp2015 cpuの話
Code jp2015 cpuの話
 
[data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎
[data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎[data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎
[data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎
 

Yet another Intel Chipset Internal SMBus device’s driver: ismt(4) (and spdmem(4))

  • 1. Yet another Intel Chipset Internal SMBus device’s driver: ismt(4) (と spdmem(4)) msaitoh@netbsd.org
  • 2. サーバ、ストレージ向け SoC • S1200 – Atom ベースのサーバ用で初の SoC • C2000 – 1G MAC x4 内蔵 • (Xeon-D) – 10G MAC x2 内蔵
  • 3. S1200 & C2000 • S1200 – Codename: Centerton – サーバ用途、ストレージ用途を想定 – 6.1 - 14.1W – Release: Q4’12 – 不遇の SoC • C2000 – Codename: Avoton, Rangeley – サーバ用途、ストレージ用途を想定 – 6 – 20 W – Relase: Q3’13 – おおはやり
  • 4. S1200 • 実際にこれを使った製品がほとんどない・・・ – SuperMicro X9SBAA(-F) – 一部のNAS • シリアルポートが puc(4) である – puc をシリアルコンソールにする問題 – X9SBAA(-F) は別途 super IO がいてそこにも com ポー トがある。 • ichsmb(4) および LPC bridge 内蔵の SMBus とは 違う SMBus がいる
  • 5. C2000 • Codename: – Avoton: for Storage • Turbo Boost がある。 – Rangeley: for Network • Turbo Boost はない • オプションで Quick Assist がある(ハードウェア暗号化エンジ ン) • シリアルは LPC の先 • SMBus は S1200 で追加されたものも入っている
  • 6. そもそもなんでこういう違いがあるか • 組み込みを想定。軽くしたい – PCIe 経由して LPC の先の ISA bus とか無駄だろw • CPU cycle 数的に • 時間的に • 電力的に – I2C, SMBus アクセスを軽くしたい • Enclosure センサーとかを実際に使うことを想定 • データの読み書きは小さくても、実際に完了するまで に時間がかかる
  • 7. 見えねぇ • SuperMicro X9SBAA-F に挿した DDR3 SODIMM の SPD memory が読めない – ichsmb(4) の先にはいない – LPC の先にもいない(と思われる) • SuperMicro A1SRi-2758F の ismt(4) に何か繋 がっているかもしれない – SPD ROM は ichsmb(4) の先に存在する – 何かセンサーがあるなら見たい! • SPD ROM の中身を見てニヤニヤするオタク
  • 8. spdmem(4) ichsmb0 at pci0 dev 31 function 4: vendor 8086 product a123 (rev. 0x31) ichsmb0: interrupting at ioapic0 pin 16 iic0 at ichsmb0: I2C bus spdmem0 at iic0 addr 0x51: M378A1G43DB0-CPB spdmem0: DDR4 SDRAM (DDR4 UDIMM), no temp-sensor, 0.938ns cycle time (1066MHz), 8GB, 2132MHz (PC4-4300) spdmem0: 12 rows, 13 cols, 4 banks, 4 bank groups spdmem0: tAA-tRCD-tRP-tRAS: 15-15-15-36 DDR4 の場合の例
  • 9. ismt(4) • ichsmb(4) とはプログラミングインターフェース が全く違う • ディスクリプタリング+DMA – ディスクリプタに書いて実行 – 結果はディスクリプタの先 • FreeBSD と Linux にはドライバがある – 作者は Intel の人
  • 10. FreeBSD -> NetBSD への移植 • 移植は基本的に機械的作業 – ドライバのデータ構造(いわゆる softc)の調整 – DMA 関連の API の調整 – 割り込み回りの調整
  • 15. dmesg ismt0 at pci0 dev 19 function 0: vendor 8086 product 0c59 (rev. 0x01) ismt0: interrupting at msi2 vec 0 iic0 at ismt0: I2C bus spdmem0 at iic0 addr 0x50: SMD-N8G28ECAP-16KL spdmem0: DDR3 SDRAM, ECC, temp-sensor, 8GB, 1600MHz (PC3-12800) spdmem0: 13 rows, 13 cols, 8 log. banks, 2 phys. banks, 1.250ns cycle time spdmem0: tAA-tRCD-tRP-tRAS: 10-10-10-28 spdmem0: 1.5V 1.35V operable spdmem0: 0x00: 92 12 0b 08 04 21 02 09 0b 52 01 08 0a 00 fe 00 spdmem0: 0x10: 69 78 69 30 69 11 18 81 20 08 3c 3c 00 f0 83 01 spdmem0: 0x20: 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 spdmem0: 0x30: 00 00 00 00 00 00 00 00 00 00 00 00 0f 11 03 00 spdmem0: 0x40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 spdmem0: 0x50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 spdmem0: 0x60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 spdmem0: 0x70: 00 00 00 00 00 86 e9 00 00 00 00 00 00 00 8f f5 spdmem0: 0x80: 53 4d 44 2d 4e 38 47 32 38 45 43 41 50 2d 31 36 spdmem0: 0x90: 4b 4c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 spdmem0: 0xa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 verbose出力
  • 16. diff --- ismt.c 2014-07-03 13:03:04.000000000 +0900 +++ ismt.c.new 2016-01-05 02:19:27.000000000 +0900 @@ -72,7 +72,7 @@ #define ISMT_DESC_LPR 0x80 /* Large Packet Received */ /* Macros */ -#define ISMT_DESC_ADDR_RW(addr, is_read) ((addr) | (is_read)) +#define ISMT_DESC_ADDR_RW(addr, is_read) ((addr << 1) | (is_read)) /* iSMT General Register address offsets (SMBBAR + <addr>) */ #define ISMT_GR_GCTRL 0x000 /* General Control */
  • 17. ちょ • てか、FreeBSD はどうやって動作確認したん だよ・・・ • Linux のドライバと FreeBSD のドライバは基本 同じで、しかも FreeBSD のほうが後なんです けど。Linux は最初っから正しいんですけ ど・・・。
  • 19. Q • FreeBSD の i2C (SMBus) 系のドライバ一覧と かはどこかにあるの? – NetBSD と OpenBSD は sys/dev/i2c の下を見れば わかる