方案 A(帧缓冲映射): - 去掉帧缓冲的 PTE_PCD,改为回写映射。原先非缓存映射下每次写屏直通设备,大块刷新极慢; QEMU 下回写显示正确(TCG 不模拟缓存不一致),真机严格正确应改 write-combining(PAT), 已在代码注释里写明。 - 说明:“只刷脏行”本已是现状(_mark_rows_dirty 按区域标脏,全屏刷仅启动那一次)。 方案 C(鼠标驱动加固,drivers/input/mouse/mouse.vp): - irq_handler 丢弃带 X/Y overflow 位(bit6/bit7)的包:此时设备给的是饱和值,直接采用 会产生 ±127 级跳变,表现为光标“飞”。 - init 中在 0xF6(Set Defaults) 之后用 0xE8/0x03 把分辨率设为 8 counts/mm,避免默认最粗的 4 counts/mm 造成每计数位移偏大。