Intel ISH

1,288 阅读2分钟

我决定研究一下Intel ISH到底是个什么东西。

Intel Sensor Hub (ISH)

看名字就是和传感器有关。

ISH到底在那里

从windows设备管理器可以看见他们是在Sensors栏目下(并不是我的电脑,网上截图)

dev-mgr-sensors.png

ISH in PCH

找到Intel 300系列PCH文档,里面有ISH模块。 也就是说ISH就在PCH芯片中 www.intel.com/content/dam…

下面这段文字道出了ISH的本质,是个MCU微处理器,集成在PCH中,它有自己的固件,有自己的boot ROM

image.png

ISH核心

所以你把ISH的核心理解为一个STM32也不为过。但是它到底是什么核心?目前还没查到材料

这个设计是很容易理解的。

如果用5GHz CPU只是去轮询一个加速度传感器,这就是浪费能源。所以添加一个小协处理器,来轮询外接传感器的状态,然后再按需上报给CPU,这才是合理的设计。

节能环保

ISH外部接口

你看到ISH对外的接口是I2C, UART, SPI, GPIO,不奇怪吧,STM32该有的都有

image.png

网上找到这幅图,再次验证,ISH和PCH的包含关系。并且图例中用到了I2C外部接口,连接接近传感器和环境光传感器

image.png

图片来自 cdn.wccftech.com/wp-content/…

Dell笔记本的自由落地传感器

www.laptop-schematics.com/view/11743/

可以看见I2C连接,这个连接的左边,应该就是ISH

image.png

外星人笔记本加速度传感器

也可以看见I2C连接

image.png

图片来自www.laptop-schematics.com/userfiles/s…

挖的更深

elixir.bootlin.com/linux/lates…

有免费的代码看,干嘛要瞎猜

这个Linux内核配置菜单,说明了ISH是依赖于PCI总线的

Screen Shot 2022-07-28 at 08.29.06.png

这点也可以在Linux内核配置菜单依赖关系中看到

www.kernelconfig.io/config_inte…

ISH的PCI驱动

代码在这里

elixir.bootlin.com/linux/lates…

Screen Shot 2022-07-28 at 08.34.51.png

ISH驱动程序的操作

elixir.bootlin.com/linux/lates…

这些_SET_还有_CLEAR_就是典型的真正的寄存器操作了

Screen Shot 2022-07-28 at 08.38.18.png

启动ISH里的微内核

这是典型的一个CPU叫醒另外一个CPU(MCU)的代码。

Screen Shot 2022-07-28 at 08.40.04.png