projects
/
seabios.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ahci: ignore atapi devices which are not cdroms
[seabios.git]
/
src
/
ahci.c
diff --git
a/src/ahci.c
b/src/ahci.c
index 55ada5f7499a198f47bab90f66e03a2e2d5cb2ed..c1b436d6713bdff340b48c923539b5cfd4463983 100644
(file)
--- a/
src/ahci.c
+++ b/
src/ahci.c
@@
-547,19
+547,20
@@
static int ahci_port_init(struct ahci_port_s *port)
port->drive.blksize = CDROM_SECTOR_SIZE;
port->drive.sectors = (u64)-1;
u8 iscd = ((buffer[0] >> 8) & 0x1f) == 0x05;
port->drive.blksize = CDROM_SECTOR_SIZE;
port->drive.sectors = (u64)-1;
u8 iscd = ((buffer[0] >> 8) & 0x1f) == 0x05;
+ if (!iscd) {
+ dprintf(1, "AHCI/%d: atapi device is'nt a cdrom\n", port->pnr);
+ return -1;
+ }
char *desc = znprintf(MAXDESCSIZE
char *desc = znprintf(MAXDESCSIZE
- , "DVD/CD [AHCI/%d: %s ATAPI-%d
%s
]"
+ , "DVD/CD [AHCI/%d: %s ATAPI-%d
DVD/CD
]"
, port->pnr
, ata_extract_model(model, MAXMODEL, buffer)
, port->pnr
, ata_extract_model(model, MAXMODEL, buffer)
- , ata_extract_version(buffer)
- , (iscd ? "DVD/CD" : "Device"));
+ , ata_extract_version(buffer));
dprintf(1, "%s\n", desc);
// fill cdidmap
dprintf(1, "%s\n", desc);
// fill cdidmap
- if (iscd) {
- int prio = bootprio_find_ata_device(ctrl->pci_tmp, pnr, 0);
- boot_add_cd(&port->drive, desc, prio);
- }
+ int prio = bootprio_find_ata_device(ctrl->pci_tmp, pnr, 0);
+ boot_add_cd(&port->drive, desc, prio);
}
return 0;
}
}
return 0;
}