diff --git a/tools/firmware/rombios/rombios.c b/tools/firmware/rombios/rombios.c
-index 8157e33..3dccd77 100644
+index 8157e33..c6d61f8 100644
--- a/tools/firmware/rombios/rombios.c
+++ b/tools/firmware/rombios/rombios.c
-@@ -8345,6 +8345,11 @@ ASM_END
+@@ -8343,11 +8343,16 @@ ASM_END
+ if ((status & 0x00ff)!=0)
+ status = cdrom_boot((Bit16u) 1);
- // If failure
+- // If failure
if ( (status & 0x00ff) !=0 ) {
-+ int device;
-+ for (device=0; device<BX_MAX_ATA_DEVICES;device++) {
-+ ata_reset (device);
-+ }
-+
print_cdromboot_failure(status);
print_boot_failure(e.type, 1);
- return;
+- return;
++
++ for (status=0; status<BX_MAX_ATA_DEVICES;status++) {
++ if (atapi_is_cdrom(status))
++ ata_reset (status);
++ }
++
++return;
+ }
+
+ bootdrv = (Bit8u)(status>>8);