WinXP не паркует SATA харды на RAID контроллере SIS180
-
- Advanced Member
- Сообщения: 568
- Зарегистрирован: 02.09.2017,09:08
- Откуда: Кемерово
- Контактная информация:
WinXP не паркует SATA харды на RAID контроллере SIS180
ПК8010 "Корвет"+ExtRom+AY, Atari 65XE+SDrive, Дельта-С(52ИС)+AY
Продам материнские платы
Продам материнские платы
WinXP не паркует SATA харды на RAID контроллере SIS180
кривые руки детект, грусть печаль #пограмистыJason писал(а): ↑15.10.2019,14:56 Сейчас попробовал отключить - получил BSOD от драйвера видеокарты (Radeon 9200).
Повторил то же самое на ноуте - тоже BSOD и тоже от видеокарты (RadeonHD 3470). Система перестала грузиться даже в безопасном режиме. Пришлось восстанавливать из бэкапа.
Винда ставилась при включенном APIC, коего в стандартном PC попросту нет.
На совсем старых машинках такой фокус работает, но это не наш случай.
рукалицо
А оно мне надо? Мне фигнёй заниматся некогда.
Последний раз редактировалось geg 16.10.2019,20:31, всего редактировалось 1 раз.
WinXP не паркует SATA харды на RAID контроллере SIS180
И я тоже. Поэтому у меня на фидошной ноде Quantum Fireball 3 GB прожил 10 лет почти не выключаясь. И был отправлен на отдых в полностью рабочем состоянии.
ОК.Предлагаю целесообразность парковки больше не обсуждать
ZX-Spectrum 128k
WinXP не паркует SATA харды на RAID контроллере SIS180
Ага, кривость старых ATI-шных драйверов - известный факт.
Извольте писать на понятном языке.рукалицо
5.1 Язык общения на форуме -- русский. Допускается в случае необходимости умеренное использование английского языка.
ZX-Spectrum 128k
-
- Advanced Member
- Сообщения: 4384
- Зарегистрирован: 30.01.2015,17:06
- Откуда: г. Баку, Азербайджан
-
Конкурсы
Вклад в сообщество
WinXP не паркует SATA харды на RAID контроллере SIS180
Я не Вам писал. А фигнёй Вы занимаетесь постоянно, отправляя бессмысленные сообщения...
Посмотрю, когда будет время
WinXP не паркует SATA харды на RAID контроллере SIS180
Управление питанием там есть, но не работает. См. sisraid.sys от 06.05.2005.
Вот этот кусок кода пытается перевести диск в standby, если удаётся - выводит отладочное сообщение 'Issue standby to dev %x'.
Рядом с ним есть и 'set power mode' и 'flush' и ещё много всего. Смотреть около loc_157D0.
Похоже, собака зарыта здесь.
Код является частью функции AtapiAdapterControl. Очевидно, "Atapi" можно понимать как "ATA".
Вот этот кусок кода пытается перевести диск в standby, если удаётся - выводит отладочное сообщение 'Issue standby to dev %x'.
Рядом с ним есть и 'set power mode' и 'flush' и ещё много всего. Смотреть около loc_157D0.
Похоже, собака зарыта здесь.
Код является частью функции AtapiAdapterControl. Очевидно, "Atapi" можно понимать как "ATA".
Код: Выделить всё
.text:000156EA loc_156EA: ; CODE XREF: AtapiAdapterControl+49F
.text:000156EA movzx ebx, byte ptr [ebp+arg_4]
.text:000156EE cmp byte ptr [ebp+ebx+var_8], 0
.text:000156F3 jz short loc_1576E
.text:000156F5 mov edi, [esi+ebx*4+0Ch]
.text:000156F9 xor eax, eax
.text:000156FB mov al, byte ptr [ebp+arg_4]
.text:000156FE or al, 0FAh
.text:00015700 shl al, 4
.text:00015703 push eax
.text:00015704 lea eax, [edi+6]
.text:00015707 push eax
.text:00015708 call _ScsiPortWritePortUchar@8 ; ScsiPortWritePortUchar(x,x)
.text:0001570D push 5
.text:0001570F lea eax, [edi+1]
.text:00015712 push eax
.text:00015713 call _ScsiPortWritePortUchar@8 ; ScsiPortWritePortUchar(x,x)
.text:00015718 push 0FEh
.text:0001571D lea eax, [edi+2]
.text:00015720 push eax
.text:00015721 call _ScsiPortWritePortUchar@8 ; ScsiPortWritePortUchar(x,x)
.text:00015726 push 0EFh
.text:0001572B add edi, 7
.text:0001572E push edi
.text:0001572F call _ScsiPortWritePortUchar@8 ; ScsiPortWritePortUchar(x,x)
.text:00015734 and [ebp+arg_8], 0
.text:00015738
.text:00015738 loc_15738: ; CODE XREF: AtapiAdapterControl+483j
.text:00015738 push edi
.text:00015739 call _ScsiPortReadPortUchar@4 ; ScsiPortReadPortUchar(x)
.text:0001573E test al, al
.text:00015740 mov byte ptr [ebp+arg_0+3], al
.text:00015743 jns short loc_1575B
.text:00015745 push 96h
.text:0001574A call _ScsiPortStallExecution@4 ; ScsiPortStallExecution(x)
.text:0001574F inc [ebp+arg_8]
.text:00015752 cmp [ebp+arg_8], 0EA60h
.text:00015759 jb short loc_15738
.text:0001575B
.text:0001575B loc_1575B: ; CODE XREF: AtapiAdapterControl+46D
.text:0001575B test byte ptr [ebp+arg_0+3], 80h
.text:0001575F jnz short loc_157D0
.text:00015761 push ebx
.text:00015762 push offset aIssueStandbyTo ; "Issue standby to dev %x\n"
.text:00015767 call _DbgPrint
.text:0001576C pop ecx
.text:0001576D pop ecx
.text:0001576E
.text:0001576E loc_1576E: ; CODE XREF: AtapiAdapterControl+41D
.text:0001576E inc byte ptr [ebp+arg_4]
.text:00015771 cmp byte ptr [ebp+arg_4], 4
.text:00015775 jb loc_156EA
.text:000151F2 aIssueStandbyTo db 'Issue standby to dev %x',0Ah,0
.text:000151F2 ; DATA XREF: AtapiAdapterControl+48C
.text:0001526A aScsistopadap_0 db 'ScsiStopAdapter: Flush status BUSY dev = %x',0Ah,0
.text:0001526A ; DATA XREF: AtapiAdapterControl+4F3
.text:0001529A aScsistopadap_1 db 'ScsiStopAdapter: set power mode status BUSY dev = %x',0Ah,0
.text:0001529A ; DATA XREF: AtapiAdapterControl+4FF
ZX-Spectrum 128k
WinXP не паркует SATA харды на RAID контроллере SIS180
А если не удаётся - выводит сообщение 'set power mode status BUSY'.
Софтайс скотина, не хочет работать с моей видеокартой.
Поставил syser - шрифт мелкий, плююсь и привыкаю.
Времени мало, ничего не успеваю.
ZX-Spectrum 128k
WinXP не паркует SATA харды на RAID контроллере SIS180
Переключился на интегрированную SIS6330 - заработал. Что прояснилось:
DriverEntry возвращает наверх адреса семи точек входа. Их описание - здесь и здесь. Пять из них - обязательные. AdapterControl - опциональная.
Код: Выделить всё
.text:0001B0BC mov [ebp+var_54], offset AtapiHwInitialize
.text:0001B0C3 mov [ebp+var_44], offset AtapiResetController
.text:0001B0CA mov [ebp+var_50], offset AtapiStartIo
.text:0001B0D1 mov [ebp+var_4C], offset AtapiInterrupt
.text:0001B0D8 mov [ebp+var_48], offset AtapiFindController
.text:0001B0DF mov [ebp+var_3C], offset AtapiAdapterState
.text:0001B0E6 mov [ebp+var_10], offset AtapiAdapterControl
StartIo срабатывает при любом обращении к диску. Хорошо.
AdapterControl не сработала ни разу. Вообще ни разу. Даже при standby по таймеру! А парковка диска возможна только через неё.
Одно из двух:
1. DriverEntry неверно (не туда) возвращает адрес функции AdapterControl. Маловероятно.
2. Сама AdapterControl (при первом вызове) возвращает неверный SUPPORTED_CONTROL_TYPE_LIST. Точного описания не нашёл.
3. Или это. Появилось в Win7. Маловероятно.
ZX-Spectrum 128k
-
- Advanced Member
- Сообщения: 4384
- Зарегистрирован: 30.01.2015,17:06
- Откуда: г. Баку, Азербайджан
-
Конкурсы
Вклад в сообщество
WinXP не паркует SATA харды на RAID контроллере SIS180
Пока затрудняюсь помочь, но напомнило, как у меня не вызывался
mfm_shutdown, из-за отсутствия объявления device_shutdown в ata-isa.c
Но если бы ошибка была такого подобного рода, не работал бы shutdown
для всех SCSI контроллеров. Тем не менее, причина 2 кажется более
вероятной
mfm_shutdown, из-за отсутствия объявления device_shutdown в ata-isa.c
Но если бы ошибка была такого подобного рода, не работал бы shutdown
для всех SCSI контроллеров. Тем не менее, причина 2 кажется более
вероятной
WinXP не паркует SATA харды на RAID контроллере SIS180
Объявления? Имеется ввиду public mfm_shutdown ?
В драйверах разве могут быть экспорты? Это же не dll.
Угу. Насколько я понял, параметр при первом вызове - ссылка на пустой boolean массив, его надо заполнить единицами/нулями, если функция поддерживается/не поддерживается. Исходя из этого определяется дальнейшая логика работы "наверху". А как отличить первый вызов от непервого? Точной инфы не нашёл, разве что вот это. Непонятно, что на входе, и куда возвращается результат.Тем не менее, причина 2 кажется более вероятной
Однако, первый вызов происходит ещё до загрузки SoftICE, поэтому не брякается.
ps: вообще-то мой родной язык - чистый асм, я с него начинал. ZX-Spectrum, однако. Си и Паскаль я выучил намного позже.
ZX-Spectrum 128k
-
- Advanced Member
- Сообщения: 4384
- Зарегистрирован: 30.01.2015,17:06
- Откуда: г. Баку, Азербайджан
-
Конкурсы
Вклад в сообщество
WinXP не паркует SATA харды на RAID контроллере SIS180
Это относительно драйвера для FreeBSD, и чтобы shutdown в ata-mfm.c вызывался, необходимо
было дополнительное присваивание указателя в ata-isa, которая необходима для работы mfm.
Во FreeBSD первый вызов драйвера происходит по device_probe - проверяется, что имеется драйвер для устройства
(их может быть несколько), а второй уже device_attach, в котором определяется драйвер, который конкретно
будет держать данное устройство. Есть еще специальный код возврата BUS_PROBE_SPECIFIC, при этом вызов
происходит только один раз. Это нужно для драйверов, которые выполняют какую-то настройку и более не нужны.
В windows как всегда и без того непростую вещь искусственно усложнили.
Я тоже, правда с 8-разрядными машинами дела не имел, но собирал самодельные контроллеры,
и приходилось транслировать вручную (из-за отсутсвия денег на компьютер) для 8080.