Kevin O'Connor writes:

> On Fri, May 20, 2022 at 03:19:03PM +0000, Lev Kujawski wrote:
>> In accord with the El Torito specification[1], SeaBIOS now signals
>> failure (AH=1 and CF) whenever attempts are made to terminate disk
>> emulation (0x4B) for non-emulated drives. The prior behavior of always
>> returning success caused the Solaris 9 Device Configuration
>> Assistant (DCA) diskette (d1_image) to fail to boot as it was unable
>> to access the non-existent underlying drive.
>> 
>> References:
>> 
>> [1]:  "CF - Clear if system released
>>        CF - Set if system not in emulation mode"
>> 
>>      C. E. Stevens and S. Merkin, '"El Torito" Bootable CD-ROM Format
>>      Specification', Phoenix Technologies and IBM, 1994, p. 17.
>
> Thanks.
>
> I noticed a bit of "code movement" in this patch.  Is the only
> functional change to return DISK_RET_EPARAM when 134b is invoked on a
> non-emulated drive?
>
> Cheers,
> -Kevin

Hi Kevin,

I decided to separate out the El Torito termination handler because it
seemed the cleanest way to deal with the following three cases:

a) CONFIG_CDROM_BOOT=n

Old behavior: Prints a debug message about an unimplemented call
New behavior: Just return failure

b) CONFIG_CDROM_BOOT=y and CONFIG_CDROM_EMU=n

Old behavior: Unimplemented call again
New behavior: Fill in the CD-ROM specification table (no emulation)

For example, the Solaris install CD does not use disk emulation but
still expects to get this table from the BIOS.

c) CONFIG_CDROM_BOOT=y and CONFIG_CDROM_EMU=y

(As described in the patch)

Kind regards,
Lev Kujawski

_______________________________________________
SeaBIOS mailing list -- seabios@seabios.org
To unsubscribe send an email to seabios-le...@seabios.org

Reply via email to