update device_io_main and uart_main to use supervisor calls