Fix hardware checksum offloading
Back to using flags for UART, semaphore kept dropping stuff