Changeset 564 in xtideuniversalbios for trunk


Ignore:
Timestamp:
Jul 30, 2013, 2:06:45 PM (11 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • If Advanced controller needs to limit PIO mode (Vision QD6500), cycle time is now limited as well => QD6500 now works with fast drives.
Location:
trunk/XTIDE_Universal_BIOS/Src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeDPT.asm

    r526 r564  
    119119    ; Use highest common PIO mode from controller and drive.
    120120    ; Many VLB controllers support PIO modes up to 2.
    121     call    AdvAtaInit_GetControllerMaxPioModeToAL
     121    call    AdvAtaInit_GetControllerMaxPioModeToALandMinPioCycleTimeToBX
    122122    jnc     SHORT .ChangeTo32bitDevice
     123
    123124    and     BYTE [di+DPT.bFlagsHigh], ~FLGH_DPT_IORDY   ; No IORDY supported if need to limit
    124125    MIN_U   [di+DPT_ADVANCED_ATA.bPioMode], al
     126    mov     [di+DPT_ADVANCED_ATA.wMinPioCycleTime], bx
    125127
    126128    ; We have detected 32-bit controller so change Device Type since
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/AdvancedAta/AdvAtaInit.asm

    r526 r564  
    5050
    5151;--------------------------------------------------------------------
    52 ; AdvAtaInit_GetControllerMaxPioModeToAL
     52; AdvAtaInit_GetControllerMaxPioModeToALandMinPioCycleTimeToBX
    5353;   Parameters:
    5454;       AX:     ID WORD specific for detected controller
     
    5656;       AL:     Max supported PIO mode
    5757;       AH:     FLGH_DPT_IORDY if IORDY supported, zero otherwise
     58;       BX:     Min PIO cycle time (only if CF set)
    5859;       CF:     Set if PIO limit necessary
    5960;               Cleared if no need to limit timings
     
    6162;       (AX if CF cleared)
    6263;--------------------------------------------------------------------
    63 AdvAtaInit_GetControllerMaxPioModeToAL  equ Vision_GetMaxPioModeToAL
     64AdvAtaInit_GetControllerMaxPioModeToALandMinPioCycleTimeToBX    equ Vision_GetMaxPioModeToALandMinCycleTimeToBX
    6465
    6566
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/AdvancedAta/Vision.asm

    r542 r564  
    124124
    125125;--------------------------------------------------------------------
    126 ; Vision_GetMaxPioModeToAL
     126; Vision_GetMaxPioModeToALandMinCycleTimeToBX
    127127;   Parameters:
    128128;       AL:     QD65xx Config Register contents
     
    131131;       AL:     Max supported PIO mode
    132132;       AH:     FLGH_DPT_IORDY if IORDY supported, zero otherwise
     133;       BX:     Min PIO Cycle Time (only if CF set)
    133134;       CF:     Set if PIO limit necessary
    134135;               Cleared if no need to limit timings
     
    138139;       Nothing
    139140;--------------------------------------------------------------------
    140 Vision_GetMaxPioModeToAL:
     141Vision_GetMaxPioModeToALandMinCycleTimeToBX:
    141142    cmp     ah, ID_QD6500 << 4
    142143    clc
     
    144145
    145146    mov     ax, 2   ; Limit to PIO 2 because QD6500 does not support IORDY
     147    mov     bx, PIO_2_MIN_CYCLE_TIME_NS
    146148    stc
    147149.NoNeedToLimitForQD6580:
Note: See TracChangeset for help on using the changeset viewer.