On Fri, 2008-11-14 at 01:42 +0800, H. Peter Anvin wrote: > Zhao Yakui wrote: > > I am sorry that I don't describe it very clearly. The value written into > > 0xCF9 I/O port maybe vary on different chipset vendors. In such case it > > is difficult to write the generic 0xCF9 reboot mechanism. If the same > > standard about 0xCF9 I/O port is followed by most chipset vendors, it > > will be OK. > > What my patch does is: > > u8 cf9 = inb(0xcf9) & ~6; > outb(cf9|2, 0xcf9); /* Request hard reset */ > udelay(50); > outb(cf9|6, 0xcf9); /* Actually do the reset */ > udelay(50); > > > I have a laptop on which the ACPI reboot mechanism is not supported.(The > > reset flag is not present). But there exists the definition of RESET_REG > > & RESET_VALUE. The RESET_REG is 0xCF9 I/O port. (The box is based on > > Intel i915 chipsets) > > When writing 0x06 to 0xCF9 I/O port the box will hang and can't be > > rebooted. (Hardware reset will fail) > > When writing 0x04 to 0xCF9 I/O port the box can be > > rebooted.(Software reset is OK) I do the test as required. First the 0x02 is written to 0xCF9 I/O port. The return value by reading the 0xCF9 I/O port is 0x02. Then the 0x06 is written to the 0xCF9 I/O port. The screen becomes black but the box can't be rebooted. > What happens if you write 0x02 first, and *then* write 0x06? > > More details about this laptop, please? Also, what is RESET_REG and > RESET_VALUE defined as? The RESET_REG is 0xCF9 I/O port. The RESET_VALUE is 0x06. The above value is obtained from the FADT. This laptop is the Thinkpad R52 based on Intel i915 chipset. Thanks. > > -hpa -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html