всё это можно (и стоит) проверить,
для начала убедиться, что предыдущее предположение вообще верно, и попробовать такой код инита, с чтением кусочка биоса до записи 74Е4
Код:
*react = 0x1fffff;
for(p = 0; p < 0x200 / 4; p++) {
(void)bios[p];
}
*react = 0x1fffff;
for(p = 0; p < 0x200000 / 4; p++) {
(void)bios[p];
}
если инит гдрома после этого таки произойдет - значит запись 74E4 таки сбрасывает текущую сумму (а не сбрасывает только при "холодном старте" системы), что нас оч даже устраивает
если гдром будет залочен - значит мы угадали
и если так можно проверить гипотезу с "магической цифрой"
Код:
*react = 0x1fffff;
for(p = 0; p < 0x200 / 4; p++) {
(void)bios[p];
}
*react = 0x42fe;
*react = 0x1fffff;
for(p = 0; p < 0x200000 / 4; p++) {
(void)bios[p];
}
Цитата: Я кстати не думаю что это совсем "отфонтанная" цифра, ну точнее она просто заложена в holly, как в случае и с многими другими регистрами, допустим регистр holly reset, в него пишется 0x7611 для активации сброса и никакое другое значение этого не сделает.
тут есть разница - регистр сброса принимает только волшебное число, в регистрах защиты памяти в старших 16бит должно быть волшебное число, в младших - данные, а так чтобы и данные (адрес) и волшебная цифирка пересекались в регистре обычно не делают.
Цитата:Кстати мы не правильно выражаемся, когда говорим что блокируется шина G1.
Блокируется только IDE интерфейс для привода.
я думаю всем присутствующим здесь это и так понятно