(fwd) Re: PnP soundcard configuration

Andrey Gerzhov (kittle@freeland.alex-ua.com)
Tue, 7 Sep 1999 09:51:22 +0300 (EEST)

-- forwarded message --
Path: freeland.alex-ua.com!routki.ki.yurteh.net!carrier.kiev.ua!srcc!Gamma.RU!ddt.demos.su!not-for-mail
From: Valentin Davydov <val@sqdp.trc-net.co.jp>
Newsgroups: fido7.ru.unix.bsd
Subject: Re: PnP soundcard configuration
Date: 6 Sep 1999 10:46:36 +0400
Organization: Demos online service
Lines: 138
Sender: fido7@ddt.demos.su
Approved: <gateway@fido7.ru>
Message-ID: <7qvnog$f38$1@ddt.demos.su>
References: <2719006870@f266.n5030.z2.fidonet.ftn>
NNTP-Posting-Host: ddt.demos.su
X-Trace: ddt.demos.su 936600398 17006 194.87.13.37 (6 Sep 1999 06:46:38 GMT)
X-Complaints-To: gatekeeper@fido7.ru
NNTP-Posting-Date: 6 Sep 1999 06:46:38 GMT
X-BeforeModerator-Path: not-for-mail
X-BeforeModerator-NNTP-Posting-Host: sqdp-davy.trc-net.co.jp
X-BeforeModerator-X-Trace: ddt.demos.su 936600144 15464 202.239.220.63 (6 Sep 1999 06:42:24 GMT)
X-BeforeModerator-X-Complaints-To: gatekeeper@fido7.ru
X-BeforeModerator-NNTP-Posting-Date: 6 Sep 1999 06:42:24 GMT
Xref: freeland.alex-ua.com fido7.ru.unix.bsd:12218

> From: Boris Aksenov <Boris.Aksenov@p13.f30.n5049.z2.fidonet.org>
> Date: Fri, 03 Sep 99 14:54:18 +0400
>
> >> CS> загpузки. Т.е. пpо PCI Ethernet'ину можешь позабыть -- не
> >> CS> увидит её FreeBSD...
> >> гон. PnP к PCI ну никак не относится
>
> IN> Что гон это факт, но вот на тему pnp и pci ты бы выражался
> IN> поосторожнее... Мне лень искать собственную телегу на тему
> Очень интеpесно, и как все-таки pnp завязан на pci ?
> IN> того как pnp вместе с pci работает, может у кого ссылка на
> IN> deja сохранилась?

Вот это - оно?

Deja> Subject: Re: Драйвера для EN2000
Deja> Date: 1999/06/19
Deja> Author: Igor Nikolaev <Igor.Nikolaev@f266.n5030.z2.fidonet.org>
Deja>
Deja> Aleksey V.Pochyotnov <aleks@dzs.nnn.tstu.ru> wrote:
Deja> >> > Если это isa карты - то нет, все isa слоты идентичны.
Deja> >> > Если pci карты - то да, все pci слоты пронумерованы.
Deja> >> А нельзя ли подpобнее pазвеpнуть сию мысль?
Deja> > Вроде и так ясно,
Deja> > на каждом pci своё irq жёстко привязано, обычно 9,10,11,12.
Deja> > А на isa этого нет. Если на карточке отключен PnP, то
Deja>
Deja> Мда.
Deja>
Deja> В связи с появлением сказок о науке и технике
Deja> придётся разворачивать :-)
Deja>
Deja>
Deja> Все isa слоты имеют совершенно одинаковую распайку.
Deja> То есть каждая ножка каждого слота контачит с соотв.
Deja> ногой всех других isa слотов (в глубине eisa это
Deja> не так!).
Deja>
Deja> В результате определить в каком isa слоте торчит
Deja> карта, машине совершенно невозможно. Далее говорить
Deja> об распайке игровой приставки к магнитофону и
Deja> телевизору под названием ibm pc мне лень.
Deja>
Deja>
Deja> В pci всё по другому. Имеются сигналы арбитража
Deja> шины REQ и GNT, заведённые радиально на каждый
Deja> из слотов, позволяющие произвести арбитраж шины.
Deja> Это делает pci настоящей шиной.
Deja>
Deja> Ограничиение количества pci слотов на одном
Deja> контроллере обычно происходит именно отсюда
Deja> (популярные контроллеры PMC i82441FX имеют
Deja> пять сигналов req/gnt, один пользуется внутри
Deja> и четыре на слоты, хочешь больше - ставь бридж).
Deja>
Deja>
Deja> Теперь на тему выяснения что где в слотах торчит.
Deja> Есть сигнал IDSEL, Initialization Device Select,
Deja> который специально для сего предназначен.
Deja>
Deja> Именно эта радиальная верёвка используется чтобы
Deja> подёргать каждый слот и выдав на C/BE[0:3]
Deja> команду 1010 "configuration read" прочитать чего
Deja> же там у нас воткнуто. У каждой железки может
Deja> быть до 256 байт на эту тему.
Deja>
Deja> Доступ осуществляется следобразом:
Deja>
Deja> Имеются регистры CONFADD с адресом 0x0CF8
Deja> 0:1 Reserved зарезервировано
Deja> 2:7 REGNUM номер регистра
Deja> 8:10 FUNCNUM номер функции
Deja> 11:15 DEVNUM номер устройства
Deja> 16:23 BUSNUM номер шины
Deja> 24:30 Reserved зарезервировано
Deja> 31 CONE Разрешение режима конфигурации
Deja>
Deja> CONFDATA с адресом 0x0CFC, отсюда пишут/читают.
Deja> Hе пробуйте это делать! Мало того что тачку
Deja> подвесите, так ещё некоторым платам можно
Deja> потроха насмерть попортить. Миринда :-)
Deja>
Deja> Так вот, при номере шины BUSNUM=0 случаются чудеса.
Deja> CONFAD[2:10] мапируется на шину AD[2:10] задавая адрес, а
Deja> CONFAD[11:15] дешифрируется на верёвки AD[11:31] для
Deja> того чтобы железо сожрало его в регистре и родило IDSEL.
Deja> (значению 1 соотв AD12, а значению 20 - AD31,
Deja> DEV=0 сожрано внутри чипов).
Deja>
Deja> Если же указан отличный от нуля номер шины, то идёт
Deja> обычное конфигурационное чтение без всяких IDSEL.
Deja>
Deja> Таким образом общее число pci слотов на
Deja> популярных чипсетах (82441) ограничено двадцатью.
Deja>
Deja>
Deja> Далее, о прерываниях. Про разные там irqN на pci
Deja> можно смело забыть. Hа каждом pci слоте есть 4 запроса
Deja> прерываний, их зовут A, B, C и D. Платы на PCI достаточно
Deja> интеллектуальны чтобы не передраться (при инициализации
Deja> они торжественно снабжаются векторами, к дурдому
Deja> с порождением команд процессора на isa это не имеет
Deja> ни малейшего отношения).
Deja>
Deja> Контроллер прерываний (например IOAPIC i82093AA) имеет
Deja> аж 24 дырки на тему запросов перрываний, из них обычно
Deja> 16 идут от isa, 4 от pci и остальные откуда попало.
Deja> Все запросы микшируются на табличке из 24 слов по 64 бита.
Deja> Каждое слово содержит флажки на тему edge/level
Deja> (то есть по фронту или уровню), полярности, приоритетов,
Deja> ID, вектора и ещё чего за давностью не припомню.
Deja> Желающие могут самостоятельно почитать доки у intel'я.
Deja>
Deja> В итоге *все прерывания можно посадить на один вектор*.
Deja>
Deja> Для ISA так не делают - так как собственно верёвочка
Deja> за которую дергает карта, определяет саму карту. Или
Deja> придётся перебирать все. Вдобавок в isa физика
Deja> интерфейса (какой-то молодец при разработке IBM PC
Deja> придумал что irq пойдёт *высоким* уровнем потому
Deja> как так распаялось удобно) не позволяет нормально
Deja> объединять карты с одинаковым irq.
Deja>
Deja> Hо для pci так делают, ведь инициатор прерывания
Deja> однозначно и без проблем определяется в процессе
Deja> обработки прерывания по выставляемому им вектору
Deja> (8 бит). Иначе говоря, нормально, если все pci
Deja> карты висят на одном программном irq. Я обычно
Deja> стараюсь повесить вместе с мышкой на irq12.
Deja> Тут важно чтобы bios не полные чайники писали.
Deja>
Deja>
Deja> Всё. Прошу желающих подискутировать предварительно
Deja> прочитать документацию и подержать в руках паяльник :-)
Deja>
Deja> --
Deja> Игорь Hиколаев

-- end of forwarded message --

-- 
С тем, что не помешает никогда,
                                               Kittle