Spoiler:
K : Attach Interrupt 6 Handler 8003070B
K : Set IDE IRQ6 return code 80059C10
Intel videocard detected, PciId=8086:0102, which is known
EDID successfully read:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
K : edx=00036881
K : has_ownership
K : edx=00036881
K : has_ownership
K : HCSPARAMS=00200002, HCCPARAMS=00036881
K : attaching to IRQ 0A
K : Attach Interrupt 10 Handler 8002E3E0
K : EHCI controller at 00:D0 with 2 ports initialized
K : HCSPARAMS=00200002, HCCPARAMS=00036881
K : attaching to IRQ 03
K : Attach Interrupt 3 Handler 8002E3E0
K : EHCI controller at 00:E8 with 2 ports initialized
K : Attach Interrupt 1 Handler 800325D0
K : IRQ1 error code 80059C4C
K : kernel SVN r3785
K : 4 CPU detected
K : BAR0 01F0
K : BAR1 03F4
K : BAR2 0170
K : BAR3 0374
K : BAR4 0000
K : IDEContrProgrammingInterface 0000
K : IDE_Interrupt 0202
K : [2] EHCI 80991094: status of port 0 changed to 00001803
K : [2] EHCI 80995094: status of port 0 changed to 00001803
Loading RTL8169 driver
Hooking into device, dev:0, bus:3, irq:A, addr:0000DE00
K : [12] EHCI 80991094 port 0 state is 00001801
K : [12] EHCI 80991094: port 0 has HS or FS device, resetting
K : [12] EHCI 80995094 port 0 state is 00001801
K : [12] EHCI 80995094: port 0 has HS or FS device, resetting
K : [14] EHCI 80991094: reset port 0 done
K : [14] EHCI 80995094: reset port 0 done
K : [16] EHCI 80991094 status of port 0 is 00001005
K : [16] EHCI 80995094 status of port 0 is 00001005
K : address set in device
K : async advance doorbell
K : address set in device
K : async advance doorbell
K : async advance int
K : address set for controller
K : async advance int
K : address set for controller
K : async advance doorbell
K : async advance doorbell
K : async advance int
K : async advance int
K : device descriptor: 12 01 00 02 09 00 01 40 87 80 24 00 00 00 00 00 00 01
K : found USB device with ID 8087:0024, 1 configuration(s)
K : device descriptor: 12 01 00 02 09 00 01 40 87 80 24 00 00 00 00 00 00 01
K : found USB device with ID 8087:0024, 1 configuration(s)
K : config descriptor: 09 02 19 00 01 01 00 E0 00 09 04 00 00 01 09 00 00 00 07 05 81 03 01 00 0C
K : USB interface class/subclass/protocol = 09/00/00
K : config descriptor: 09 02 19 00 01 01 00 E0 00 09 04 00 00 01 09 00 00 00 07 05 81 03 02 00 0C
K : hub config: 09 29 06 09 00 32 00 00 FF
K : found hub with 6 ports
K : USB interface class/subclass/protocol = 09/00/00
K : hub config: 0B 29 08 09 00 32 00 00 00 FF FF
K : found hub with 8 ports
========= tmpdisk 0.45 =========
trying to add disk
disk size is not specified
10% from free RAM will be used, new DiskSize: 324 MB
operation completed successfully
K : final: hub 808246D0 port 0 status 0101 change 01
K : final: hub 808247D0 port 2 status 0101 change 01
K : final: hub 808247D0 port 4 status 0101 change 01
K : address set in device
K : async advance doorbell
K : async advance int
K : address set for controller
K : async advance doorbell
K : async advance int
K : device descriptor: 12 01 00 02 00 00 00 08 6D 04 62 C0 00 31 01 02 00 01
K : found USB device with ID 046D:C062, 1 configuration(s)
K : config descriptor: 09 02 22 00 01 01 00 A0 31 09 04 00 00 01 03 01 02 00 09 21 10 01 00 01 22 47 00 07 05 81 03 06 00 0A
K : USB interface class/subclass/protocol = 03/01/02
K : USB HID device detected
K : report descriptor: 05 01 09 02 A1 01 09 01 A1 00 05 09 19 01 29 08 15 00 25 01 95 08 75 01 81 02 95 00 81 03 05 01 09 30 09 31 16 01 F8 26 FF 07 75 0C 95 02 81 06 09 38 15 81 25 7F 75 08 95 01 81 06 05 0C 0A 38 02 95 01 81 06 C0 C0
K : address set in device
K : async advance doorbell
K : async advance int
K : address set for controller
K : async advance doorbell
K : async advance int
K : device descriptor: 12 01 10 01 00 00 00 08 2A 06 01 02 00 01 00 01 00 01
K : found USB device with ID 062A:0201, 1 configuration(s)
K : config descriptor: 09 02 3B 00 02 01 00 A0 32 09 04 00 00 01 03 01 01 00 09 21 10 01 00 01 22 41 00 07 05 81 03 08 00 0A 09 04 01 00 01 03 01 02 00 09 21 10 01 00 01 22 98 00 07 05 82 03 04 00 0A
K : USB interface class/subclass/protocol = 03/01/01
K : USB HID device detected
K : USB interface class/subclass/protocol = 03/01/02
K : USB HID device detected
K : report descriptor: 05 01 09 06 A1 01 05 07 19 E0 29 E7 15 00 25 01 75 01 95 08 81 02 95 01 75 08 81 01 95 03 75 01 05 08 19 01 29 03 91 02 95 05 75 01 91 01 95 06 75 08 15 00 26 FF 00 05 07 19 00 2A FF 00 81 00 C0
K : report descriptor: 05 01 09 02 A1 01 85 05 09 38 09 30 09 31 15 81 25 7F 75 08 95 03 81 06 C0 05 0C 09 01 A1 01 85 01 19 00 2A 3C 02 15 00 26 3C 02 95 01 75 10 81 00 C0 05 01 09 80 A1 01 85 02 19 81 29 83 25 01 75 01 95 03 81 02 95 05 81 01 C0 05 09 09 01 A1 01 85 04 0A 56 01 0A 57 01 0A 58 01 0A 59 01 0A 5A 01 0A 5B 01 0A B2 00 0A 06 02 15 00 25 01 75 01 95 08 81 02 C0 05 09 09 01 A1 01 85 06 15 00 25 01 75 01 95 15 81 01 0A 5C 01 75 01 95 01 81 02 75 01 95 02 81 01 C0
K : final: hub 808247D0 port 4 status 0503 change 10
K : address set in device
K : async advance doorbell
K : async advance int
K : address set for controller
K : async advance doorbell
K : async advance int
K : device descriptor: 12 01 00 02 00 00 00 40 51 09 42 16 00 01 01 02 03 01
K : found USB device with ID 0951:1642, 1 configuration(s)
K : config descriptor: 09 02 20 00 01 01 00 80 32 09 04 00 00 02 08 06 50 00 07 05 81 02 00 02 FF 07 05 02 02 00 02 FF
K : USB interface class/subclass/protocol = 08/06/50
K : USB mass storage device detected
K : 1 logical unit(s)
K : media is ready
K : 0 attempts, 24 ticks
K : peripheral device type is 00
K : direct-access mass storage device detected
K : sector size is 512, last sector is 30233587
K : Attach Interrupt 10 Handler 809A4A54
ETH_input: Unknown packet type=0018
ETH_input: Unknown packet type=0888На рестарте после
K : IDEContrProgrammingInterface 0000
K : IDE_Interrupt 0202
пишет
'K : warning: relinking handler from IRQ3 to IRQ10
и всё виснет.
Update. Нашел ошибки в коде.
Code: Select all
stdcall attach_int_handler, 14, IDE_common_irq_handler, 0
DEBUGF 1, "K : Set IDE IRQ14 return code %x\n", eax
stdcall attach_int_handler, 15, IDE_common_irq_handler, 0
DEBUGF 1, "K : Set IDE IRQ15 return code %x\n", eax
stdcall enable_irq, 14 <<<<<<лишний вызов, attach_int_handler уже размаскировала линию irq
stdcall enable_irq, 15 <<<<<<лишний вызов
jmp .enable_IDE_interrupt
;--------------------------------------
.sata_ide:
cmp ax, 0x0185
je .sata_ide_1
cmp ax, 0x018f
jne .end_set_interrupts
;--------------------------------------
.sata_ide_1:
cmp [IDEContrRegsBaseAddr], 0
je .end_set_interrupts
mov ax, [IDE_Interrupt]
movzx eax, al
stdcall attach_int_handler, eax, IDE_common_irq_handler, 0
DEBUGF 1, "K : Set IDE IRQ%d return code %x\n", [IDE_Interrupt]:1, eax
stdcall enable_irq, eax <<<<<<в eax содержится адрес структуры обработчика
Update 2.
Mario
Думаю, твой код здесь ни при чём.
Методом научного тыка установил, что рестарт с включённым APIC не приводит к зависанию ядра. Когда я правил sound.asm у меня в образе лежал devices.dat и ядро работало в режиме apic. Потом я обновлял образ, когда менял /addappl на /KolibriOS, ядро работало в дефолтном PIC и перестало рестартовать.