Changeset 487 in xtideuniversalbios


Ignore:
Timestamp:
Dec 5, 2012, 5:54:46 PM (9 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • ATA ID verification no longer checks ATA version since it is not available on CF cards.
Location:
trunk/XTIDE_Universal_BIOS
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Inc/Controllers/XTCF.inc

    r482 r487  
    2323%define XTCF_INC
    2424
    25 XTCF_DMA_MODE_MAX_BLOCK_SIZE        EQU     64      ; Sectors
    2625OFFSET_TO_CONTROL_BLOCK_REGISTERS   EQU     8
    2726DEFAULT_XTCF_SECTOR_WINDOW_SEGMENT  EQU     0D800h
     27
     28; XT-CF requires that block must be less than 128 sectors (64 kiB).
     29; Instead of limiting block size to 64, we limit it to 32 (16 kiB).
     30; Transferring more than 16 kiB with 8237 DMA controller block or demand
     31; mode might interfere with DRAM refresh on XT systems.
     32XTCF_DMA_MODE_MAX_BLOCK_SIZE        EQU     32      ; Sectors
    2833
    2934; Possible base addresses. Note that all XT-CF IDE registers are SHL 1 compared
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/AtaID.asm

    r445 r487  
    5252    call    .CompareCHorSfromOffsetBXtoMaxValueInCX
    5353
    54     ; We now verified P-CHS parameters so we assume ATA ID to be valid
    55     ; for ATA-4 and older. For ATA-5 and later we check signature
    56     ; and checksum.
    57     mov     ax, [es:si+ATA6.wMajorVer]          ; ATA-3 and later have this word
    58     inc     ax
    59     jz      SHORT .AtaIDverifiedSuccessfully    ; FFFFh means no version info available
    60     dec     ax
    61     jz      SHORT .AtaIDverifiedSuccessfully    ; Zero means no version info available
    62     cmp     ax, A6_wMajorVer_ATA5
    63     jb      SHORT .AtaIDverifiedSuccessfully    ; ATA-3 and ATA-4 do not have checksum
    64 
    65     ; Check signature byte
    66     cmp     BYTE [es:si+ATA6.bSignature], A6_wIntegrity_SIGNATURE
     54    ; Check signature byte. It is only found on ATA-5 and later. It should be zero on
     55    ; ATA-4 and older.
     56    mov     al, [es:si+ATA6.bSignature]
     57    test    al, al
     58    jz      SHORT .AtaIDverifiedSuccessfully    ; Old ATA so Signature and Checksum is not available
     59    cmp     al, A6_wIntegrity_SIGNATURE
    6760    jne     SHORT .FailedToVerifyAtaID
    6861
    69     ; Check checksum byte
     62    ; Check checksum byte since signature was present
    7063    mov     cx, ATA6_size
    7164    call    Memory_SumCXbytesFromESSItoAL       ; Returns with ZF set according to result
Note: See TracChangeset for help on using the changeset viewer.