Board.KolibriOS.org
http://board.kolibrios.org/

Коментарии к исходникам
http://board.kolibrios.org/viewtopic.php?f=4&t=1814
Page 1 of 2

Author:  ilya [ Wed Jul 27, 2011 12:23 pm ]
Post subject:  Коментарии к исходникам

Имеется файл kernel\detect\biosdisk.inc. (kolibri 0.7.7.0)
Что находится в [es:0x907F], в 0x9080, в [es:0x475]
Что означает preboot_biosdisk

Ещё, не подскажите для чего Kolibri нужно знать все диски что видит сам BIOS?

Author:  Mario [ Wed Jul 27, 2011 1:35 pm ]
Post subject:  Re: Коментарии к исходникам

Костыль /bdX/X/ для SATA и USB

Author:  CleverMouse [ Wed Jul 27, 2011 1:42 pm ]
Post subject:  Re: Коментарии к исходникам

kernel/memmap.inc
Alt+F7 в kfar
Ralf Brown's interrupt list

Author:  ilya [ Wed Jul 27, 2011 8:09 pm ]
Post subject:  Re: Коментарии к исходникам

Здрасте опять. Кто нибуть пытался дать имена переменным в kernel/memmap.inc ?
Нипротив если я начну?

Author:  art_zh [ Wed Jul 27, 2011 8:21 pm ]
Post subject:  Re: Коментарии к исходникам

ilya
привет!
Посмотри сначала const.inc - там очень многое поименовано.

Author:  ilya [ Wed Jul 27, 2011 9:15 pm ]
Post subject:  Re: Коментарии к исходникам

Спасибо.

Ну вобщем ближе к делу. Пользуюсь 0.7.7.0, другово недоступною

переписан kernel/bus/pci/pci16.inc
Code:
$Revision: 593 $

;---------------------------------------------------------------------------------------------------
; code determines which mechanism to access PCI bus is available and suported by the bus
;---------------------------------------------------------------------------------------------------

        push  ds
        xor   edi, edi
        mov   ds, di
        mov   dword [BOOT_PCI_DATA], 1            ; default to mechanism 1 and zero other bytes
        mov   dword [BOOT_PCI_DATA+4], edi
        mov   ax, 0xb101
        int   0x1a
        test  ah, ah                            ; apparently command decision has been made to give
        jnz   @f                                ;        some slack to the fact of PCI BIOS absence

        ; bit 1 of AL indicates presence of mechanism 2
        bt    ax, 1                             ; bit_1 -> CF
        adc   byte [BOOT_PCI_DATA], 0             ; 1 += CF
        mov   [BOOT_PCI_DATA+1], cl               ; numerically highest PCI bus in system
        mov   [BOOT_PCI_DATA+2], bx               ; bl-minor version, bh-major version
        mov   [BOOT_PCI_DATA+4], edi              ; address of protected mode entry

        ; by the way mechanism #1 is good and #2 is bad because legacy
@@:
        pop   ds


начало kernel/bus/pci/pci32.inc (прямо в глаза бросались старые прыжки)
Code:
$Revision: 750 $


align 4
pci_api:

        cmp   [pci_access_enabled], 1
        jne   .no_pci_access_for_applications

        cmp   al, 10
        ja    .no_pci_access_for_applications
        cmp   al, 7
        ja    pci_write_reg
        jz    .no_pci_access_for_applications
        cmp   al, 3
        ja    pci_read_reg
        jz    .no_pci_access_for_applications
        test  al, al
        jz    .fn_0_version

        neg    eax
        movzx  eax, byte [BOOT_VAR+BOOT_PCI_DATA+2+eax]        ; get either highest bus # or access method
        jmp    .exit

.fn_0_version:
        movzx  eax, word [BOOT_VAR+BOOT_PCI_DATA+2]            ; PCI function 0: get pci version (AH.AL)
.exit:
ret
.no_pci_access_for_applications:
        mov   eax, -1
        jmp   .exit           


Тут ещё такой вопрос. Далее в pci32.inc вы читаете по 1,2,4 бата. Для чего лишний код? Помоему вобще все запросы к PCI чипсет переделывает в DWORD запросы.

Author:  XVilka [ Wed Jul 27, 2011 9:48 pm ]
Post subject:  Re: Коментарии к исходникам

почему не svn - есть вебморда, там же можно скачать архив http://websvn1.kolibrios.org/listing.ph ... Kolibri+OS

Просто после релиза очень много правок было

Author:  SoUrcerer [ Wed Jul 27, 2011 9:51 pm ]
Post subject:  Re: Коментарии к исходникам

Проверь на всякий случай redmine.kolibrios.org.С версии 0.7.7.0 в ядре около тысячи правок (или чуть меньше)

Author:  Mario [ Wed Jul 27, 2011 9:56 pm ]
Post subject:  Re: Коментарии к исходникам

Sorcerer wrote:
С версии 0.7.7.0 в ядре около тысячи правок (или чуть меньше)

В ядре ли? Может правок вообще.

Author:  ilya [ Wed Jul 27, 2011 10:19 pm ]
Post subject:  Re: Коментарии к исходникам

Каким образом тут заливка кода устроена.
pci16.inc можно лить, там возможное неопределённое состояние EDI исправлено (если верить RIBL), плюс меньший размер
pci32.inc поменялся не особо. Я в принципе не в ввосторге что используется не кэшируемая память, хотя удобно.(Я так понимаю это во время прерывания?)

Что гоcпода главные думают про чтение и запись только двордом?

Author:  Serge [ Wed Jul 27, 2011 10:34 pm ]
Post subject:  Re: Коментарии к исходникам

A side эффект от записи ? И вместо одной операции записи потребуется ещё и чтение.

Author:  ilya [ Wed Jul 27, 2011 10:45 pm ]
Post subject:  Re: Коментарии к исходникам

PCI? Незнаю. У вас там и так 3-5 инструкции на запись 1 одного значения. но может ваш вариант правильнее.

Author:  art_zh [ Wed Jul 27, 2011 10:55 pm ]
Post subject:  Re: Коментарии к исходникам

ilya wrote:
pci32.inc поменялся не особо. Я в принципе не в ввосторге что используется не кэшируемая память, хотя удобно.(Я так понимаю это во время прерывания?)

Что гоcпода главные думают про чтение и запись только двордом?

(я тут не главный, но с pci32.inc работал плотно)
"не кэшируемая память" - это про 12-ю подфунцию что ли?
там стоит отображение нового конфигурационного пространства (в стиле PCI Express) на пользовательское адресное пространство.
Эти адреса не могут быть кэшируемыми, потому что прямо относятся к вводу/выводу.

Для сведения: многие регистры конфигспейса имеют словную и даже байтовую гранулярность. Читать их двордом конечно можно, но записывать - нет, иначе зацепишь соседей.

Author:  ilya [ Wed Jul 27, 2011 11:04 pm ]
Post subject:  Re: Коментарии к исходникам

нет я имел ввиду что вот это
Code:
f62call:
        dd      pci_fn_0
        dd      pci_fn_1
        dd      pci_fn_2
        dd      pci_service_not_supported       ;3
        dd      pci_read_reg            ;4 byte
        dd      pci_read_reg            ;5 word
        dd      pci_read_reg            ;6 dword
        dd      pci_service_not_supported   ;7
        dd      pci_write_reg           ;8 byte
        dd      pci_write_reg           ;9 word
        dd      pci_write_reg           ;10 dword
if defined mmio_pci_addr
        dd      pci_mmio_init           ;11
        dd      pci_mmio_map            ;12
        dd      pci_mmio_unmap          ;13
end if

не будет сидеть в кеше, и это как я понимаю во время прерывания. Хотя сами обращения к PCI и так медленные, но всё же ёщё медленнее их делать не надо.

Quote:
Что гоcпода главные думают про чтение и запись только двордом?

А это я имел ввиду запись в PCI config space.

Author:  art_zh [ Wed Jul 27, 2011 11:16 pm ]
Post subject:  Re: Коментарии к исходникам

Большая часть ядра (не вся, к сожалению) и так сидит в кэше постоянно. Главная задержка - обращение к портам контроллера PCI.
Если у тебя новый комп и хочется побыстрее - определи mmio_pci_addr для своего устройства, перекомпилируй ядро и работай с конфигспейсом напрямую.

Quote:
А это я имел ввиду запись в PCI config space.
Низзя. То есть вообще низзя.

Page 1 of 2 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/