======================================================== 1、已经解决"每次按power键开机或者S4唤醒都会先闪一下然后常亮"; 2、已经添加客户要求,按下Menu 按键,EC 会发送 Shift+Win+F23快捷按键; 3、将EC 充电电流设定到2A;(关机状态下,机器开启了快充) 4、解决在BIOS SETUP 下,BIOS 保存信息后,Cold Reset 能够再次开机; 5、支持测试工具;(LID/LED 灯等控制); 6、键盘基本功能齐全; 7、能够单独接适配器成功开机; 8、解决了“无电池状态单接适配器闪两下红灯后,就变绿灯常亮”问题; 9、解决了“低电关机后接上适配器,充电指示灯为闪烁状态”; 10、确认了Fan1/Fan2 都能够自动控制,并获取到各自风扇转速; 11、检查了BAT1_RelativeStateOfChgL 写成BAT1_RelativeStateOfChg 的问题,确认在oem_main.c 文件里面是正常的; 12、检查了低电可以通过prochot 控制来管理整机功耗,从而降低低电突然关机的问题; 13、添加了LHH_HotKey_Ctrl_F24_MIC 函数,可以控制mic 功能; 14、检查了 reboot 模式下,可以清除 Emdoor_01D_xEC_Tubor_Flag 改动; //共性问题: MS 下面,需要发布Battery Qevent SCI ,从而可以确保机器掉电5%后,机器能够正常进入S5; 5.13.4 Checklist Item 20240817 检查了CW2217 电量计,冲淡完成之后,需要将xEC_Bt1State 设定为 0,从而告知系统停止充电改动; #ifdef EMDOOR_CW2217_GAUGE if(xEC_Charge_Full_Flag == 1) { xEC_Bt1State = 0; } #endif 2.12、EC 检测到OBF (6064 OBF满之后),需要发送60 Qevent SCI,告知BIOS 处理6064 通道信息; 核对了ITE项目当中,键盘失效问题;运行在毫秒级的运行监测函数里面 if (IS_MASK_SET(SystemFlag1, F_ACPI_MODE) && IS_MASK_SET(KBHISR, OBF)) { if(Emdoor_Check_OBF_Full_Count < 500) { Emdoor_Check_OBF_Full_Count ++; }else{ SCI_WriteBuffer(_SCIEVT_KEYBOARD_OBF); Emdoor_Check_OBF_Full_Count = 0; } }else{ Emdoor_Check_OBF_Full_Count = 0; } 2.18.1、在oem_keyboard.c 文件当中,移除多余代码; 2.18.2、在oem_led.c 文件当中,将IS_MASK_SET(OEM_ControlPOWER, BIT0) 内容已经修改为了SystemIsS0ix 改动。 2.18.3、添加了 power key EC测试接口20240817;在oem_power.c 文件中,添加如下代码,可以用于power key 回路测试; void TestTool_PowerButton(void) { if (IS_EC_PWRSW_UP()) { if(TestTool_PowerKey_Debounce0 >= 10) { e0_prefix_code(0x25, BREAK_EVENT); if(TestTool_LEDControl == 0) TestTool_PowerKeyControl = 0; } TestTool_PowerKey_Debounce0 = 0; }else{ if(TestTool_PowerKey_Debounce0 < 10) { TestTool_PowerKey_Debounce0++; }else if(TestTool_PowerKey_Debounce0 == 10) { e0_prefix_code(0x25, MAKE_EVENT); TestTool_PowerKey_Debounce0 = 12; } } } 16.2、在AlderLake/TigerLake/IceLake/RaptoerLake项目当中,需要在oem_led.c 文件当中,需要对GPF6 进行功能禁用改动,该PIN作为了 PECI 内容改动,但是在MetoerLake EC 当中,这段代码是不需要的。 17.1、下面的代码,需要添加到如下位置;不能够在lock/unlock 位置修改这个变量的值,可能会导致第二次开机不能够开启的现象; void GO_INIT_S0(void) { if (IS_MASK_SET(HOST_BIOS_REG1, F_ME_UNLOCK)) { /* Only one time trigger so clear it. */ CLEAR_MASK(HOST_BIOS_REG1, F_ME_UNLOCK); } } ========================================================