Unmask second disk controller's IRQ
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				continuous-integration/drone/push Build is passing
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	continuous-integration/drone/push Build is passing
				
			Signed-off-by: Julien CLEMENT <julien.clement@epita.fr>
This commit is contained in:
		
							parent
							
								
									8e0fbfe263
								
							
						
					
					
						commit
						b60ec92388
					
				@ -106,10 +106,7 @@ impl ATABus {
 | 
			
		||||
    fn discover_atapi_drive() -> Option<Self> {
 | 
			
		||||
        let mut primary_bus = ATABus::new(ATA_BUS_PRIMARY);
 | 
			
		||||
 | 
			
		||||
        unsafe {
 | 
			
		||||
            primary_bus.dcr.write(ATA_SRST);
 | 
			
		||||
            primary_bus.dcr.write(0);
 | 
			
		||||
        }
 | 
			
		||||
        primary_bus.software_reset();
 | 
			
		||||
 | 
			
		||||
        primary_bus.select_drive(ATA_DRIVE_MASTER);
 | 
			
		||||
        if primary_bus.is_atapi() {
 | 
			
		||||
@ -123,10 +120,7 @@ impl ATABus {
 | 
			
		||||
 | 
			
		||||
        let mut secondary_bus = ATABus::new(ATA_BUS_SECONDARY);
 | 
			
		||||
 | 
			
		||||
        unsafe {
 | 
			
		||||
            secondary_bus.dcr.write(ATA_SRST);
 | 
			
		||||
            primary_bus.dcr.write(0);
 | 
			
		||||
        }
 | 
			
		||||
        secondary_bus.software_reset();
 | 
			
		||||
 | 
			
		||||
        secondary_bus.select_drive(ATA_DRIVE_MASTER);
 | 
			
		||||
        if secondary_bus.is_atapi() {
 | 
			
		||||
@ -140,6 +134,13 @@ impl ATABus {
 | 
			
		||||
        None
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fn software_reset(&mut self) {
 | 
			
		||||
        unsafe {
 | 
			
		||||
            self.dcr.write(ATA_SRST);
 | 
			
		||||
            self.dcr.write(0);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fn new(port: u16) -> Self {
 | 
			
		||||
        ATABus {
 | 
			
		||||
            base_port: port,
 | 
			
		||||
 | 
			
		||||
@ -21,4 +21,4 @@ pub extern "x86-interrupt" fn disk2_interrupt_handler(_stack_frame: InterruptSta
 | 
			
		||||
        PICS.lock()
 | 
			
		||||
            .notify_end_of_interrupt(InterruptIndex::HardDisk2.as_u8());
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -35,5 +35,8 @@ pub static PICS: spin::Mutex<ChainedPics> =
 | 
			
		||||
 | 
			
		||||
pub fn init_pic() {
 | 
			
		||||
    println!("Initializing PIC");
 | 
			
		||||
    unsafe { PICS.lock().initialize() };
 | 
			
		||||
    unsafe { 
 | 
			
		||||
        PICS.lock().initialize();
 | 
			
		||||
        PICS.lock().write_masks(0b10111000, 0b00001110);
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user