acpi на базе x86 что значит
acpi компьютер на базе x86 что это
Доброго времени суток есть ноут ASUS X59SL, хотел на него поставить Vista 64 битную. Так вот хотел узнать где и как посмотреть, и узнать поддерживает ли ноут 64 битные ОС.
Компьютер:
Тип компьютера ACPI компьютер на базе x86 (Mobile)
Операционная система Microsoft Windows Vista Home Basic
Пакет обновления ОС Service Pack 1
Internet Explorer 8.0.6001.18702
DirectX DirectX 10.1
Имя компьютера ВЛАДЕЛЕЦ-ПК
Имя пользователя владелец
Вход в домен владелец-ПК
Дата / Время 2009-05-23 / 19:01
Системная плата:
Тип ЦП Mobile DualCore Intel Pentium T3200, 2000 MHz (12 x 167)
Системная плата Asus F5000Sl Series Notebook
Чипсет системной платы SiS M671DX
Системная память 2048 Мб (DDR2-667 DDR2 SDRAM)
DIMM1: Hynix HYMP125S64CP8-Y5 2 Гб DDR2-667 DDR2 SDRAM (5-5-5-15 @ 333 МГц) (4-4-4-12 @ 266 МГц) (3-3-3-9 @ 200 МГц)
Тип BIOS AMI (09/01/08)
Коммуникационный порт HUAWEI Mobile Connect — 3G PC UI Interface (COM7)
Отображение:
Видеоадаптер ATI Mobility Radeon HD 3470 (256 Мб)
Видеоадаптер ATI Mobility Radeon HD 3470 (256 Мб)
3D-акселератор ATI Mobility Radeon HD 3470 (M82XT)
Монитор AU Optronics B154EW08 V1 [15.4″ LCD]
Мультимедиа:
Звуковой адаптер Realtek ALC660 @ SiS High Definition Audio Controller
Хранение данных:
Контроллер IDE SiS PCI IDE-контроллер
Контроллер IDE Стандартный двухканальный контроллер PCI IDE
Контроллер хранения данных Microsoft iSCSI инициатор
Дисковый накопитель Generic- xD/SDMMC/MS/Pro USB Device
Дисковый накопитель ST9160310AS ATA Device (160 Гб, 5400 RPM, SATA-II)
Оптический накопитель HL-DT-ST DVDRAM GSA-T40N ATA Device (DVD+R9:6x, DVD-R9:6x, DVD+RW:8x/8x, DVD-RW:8x/6x, DVD-RAM:5x, DVD-ROM:8x, CD:24x/16x/24x DVD+RW/DVD-RW/DVD-RAM)
Оптический накопитель HUAWEI Mass Storage USB Device
Статус SMART жёстких дисков OK
Разделы:
C: (NTFS) 76308 Мб (56370 Мб свободно)
D: (NTFS) 66315 Мб (51155 Мб свободно)
G: (NTFS) 298.1 Гб (169.3 Гб свободно)
Общий объём 437.4 Гб (274.3 Гб свободно)
Ввод:
Клавиатура Keyboard Device Filter
Мышь HID-совместимая мышь
Мышь Synaptics PS/2 Port TouchPad
Драйверы для ACPI x86-based PC собраны с официальных сайтов компаний-производителей и других проверенных источников. Официальные пакеты драйверов помогут исправить ошибки и неполадки в работе ACPI x86-based PC (чипсеты). Скачать последние версии драйверов на ACPI x86-based PC для компьютеров и ноутбуков на Windows.
Скачать драйвер
Скачать и обновить нужные драйверы автоматически
© 2015-2019 DriverHub
Все названия продуктов, логотипы и торговые марки являются собственностью соответствующих владельцев. Все названия компаний, продуктов и услуг, используемые на этом сайте, предназначены только для идентификации.
Материнская плата ACPI x64-based PC, довольно старая плата, по котороый найти информации достаточно сложно. Мы приведем суммарную иформацию компьютера, собранного на базе материнской платы ACPI x64-based PC. Данная суммараная информация, досталась над от владельца такого вот старого компьютера.
Суммарная информация
Компьютер:
Тип компьютера ACPI x64-based PC
Операционная система Microsoft Windows 7 Home Basic
Пакет обновления ОС Service Pack 1
Internet Explorer 9.0.8112.16421 (IE 9.0)
DirectX DirectX 11.0
Имя компьютера USER-ПК
Имя пользователя User
Вход в домен User-ПК
Дата / Время 2012-12-26 / 16:23
Системная плата:
Тип ЦП QuadCore Intel Core i5-2300, 2900 MHz (29 x 100)
Системная плата Zotac H67
Чипсет системной платы Intel Cougar Point H67, Intel Sandy Bridge
Системная память 4080 МБ (DDR3-1333 DDR3 SDRAM)
DIMM1: E30106A 2 ГБ DDR3-1333 DDR3 SDRAM (9-9-9-24 @ 666 МГц) (8-8-8-22 @ 609 МГц) (7-7-7-20 @ 533 МГц) (6-6-6-17 @ 457 МГц)
DIMM3: E30106A 2 ГБ DDR3-1333 DDR3 SDRAM (9-9-9-24 @ 666 МГц) (8-8-8-22 @ 609 МГц) (7-7-7-20 @ 533 МГц) (6-6-6-17 @ 457 МГц)
Тип BIOS AMI (03/17/2011)
Коммуникационный порт Последовательный порт (COM1)
Коммуникационный порт USB Serial Port (COM3)
Отображение:
Видеоадаптер AMD Radeon HD 6570 (1024 МБ)
Видеоадаптер AMD Radeon HD 6570 (1024 МБ)
3D-акселератор AMD Radeon HD 6570 (Turks)
Монитор Dell 2709W (HDMI) [27″ LCD] (TR0709330YTS)
Мультимедиа:
Звуковой адаптер ATI Radeon HDMI @ AMD Turks/Whistler/Thames — High Definition Audio Controller
Звуковой адаптер Intel Cougar Point HDMI @ Intel Cougar Point PCH — High Definition Audio Controller [B-3]
Звуковой адаптер Realtek ALC892 @ Intel Cougar Point PCH — High Definition Audio Controller [B-3]
Хранение данных:
Контроллер IDE Intel(R) 6 Series/C200 Series Chipset Family 2 port Serial ATA Storage Controller — 1C08
Контроллер IDE Intel(R) 6 Series/C200 Series Chipset Family 4 port Serial ATA Storage Controller — 1C00
Контроллер хранения данных AOWGC6JW IDE Controller
Контроллер хранения данных JMicron JMB36X Controller
Дисковый накопитель WDC WD10EARS-00Y5B1 ATA Device (1000 ГБ, SATA-II)
Оптический накопитель HP BD Writer bd340i ATA Device
Оптический накопитель IVOHC QJOLMZG12J SCSI CdRom Device
SMART-статус жёстких дисков OK
Разделы:
C: (NTFS) 195.2 ГБ (159.6 ГБ свободно)
D: (NTFS) 736.2 ГБ (662.0 ГБ свободно)
Общий объём 931.4 ГБ (821.6 ГБ свободно)
Ввод:
Клавиатура Клавиатура HID
Клавиатура Стандартная клавиатура PS/2
Мышь HID-совместимая мышь
Сеть:
Первичный адрес IP 192.168.1.193
Первичный адрес MAC 74-F0-6D-70-8C-76
Сетевой адаптер 802.11n Wireless LAN Card (192.168.1.193)
Сетевой адаптер Microsoft Virtual WiFi Miniport Adapter
Сетевой адаптер Realtek PCIe GBE Family Controller
Периферийные устройства:
Принтер Fax
Принтер Microsoft XPS Document Writer
Контроллер USB2 Intel Cougar Point PCH — USB EHCI #1 Controller [B-3]
Контроллер USB2 Intel Cougar Point PCH — USB EHCI #2 Controller [B-3]
Контроллер USB3 VIA USB 3.0 eXtensible Host Controller
USB-устройство Generic USB Hub
USB-устройство Generic USB Hub
USB-устройство USB Serial Converter
USB-устройство USB-устройство ввода
USB-устройство USB-устройство ввода
USB-устройство Оборудование Майкрософт — USB-клавиатура
USB-устройство Составное USB устройство
acpi x86 based pc что это
Драйверы для ACPI x86-based PC собраны с официальных сайтов компаний-производителей и других проверенных источников. Официальные пакеты драйверов помогут исправить ошибки и неполадки в работе ACPI x86-based PC (чипсеты). Скачать последние версии драйверов на ACPI x86-based PC для компьютеров и ноутбуков на Windows.
Скачать драйвер
Скачать и обновить нужные драйверы автоматически
© 2015-2019 DriverHub
Все названия продуктов, логотипы и торговые марки являются собственностью соответствующих владельцев. Все названия компаний, продуктов и услуг, используемые на этом сайте, предназначены только для идентификации.
Материнская плата ACPI x64-based PC, довольно старая плата, по котороый найти информации достаточно сложно. Мы приведем суммарную иформацию компьютера, собранного на базе материнской платы ACPI x64-based PC. Данная суммараная информация, досталась над от владельца такого вот старого компьютера.
Суммарная информация
Компьютер:
Тип компьютера ACPI x64-based PC
Операционная система Microsoft Windows 7 Home Basic
Пакет обновления ОС Service Pack 1
Internet Explorer 9.0.8112.16421 (IE 9.0)
DirectX DirectX 11.0
Имя компьютера USER-ПК
Имя пользователя User
Вход в домен User-ПК
Дата / Время 2012-12-26 / 16:23
Системная плата:
Тип ЦП QuadCore Intel Core i5-2300, 2900 MHz (29 x 100)
Системная плата Zotac H67
Чипсет системной платы Intel Cougar Point H67, Intel Sandy Bridge
Системная память 4080 МБ (DDR3-1333 DDR3 SDRAM)
DIMM1: E30106A 2 ГБ DDR3-1333 DDR3 SDRAM (9-9-9-24 @ 666 МГц) (8-8-8-22 @ 609 МГц) (7-7-7-20 @ 533 МГц) (6-6-6-17 @ 457 МГц)
DIMM3: E30106A 2 ГБ DDR3-1333 DDR3 SDRAM (9-9-9-24 @ 666 МГц) (8-8-8-22 @ 609 МГц) (7-7-7-20 @ 533 МГц) (6-6-6-17 @ 457 МГц)
Тип BIOS AMI (03/17/2011)
Коммуникационный порт Последовательный порт (COM1)
Коммуникационный порт USB Serial Port (COM3)
Отображение:
Видеоадаптер AMD Radeon HD 6570 (1024 МБ)
Видеоадаптер AMD Radeon HD 6570 (1024 МБ)
3D-акселератор AMD Radeon HD 6570 (Turks)
Монитор Dell 2709W (HDMI) [27″ LCD] (TR0709330YTS)
Мультимедиа:
Звуковой адаптер ATI Radeon HDMI @ AMD Turks/Whistler/Thames — High Definition Audio Controller
Звуковой адаптер Intel Cougar Point HDMI @ Intel Cougar Point PCH — High Definition Audio Controller [B-3]
Звуковой адаптер Realtek ALC892 @ Intel Cougar Point PCH — High Definition Audio Controller [B-3]
Хранение данных:
Контроллер IDE Intel(R) 6 Series/C200 Series Chipset Family 2 port Serial ATA Storage Controller — 1C08
Контроллер IDE Intel(R) 6 Series/C200 Series Chipset Family 4 port Serial ATA Storage Controller — 1C00
Контроллер хранения данных AOWGC6JW IDE Controller
Контроллер хранения данных JMicron JMB36X Controller
Дисковый накопитель WDC WD10EARS-00Y5B1 ATA Device (1000 ГБ, SATA-II)
Оптический накопитель HP BD Writer bd340i ATA Device
Оптический накопитель IVOHC QJOLMZG12J SCSI CdRom Device
SMART-статус жёстких дисков OK
Разделы:
C: (NTFS) 195.2 ГБ (159.6 ГБ свободно)
D: (NTFS) 736.2 ГБ (662.0 ГБ свободно)
Общий объём 931.4 ГБ (821.6 ГБ свободно)
Ввод:
Клавиатура Клавиатура HID
Клавиатура Стандартная клавиатура PS/2
Мышь HID-совместимая мышь
Сеть:
Первичный адрес IP 192.168.1.193
Первичный адрес MAC 74-F0-6D-70-8C-76
Сетевой адаптер 802.11n Wireless LAN Card (192.168.1.193)
Сетевой адаптер Microsoft Virtual WiFi Miniport Adapter
Сетевой адаптер Realtek PCIe GBE Family Controller
Периферийные устройства:
Принтер Fax
Принтер Microsoft XPS Document Writer
Контроллер USB2 Intel Cougar Point PCH — USB EHCI #1 Controller [B-3]
Контроллер USB2 Intel Cougar Point PCH — USB EHCI #2 Controller [B-3]
Контроллер USB3 VIA USB 3.0 eXtensible Host Controller
USB-устройство Generic USB Hub
USB-устройство Generic USB Hub
USB-устройство USB Serial Converter
USB-устройство USB-устройство ввода
USB-устройство USB-устройство ввода
USB-устройство Оборудование Майкрософт — USB-клавиатура
USB-устройство Составное USB устройство
Довольно часто в объявлениях пользователи пишут о продаже ПК люди пишут непонятную строку характеристики ACPI x32-based PC, эта строка вырвана из диагностического ПО аида64 или ее предшественников (Эверест и аида). На самом деле это не совсем верно ибо x32-based PC говорит о устройстве работающем на 32 разрядном процессоре, в аиде же эта часть надписи говорит о типе установленной ОС.
Подробнее о ACPI — это некий стандарт работы оборудования, суть которого в том что ОС управляет и мониторит питанием всех элементов ПК, ранее был стандарт APM. У них существенная разница в подходе управлением питания и на данный момент стандарт APM не актуален.
Для пользователя эта строчка абсолютно не информативна хоть с ACPI x64-based PC, хоть с x32-based PC — эти данные не позволяют как либо вменяемо оценить оборудование.
Что такое x32-based PC можно почитать тут, что такое ACPI x64-based PC тут.
Технологии ACPI и OnNow
В данной статье пойдет речь о вопросе управления энергопотреблением в современных компьютерах, выражаясь в специфической терминологии — Power Managment. Нет-нет, не закрывайте окно браузера, считая, что вас это не касается, поскольку вы не являетесь владельцем ноутбука и не состоите в партии зеленых. Речь пойдет о гораздо более интересных вещах: совместной инициативе Intel, Microsoft и Toshiba — ACPI, и одном из наиболее интересных ее практических воплощений в Windows98/NT — технологии OnNow, должной обеспечить «постоянно доступный PC».
Итак, что же собственно это такое — ACPI? Для начала, наверное, стоит расшифровать эту аббревиатуру. ACPI, в переводе на человеческий язык, означает Advanced Configuration and Power Interface. Или, говоря по-русски, «интерфейс расширенного конфигурирования и управления питанием». Его задача — обеспечить взаимодействие между операционной системой, аппаратным обеспечением и BIOS системной платы.
Посмотрим сначала, что творится в этой области сегодня. Большинство материнских плат, даже вышедших на базе таких относительно новых чипсетов как VIA Apollo MVP3 или Intel 440BX, не поддерживают расширенное управление энергопотреблением ACPI, несмотря на то, что по идее, ACPI-совместимым считается еще аж 430TX, а сам ACPI был анонсирован в апреле 1996 года. Его использование начинается только сегодня, по мере того, как для вышедших недавно материнских плат создаются новые версии BIOS, частично поддерживающие ACPI.
Итак, повторюсь, основная задача ACPI — способность разумно включать и выключать PC и подключенную к нему периферию. Причем, помимо принтеров, сетевых карт, дисководов CD-ROM и прочая и прочая, могут быть и такие, пока еще экзотические устройства, как телевизор, видеомагнитофон, музыкальный центр. И конечно речь идет об умной активации PC. Так, чтобы видеоплеер при установке в него кассеты смог разбудить PC, который включил бы телевизор.
Однако на данный момент ACPI может интересовать среднего пользователя только как теоретическая архитектура. Куда интереснее основанная на нем технология OnNow, уже сегодня могущая предоставить кое-какие вполне осязаемые приятности. Ее цели: убрать задержки при включении и выключении компьютера, позволить обслуживающим приложениям, таким как дефрагментация диска или проверка на вирусы выполняться в то время, когда компьютер выключен, и вообще, улучшить общую картину энергопотребления PC.
Режим S3 (настоящий OnNow) не может быть реализован из-за того, что существующие системные платы не имеют схем разделенного питания компонентов. Поэтому, до выхода следующего поколения материнок OnNow в полном объеме реализован быть не может. Пока же, путем модификации BIOS, можно добиться только некой эмуляции — S4.
Первой же материнской платой, которая будет иметь раздельные схемы питания для своих узлов и будет, таким образом, поддерживать режим S3 станет ASUS P2B-E — модификация давно известной системной платы P2B от Asustek. Кроме возможности suspend-to-memory, кстати, P2B-E будет иметь 5 слотов PCI. В серийное производство эта плата будет запущена в ноябре текущего года.
Но вернемся к нашим баранам. Спецификацию OnNow разрабатывала небезызвестная вам фирма Microsoft. Угадайте с трех попыток, кто по этой спецификации должен стать управляющим центром компьютера по всем этим вопросам? Первые два ответа можно не считать, правильно — Windows.
В общем, я полагаю, тенденцию вы уловили. Компьютер, постоянно находящийся наготове.
Обидно, однако, что пока с практическим использованием ACPI очень дела обстоят неважно. Возьмем самое яркое видимое и единственное на данный момент проявление ACPI в Windows 98 — Hibernate (по-русски — зимняя спячка). Проще говоря, это то самое хваленое сбрасывание данных из оперативной и видеопамяти на винт, с последующим быстрым восстановлением при включении компьютера. Таким образом, у нас получается аналог спящего режима, когда к вашим услугам предоставлены всегда запущенные приложения, но с нулевым потреблением энергии. Так вот, после появления в вашем компьютере версии BIOS, поддерживающей ACPI и некоторых манипуляций с установкой Windows 98, у вас действительно в Control Panel/Power Management появится пара вожделенных пунктов:
И соответствующий пункт в закладке Advanced:
Я уже не говорю о не так хорошо заметных проявлениях в списке системных устройств:
Как вам нравятся такие устройства, как ACPI System Button или Composite Power Source?
Но для появления всего этого после перепрошивки BIOS недостаточно просто переустановить Windows 98. Поддержка ACPI — опциональная, поэтому при инсталляции надо запустить SETUP с ключами /P J или же поправить реестр, добавив в ветке HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrent VersionDetect новую DWORD-переменную ACPIOption, установленную в 1.
Однако, небольшое но. Ох уж это но, всегда оно появляется. Как обычно, новая технология отказывается работать в Windows сразу и без ошибок. Эта печальная практика затронула и OnNow. В Windows 98 фактически он не работает. До выхода Service Pack 1 все ограничится этими красивыми, но, к сожалению, бесполезными картинками. Сегодня в Windows’98 не работают ни Hibernate, ни вообще, какие либо функции управления питанием через ACPI. Весь контроль над ними берет на себя APM. Взять тот же Composite Power Source (по-русски говоря, — блок питания в корпусе): при входе в спящий режим через ACPI он должен выключаться, а при входе через APM (сегодня) — не выключается. Улавливаете разницу в уровне контроля над железом?
Про Hibernate я вообще молчу. Там все отягощается еще и файловой системой. По крайней мере, по текущей информации, Hibernate не будет работать с FAT32. Только с FAT16. Кроме этого, для работы необходимы поддерживающие OnNow драйвера видеокарты. Пока их только делает ATI. Но и этого еще недостаточно. Многие из существующих CD ROM и SCSI-контроллеров с Hibernate также работать не могут. Остается надеяться, что к выходу SP1 (1999 год) Microsoft удастся справиться с этими проблемами. А производителям комплектующих — написать драйверы, позволяющие их продуктам корректно работать с ACPI. Уж больно не хочется видеть окно, возникающее сейчас на моем экране при попытке уйти в Suspend Mode:
Итог: любимый город может спать спокойно. По крайней мере, до 99 года, когда выйдет SP1 для Windows 98, а комплектующие и программы научатся работать в паре с ACPI.
Возможно, однако, что OnNow будет все же работать через BIOS, в обход операционной системы. Например, плате ASUS P2B-E не будет требоваться команда Windows 98 для перехода в S3 (suspend-to-memory), а уже давно вышедшая плата Aopen AX-6BC умеет делать S4 (suspend-to-disk) не пользуясь средствами операционной системы.
ACPI (Advanced Configuration and Power Interface) – это стандарт (спецификация), определяющий способы программного управления электропитанием компонентов компьютера с помощью встроенных средств ОС (операционной системы). Другими словами данная технология предназначена для управления состоянием персонального компьютера и энергопотреблением его компонентов.
Кроме управления электропитанием данный стандарт позволяет выполнять конфигурацию устройств Plug and Play.
Управление электропитанием и конфигурирование устройств Plug and Play осуществляется на уровне операционной системы (предшественник спецификации ACPI стандарт АРМ реализован на уровне BIOS), то есть ОС практически полностью управляет энергопотреблением и конфигурированием устройств ПК.
Спецификация ACPI требует поддержки со стороны, как материнской платы, так и подключаемых устройств.
Для технологии ACPI определяют несколько состояний и подсостояний системы (компьютера): глобальные состояния системы, состояния ЦП (центрального процессора) и состояния устройств.
Глобальных состояний системы различают четыре:
G0 (S0) – нормальное функционирование системы;
G1 (S1, S2, S3, S4) – режимы уменьшенного энергопотребления, о которых мы поговорим чуть ниже.
G2 (S5) – программное выключение. В данном состоянии компьютер выключен, но блок питания находится под напряжением.
G3 – состояние в котором питание полностью отключено от блока питания (БП).
Режимы уменьшенного энергопотребления (S1, S2, S3, S4):
S1 (Power On Suspend, POS, Doze) – режим энергосбережения, при котором отключается монитор, винчестер, но на центральный процессор и ОЗУ (модули оперативной памяти) питание подается, снижается частота системной шины. Процессорные кэши сброшены, процессоры не выполняют инструкции, отключен генератор тактовой частоты ЦП.
S2 (Standby, Standby Mode) – режим уменьшенного энергопотребления. При данном режиме происходит отключение монитора, винчестера. От ЦП отключается напряжение питания. Останавливаются все тактовые генераторы (продолжают работать только те тактовые генераторы, которые необходимы для работы оперативной памяти). Питание подается только на системную память (в ней хранится информация о состоянии системы).
S3 (Suspend to RAM, STR, Suspend) – ждущий режим. При данном режиме энергосбережения питание подается только на оперативную память (в ней хранится информация о состоянии системы). Все другие компоненты ПК отключены.
S4 (Suspend to Disk, STD, Suspend to Hard Drive, S4-Hibernation) – глубокий сон. При данном режиме энергосбережения текущее состояние системы записывается на винчестер, после чего следует отключение питание всех компонентов ПК.
Для стандарта ACPI определяют несколько состояний процессора:
C0 – процессор работает в номинальном режиме.
C1 (Halt) – состояние уменьшенного энергопотребления. Работа процессора приостановлена, но он может незамедлительно вернуться в рабочее состояние.
C2 (Stop-Clock) – работа процессора приостановлена. Но регистры и кэш остаются в рабочем состоянии. Процессор может немедленно приступить к обработке заданий.
C3 (Sleep) – режим сна. Процессор в спящем режиме не обновляет кэш.
Для технологии ACPI также определяют четыре состояния устройств:
D0 – устройство работает в номинальном режиме.
D1 – режим уменьшенного энергопотребления (устройство использует меньше энергии чем состояние D0).
D2 – режим уменьшенного энергопотребления (устройство использует меньше энергии чем состояние D1).
D3 – устройство выключено.
Интерфейс автоматического управления конфигурацией и питанием (ACPI) пришел на смену уже устаревшего АРМ (Advanced Power Management).
Настройка оборудования на раннем этапе загрузки средствами ACPI (на примере FreeBSD)
Несколько лет назад, когда CardBus и FireWire (IEEE 1394) еще были относительно «в ходу», многие производители ноутбуков в своей продукции использовали контроллеры семейства PCIXX21 и PCIXX11 фирмы Texas Instruments: один небольшой чип обеспечивал поддержку не только упомянутых интерфейсов, но и многих популярных стандартов сменных карт памяти.
Плохо гуглил
Оказывается, еще в 2006 г. Алекс Дубов написал Linux-драйвер для TI FlashMedia ридеров. Я скачал исходники и принялся их изучать, надеясь впоследствии доработать sdhci(4) или даже спортировать драйвер целиком. В первую очередь я посмотрел список поддерживаемых PCI vendor/device ids, чтобы сравнить с «нашим» драйвером. Он оказался небольшим:
Это тот самый кард-ридер, который не работает во FreeBSD, но работает в Linux. А вот кусок кода из sdhci.c (FreeBSD):
Можно заметить, что идентификатор устройства TI XX21/XX11 SD (0x803 4 104c) похож на мой (0x803 3 104c) с точностью до одной цифры. Кроме того, я обратил внимание, что контроллеры CardBus (0x8031104c) и FireWire (0x8032104c) не просто имеют схожие id’шки, но и PCI-селекторы всех устройств отличаются только номером функции, а устройство у них у всех одно и то же:
Вспомнив слова Саши Мотина о том, что чип на самом деле реализует оба контроллера (SDHCI и FlashMedia), я стал искать более целенаправленно, и вскоре наткнулся на еще один пост, а затем на сообщение в рассылке freebsd-mobile@ о похожей (но немного другой) проблеме на HP NC6220. Рабочее решение нигде не предлагалось, но, в отличие от большинства дискуссий, которые сводились к дурацким советам типа «попробуйте последнюю версию драйвера» или банальным «сожалею, но, похоже, вы в пролете», теперь, по крайней мере, стало понятно, что конфигурация чипа как-то отображается в дампе PCI function (а значит, возможно, ее получится поменять), а главное, что таки-доступна документация: PCIXXX21/PCIXXX11 Implementation Guide. И вот тут мне стало по-настоящему интересно.
Забегая вперед, скажу, что удивительнее всего то, что люди, раскопав практически datasheet на «капризный» чип, останавливались в шаге от решения проблемы. Я так и не нашел ни у кого рецепта, как правильно воспользоваться документацией (что и побудило меня написать этот пост). Но обо всем по порядку.
PCIXXX21/PCIXXX11 Implementation Guide — документ о 117 страницах для проектировщиков аппаратуры на базе этих контроллеров. Подробно его разбирать смысла не имеет; самое важное, что я из него почерпнул: контроллер действительно реализует пять функций: CardBus, 1394, FlashMedia, SD Host и SmartCard; начальная конфигурация обычно берется из EEPROM. Главный регистр конфигурации — General Control Register (раздел 12.4.28, с. 65) — находится по адресам 1Eh-1Fh в ROM (нас интересует только нулевой байт, т.к. именно там маскируются функции чипа) и соотвествует PCI offset 86h нулевой функции устройства. Теперь —
За дело
Интересно. Смотрим в табличку на 65-й странице pdf’ки, видим, что тройка в нижнем нибле (полубайте) равна типичному значению бит, отвечающих за top level arbitration, SmartCard socket power control и OHCI 1394, это нас мало интересует. А вот верхний нибл как раз маскирует (включает-выключает) логику остальных контроллеров (таблицу целиком не привожу опять же для экономии места):
0xD это 1101, т.е. установлены биты DISABLE_SC, DISABLE_SD и DISABLE_SKTB, а бит DISABLE_FM сброшен. Следовательно, чтобы «оживить» контроллер SD Host, нам, по логике, надо сбросить DISABLE_SD (разрешить), а DISABLE_FM, напротив, выставить (запретить). Маске 1011 соответсвует значение 0xB, т.е. по сути, нам надо поменять байт 0xD3 на 0xB3. Проблема, однако, в том, что сделать это нужно сильно заранее, до того, как чип будет проинициализирован, вернее, до того, как он определит, какие контроллеры включать. После того, как система загрузилась, менять конфигурацию бесполезно: все устройства уже «в строю». И вот тут нам на помощь приходит
Что такое ACPI и для чего оно нужно, я объяснять не стану: это выходит за рамки топика, к тому же, на Хабре уже был хороший пост на эту тему. В данном случае нам важен вопрос: можно ли пропатчить DSDT до инициализации чипа так, чтобы он включил нужный контроллер (SD Host) и выключил ненужный, для которого у нас нет драйвера (FlashMedia).
Я решил найти метод, который вызывается через какое-либо внешнее воздействие (или внутреннее, но периодическое, типа опроса батарейки), при этом практически не затрагивая работу «железа». Изучая код DSDT, я наткнулся на любопытный кусок:
Больше нигде метод \_SB.PCI0.PEGP.VGA.SWIH не вызывается, а его название намекает, что это некое переключение дисплея. На клавиатуре многих ноутбуков одна из функциональных клавиш в сочетании с Fn-модификатором переключает видео-вывод с внутреннего дисплея на внешний. На моей «версе» это F3. Попробуем модифицировать код метода следующим образом:
Чтобы FreeBSD использовала нашу таблицу при загрузке, добавим в /boot/loader.conf следующие строчки:
Если все сделано правильно, и наш расчет оправдался, то при нажатии на Fn-F3 мы будем видеть на консоли сообщения ядра (повышенной яркости) о том, что клавиша Fn-F3 была нажата. Теперь, когда мы более-менее умеем взаимодействовать с ACPI, самое время попробовать
Достучаться до регистра 86h
Физические адресные пространства всевозможных устройств (оперативная память, порты ввода-вывода, платы расширения, CMOS, IPMI и пр.) отображаются в пространство имен ACPI в виде т.н. операционных регионов (OperationRegion), внутри которых обычно выделяются битовые поля (Field), состоящие из одного или нескольких поименованных «виртуальных регистров», или field units (параграф 19.5.96, с. 782 спецификации). OperationRegion для нашего контроллера может выглядеть, например, так:
Или даже проще, если в OperationRegion объявить не все 256 байт, а только интересующий нас, и не выделять отдельные биты в конфигурационном регистре:
Хорошо, но откуда взялась шестая шина? И где она в DSDT? Посмотрим лог загрузки ядра ( dmesg ):
Получается, pci6 — это дополнительная, «виртуальная» шина на мосту PCI-PCI. Номер 6 (как и 4 для моста) ей достался потому, что FreeBSD так распределила устройства. Внутри DSDT никаких шести шин и четырех мостов, конечно, нет. Мост — Device (PCIB) — там ровно один, как и ожидалось. Полностью наше описание должно выглядеть так (привожу краткий вариант, не раскладывая регистр на отдельные биты):
Теперь мы можем заменить наш отладочный код в методе _Q0C на что-то более осмысленное:
Пересобираем ASL, перезагружаемся, жмем Fn-F3. Если мы все сделали верно, то должны увидеть то же самое значение, которое мы ранее читали через pciconf(8) :
(Реализация функции для записи значения регистра напрямую в видеопамять оставляется читателю в качестве легкого упражнения.)
Нам остается ответить на самый главный вопрос: получится ли изменить значение регистра и заставить чип сконфигурировать себя так, как нам нужно?
Стандарт ACPI определяет специальный метод для инициализации устройств, _INI (параграф 6.5.1, с. 349). Добавим в наше устройство следующий код:
Результат
Вроде все работает, ну и славно. Можно убирать отладочный код из DSDT и наслаждаться жизнью пользоваться кард-ридером.

.jpg)



