Port80 is working now. Found bug is in LPC's early initialization code. You'd better separate enable_port80_on_lpc() into two independent functions and place LPC init into define-block(Haswell code is correct, but there is a mistake in Sandybridge, I suppose).