Para entender o processo de enumeração de dispositivo SATA eu estava estudando o driver / ata / ata_piix.c que está mostrando como driver de host SATA para o meu sistema na saída do comando lspci
.
00:1f.2 IDE interface: Intel Corporation NM10/ICH7 Family SATA Controller [IDE mode] (rev 01)
Subsystem: Elitegroup Computer Systems Device 2672
Kernel driver in use: ata_piix
Kernel modules: pata_acpi
O AFAIK, controlador de host SATA é um dispositivo PCI conectado ao barramento PCI. Agora, quando o método de teste de ata_piix.c for executado, ele inicializará o controlador Host e muitas outras sequências de inicialização serão feitas na chamada do probe. No final do método de teste abaixo, execute:
/* perform each probe asynchronously */
for (i = 0; i < host->n_ports; i++) {
struct ata_port *ap = host->ports[i];
async_schedule(async_port_probe, ap);
}
Então, de acordo com minha compreensão, a chamada para aync_schedule()
chamará o método de sondagem dos dispositivos SATA conectados às portas HOST uma a uma. Abaixo estão algumas das minhas consultas
aync_schedule()
funciona? ata_piix.c
foi usado como driver de kernel para o controlador SATA, por que o módulo Kernel usado para o dispositivo está sendo exibido como
pata_acpi
na saída do comando lspci
? Tags drivers sata scsi linux-kernel