我决定研究一下Intel ISH到底是个什么东西。
Intel Sensor Hub (ISH)
看名字就是和传感器有关。
ISH到底在那里
从windows设备管理器可以看见他们是在Sensors栏目下(并不是我的电脑,网上截图)
ISH in PCH
找到Intel 300系列PCH文档,里面有ISH模块。 也就是说ISH就在PCH芯片中 www.intel.com/content/dam…
下面这段文字道出了ISH的本质,是个MCU微处理器,集成在PCH中,它有自己的固件,有自己的boot ROM
ISH核心
所以你把ISH的核心理解为一个STM32也不为过。但是它到底是什么核心?目前还没查到材料
这个设计是很容易理解的。
如果用5GHz CPU只是去轮询一个加速度传感器,这就是浪费能源。所以添加一个小协处理器,来轮询外接传感器的状态,然后再按需上报给CPU,这才是合理的设计。
节能环保
ISH外部接口
你看到ISH对外的接口是I2C, UART, SPI, GPIO,不奇怪吧,STM32该有的都有
网上找到这幅图,再次验证,ISH和PCH的包含关系。并且图例中用到了I2C外部接口,连接接近传感器和环境光传感器
图片来自 cdn.wccftech.com/wp-content/…
Dell笔记本的自由落地传感器
www.laptop-schematics.com/view/11743/
可以看见I2C连接,这个连接的左边,应该就是ISH
外星人笔记本加速度传感器
也可以看见I2C连接
图片来自www.laptop-schematics.com/userfiles/s…
挖的更深
elixir.bootlin.com/linux/lates…
有免费的代码看,干嘛要瞎猜
这个Linux内核配置菜单,说明了ISH是依赖于PCI总线的
这点也可以在Linux内核配置菜单依赖关系中看到
www.kernelconfig.io/config_inte…
ISH的PCI驱动
代码在这里
elixir.bootlin.com/linux/lates…
ISH驱动程序的操作
elixir.bootlin.com/linux/lates…
这些_SET_还有_CLEAR_就是典型的真正的寄存器操作了
启动ISH里的微内核
这是典型的一个CPU叫醒另外一个CPU(MCU)的代码。