diff --git a/src/arch/x86_shared/device/serial.rs b/src/arch/x86_shared/device/serial.rs index fd2c2d1631..64e074f09d 100644 --- a/src/arch/x86_shared/device/serial.rs +++ b/src/arch/x86_shared/device/serial.rs @@ -6,19 +6,19 @@ use crate::{ }; use spin::Mutex; -pub static COM1: Mutex> = Mutex::new(Some(SerialKind::Ns16550Pio( - SerialPort::>::new(0x3F8), -))); -pub static COM2: Mutex> = Mutex::new(Some(SerialKind::Ns16550Pio( - SerialPort::>::new(0x2F8), -))); +pub static COM1: Mutex> = Mutex::new(None); +pub static COM2: Mutex> = Mutex::new(None); #[cfg(feature = "lpss_debug")] pub static LPSS: Mutex> = Mutex::new(None); pub unsafe fn init() { - SerialPort::>::new(0x3F8).init(); - SerialPort::>::new(0x2F8).init(); + let mut com1 = SerialPort::>::new(0x3F8); + com1.init(); + *COM1.lock() = Some(SerialKind::Ns16550Pio(com1)); + let mut com2 = SerialPort::>::new(0x2F8); + com2.init(); + *COM2.lock() = Some(SerialKind::Ns16550Pio(com2)); #[cfg(feature = "lpss_debug")] {