OSDev

для всех
Текущее время: 30 апр 2024, 04:46

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
СообщениеДобавлено: 29 май 2012, 10:22 

Зарегистрирован: 28 май 2012, 09:31
Сообщения: 28
Теоретически код SMM должен иметь доступ ко всем аппаратным ресурсам, это подразумевется по определению. Тем не менее, документация Intel четко говорит о том, что сегменты в этом режиме имеют лимиты = 0xFFFFFFF. Выходит, что этот режим не такой уж и "привилегированный"? Или есть какие-то обходные пути?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 май 2012, 11:26 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
SMM появился в 80386SL, когда о выходе за пределы 32-разрядного физического адреса и мыслей не было. Где-то слышал, что современные BIOSы при необходимости адресации за пределами этой памяти временно переключаются из SMM в длинный режим, а потом возвращаются обратно (естественно, делается это с полностью запрещёнными прерываниями).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 май 2012, 11:51 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
SMM нужен в основном для управления электро питанием, до тех пор покан не включиться драйвер ACPI. Плюс эмуляция железа. Пока нет железа которое работает выше 4ГБ поэтому не актуально и ещё лет 10-20 будут не актуаьно. А там глядишь квантовые компьютеры пойдут.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 май 2012, 12:06 

Зарегистрирован: 22 май 2007, 15:29
Сообщения: 283
SMI-обработчики BIOS-ов вполне успешно переходят в защищенный режим из режима SMM (который есть подвид реального). Причем выходить обратно не нужно: инструкция RSM сбрасывает режим сама. Попробуйте перейти из обработчика в 64-битный режим, по идее должно отработать нормально. Небольшая заморочка может быть со страничной адресацией, но можно поставить 1 ГБ страницы, тогда таблиц будет меньше.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 май 2012, 22:33 
Аватара пользователя

Зарегистрирован: 20 апр 2011, 10:54
Сообщения: 145
А зачем вам SMM (если не секрет)?

Если для личных нужд, тогда понятно. А если хотите разобраться:
информация к размышлению: в английской вики написано что отдельные SMBIOSы имеют проблемы с Long Mode:
http://wiki.osdev.org/%228042%22_PS/2_Controller#USB_Legacy_Support писал(а):
The SMM BIOS that's providing the PS/2 USB Legacy Support may not support extended memory techniques or Long Mode and may cause system crashes.

Т. е. архитектура ПК построена так, что память выше 4Гб BIOSу и не нужна. И потом, если ОС поддерживает Long Mode, вряд ли она будет использовать Legacy Support.

_________________
Found a CPU. LAPIC ID: 00


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 июн 2012, 15:28 

Зарегистрирован: 28 май 2012, 09:31
Сообщения: 28
grindars писал(а):
SMI-обработчики BIOS-ов вполне успешно переходят в защищенный режим из режима SMM (который есть подвид реального). Причем выходить обратно не нужно: инструкция RSM сбрасывает режим сама. Попробуйте перейти из обработчика в 64-битный режим, по идее должно отработать нормально.

Мне не совсем ясно, что вы имеете в виду. Как я понял вы предлагаете следующую схему:
1)обработчик SMI создает в "обычной" памяти некий код, предназначенный для получения доступа к адресам выше 4 ГБ, назовем его "хэндлер64"
2)Куда-то сохраняет текущее содержимое State Save Map
3)Заполняет State Save Map значениями, необходимыми для передачи управления "хэндлер64"
4)Выполняет RSM
5) "хэндлер64" копирует данные из памяти старше 4ГБ по адресам ниже 4ГБ (т.к. в режиме SMM процессор может адресовать только нижние 4ГБ)
6)Генерирует SMI
7)SMI-хандлер обрабатывает скопированные данные
8) Шаги 4-7 повторяются, пока не будет обработана вся память выше 4ГБ
9) Восстанавливает сохраненное состояние State Save Map
10) Выполняет RSM.
Я правильно понял? Теоретически это работать может, но по-моему жутко извращенное решение.
Или вы имеете в виду, что процессор переходит в защищенный режим (и далее в 64-битный), не выходя из SMM? По-моему это не будет работать в принципе. Так как для переходя в 64-битный режим необходимо включение PAE, а в мануалах четко сказано:
The addressable SMRAM address space ranges from 0 to FFFFFFFFH (4 GBytes).
(The physical address extension — enabled with the PAE flag in control register
CR4 — is not supported in SMM.)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB