Совершенно верно: либо переход в точку входа будет затруднен, либо код FFF0...FFFF не выполнится. Но для этого на POST-карте должен быть режим "DATA", в нем и только в нем мы обнаружим дефект старта на Very Very Early этапе.
[продолжение]
Итак, чтобы костер не затух, зададим жару: следующая предпосылка для постоения BIOS - точка входа. Всем и каждому известно, что процессор (начиная с i386DX) выполняет первую инструкцию по адресу 0FFFFFFF0h, находящемуся в топе 4 Гб пространства. В этом, казалось бы, легко убедиться с помощью несложной программы на ассемблере:
.586P
CODESG SEGMENT PARA 'CODE' PUBLIC USE16
BBLOCK PROC NEAR
ASSUME CS:CODESG, DS:CODESG, SS:CODESG
reset:
jmp start
start:
nop
; ...
;------ Entry point for LiteBIOS start
ORG 0FFF0h
; mov ebx,edx
;Following power-on reset the EDX register contains the values shown
;Type [13:12] Family [11:8] Model [7:4] Stepping [3:0]
testloop:
mov al,55h
out 80h,al
jmp testloop ;do not use hlt!
nop ; 1
nop ; 2
nop ; 3
nop ; 4
nop ; 5
nop ; 6
nop ; 7
nop ; 8
nop ; 9
nop ; 10
BBLOCK ENDP
CODESG ENDS
END BBLOCK
Почему "казалось бы"? Потому что на всех платформах до появления процессора AMD Athlon/Duron в сокете 462 это работать будет. А означенному CPU в виду его свойства ROM SIP необходимо до выполнения первой инструкции BIOS, если специально не установлена ПЗУ с SIP-таблицей (а она на мей памяти ни разу на плате не была установлена), необходимо из BIOS вычитать эту самую SIP-таблицу.
Для постоение SIP-таблиц уже следует принимать во внимание специфику каждого из чипсетов для AMD Athlon/Duron. Так для SiS таблица размещается по адресу 0F000h:0FFD0h, для VIA - 0F000h:0FFE0h, для nForce - не специфицирована. Так как, к счастью, адреса не пересекаются, еще теплится жизнь в единой для всех чипсетов версии тестового BIOS. Но из-за угла бельмом цвета слоновой кости уже смотрит на нас AMD64...
:)
Совершенно верно: либо переход в точку входа будет затруднен, либо код FFF0...FFFF не выполнится. Но для этого на POST-карте должен быть режим "DATA", в нем и только в нем мы обнаружим дефект старта на Very Very Early этапе.
[продолжение]
Итак, чтобы костер не затух, зададим жару: следующая предпосылка для постоения BIOS - точка входа. Всем и каждому известно, что процессор (начиная с i386DX) выполняет первую инструкцию по адресу 0FFFFFFF0h, находящемуся в топе 4 Гб пространства. В этом, казалось бы, легко убедиться с помощью несложной программы на ассемблере:
Почему "казалось бы"? Потому что на всех платформах до появления процессора AMD Athlon/Duron в сокете 462 это работать будет. А означенному CPU в виду его свойства ROM SIP необходимо до выполнения первой инструкции BIOS, если специально не установлена ПЗУ с SIP-таблицей (а она на мей памяти ни разу на плате не была установлена), необходимо из BIOS вычитать эту самую SIP-таблицу.
NB: Наш коллега FatumNNM активно работает в этом направления на чипсетах nForce (см., например, forum.rom.by/viewtopic.php?t=9715&postdays=0&postorder=asc&&am... ).
Для постоение SIP-таблиц уже следует принимать во внимание специфику каждого из чипсетов для AMD Athlon/Duron. Так для SiS таблица размещается по адресу 0F000h:0FFD0h, для VIA - 0F000h:0FFE0h, для nForce - не специфицирована. Так как, к счастью, адреса не пересекаются, еще теплится жизнь в единой для всех чипсетов версии тестового BIOS. Но из-за угла бельмом цвета слоновой кости уже смотрит на нас AMD64...
:)