Данный вопрос обсуждался, но возникают непонятки, да и на практике не могу разобраться, как назначается базовые адреса, да и как выделяется диапазон памяти?
Понятно конечно, что при установки младших 4 битов в значение "0000" (которые не изменяются) указываю, что требуется адрес для памяти ввода-вывода и этот адрес должен располагаться где-то в 32-разрядном адресном пространстве. А вот указание требуемого объема памяти, надо что-либо указывать?
Если требуется 64 байта тогда первые 6 бит указывают на мою память, а остальные фиксирована (указывает BIOS). Не надоли как-то указать эти 6 бит - 4 из которых имеют значение "0000" (смотреть выше) и остальные, например, установить в "1", а оставшиеся 26 бит - "0"?
После этого BIOS считывает установленные значения и записывает адрес в PCI устройство. И вот здесь возникает вопрос этот пройдённый адрес от BIOS - указатель на начало адресного пространство, которое необходимо сохранить или PCI устройство должно его как-то обработать?
Сообщение отредактировал GrAlexI - Dec 28 2011, 08:57
|