Linux 实用小代码,操作 CF9 寄存器来重启系统 published: 2021-02-28 updated: 2021-02-28 Linux 代码(原创) Intel 的 PCH 中有一个CF9的寄存器 我们可以通过在桥片上面的Reset Control Register (0xcf9)写入对应的值来做操作1 大概流程 使能对应的端口 请求reset 热重启(向 IO Port CF9 写 0x06) 冷重启(向 IO Port CF9 写 0x0E) 实际执行reset 2 参考代码如下12345678910111213141516/** This is a PCH CF9 Reset Control Register reset example.* Wrote by Sam Lee*/#include <stdio.h>#include <stdlib.h>#include <sys/io.h>int main(int argc, char *argv[]){ printf("## Samlee reset OS directly via CF9 \n"); ioperm(0xcf9, 1, 1); outb(0x02, 0xcf9); usleep(50); outb(0x06, 0xcf9); return 0; /* never arrive*/} 3 更多关于CF9 的信息,可以参考 Intel 的 PCH 的datasheet