Opened 10 years ago

Closed 10 years ago

Last modified 5 years ago

#4390 closed bug (fixed)

boot fails after 4th icon is lit using default ata stack

Reported by: rudolfc Owned by: marcusoverhagen
Priority: normal Milestone: R1/alpha2
Component: Drivers/Disk/ATA Version: R1/pre-alpha1
Keywords: Cc:
Blocked By: Blocking: #4535
Has a Patch: no Platform: All

Description

The boot stops after lighting the fourth icon.

apparantly this is the problem: "ata 0 error: timeout waiting for interrupt"

Booting fails with default enabled DMA, but succeeds with disabled DMA.

tested on build hrev32839.

Attachments (8)

werk_boot_fout_dma.TXT (33.7 KB ) - added by rudolfc 10 years ago.
failed boot with DMA enabled
werk_boot_disabled_DMA (65.9 KB ) - added by rudolfc 10 years ago.
succeeded boot with DMA disabled
r32884_no_dma (56.5 KB ) - added by rudolfc 10 years ago.
hrev32884 with disabled DMA - succesfull boot
werk_boot_dma_3.TXT (36.0 KB ) - added by rudolfc 10 years ago.
hrev32884 boot fail, DMA enabled
werk_boot_dma_5.TXT (58.9 KB ) - added by rudolfc 10 years ago.
'failed' DMA boot with latest ATA driver
werk_boot_dma_9.TXT (35.3 KB ) - added by rudolfc 10 years ago.
hrev32978 ata manager and generic driver with dma - fail
werk_boot_dma_10.TXT (46.4 KB ) - added by rudolfc 10 years ago.
boot with DMA enabled, ints dumped
werk_boot_dma_14.TXT (67.1 KB ) - added by rudolfc 10 years ago.
debugging enabled failed dma boot - traced

Download all attachments as: .zip

Change History (35)

comment:1 by rudolfc, 10 years ago

Owner: changed from axeld to marcusoverhagen

by rudolfc, 10 years ago

Attachment: werk_boot_fout_dma.TXT added

failed boot with DMA enabled

by rudolfc, 10 years ago

Attachment: werk_boot_disabled_DMA added

succeeded boot with DMA disabled

comment:2 by anevilyak, 10 years ago

Component: - GeneralDrivers/Disk

comment:3 by rudolfc, 10 years ago

Attached are two syslogs, the first of a default but failing boot. The second is of a disabled DMA boot (failsafe boot option).

Both boots were done from the same USB stick in the same USB port. Hardware wasn't changed between boots.

Bye!

Rudolf.

comment:4 by marcusoverhagen, 10 years ago

Milestone: R1R1/alpha1

please test hrev32878 from trunk with DMA enabled and attach syslog. thanks.

by rudolfc, 10 years ago

Attachment: r32884_no_dma added

hrev32884 with disabled DMA - succesfull boot

comment:5 by rudolfc, 10 years ago

Today I tested hrev32884. I only have a disabled DMA log on the stick, so I just posted that.

With DMA the boot still fails.

Would this suffice? (I only have access to this system at certain moments..)

Bye!

Rudolf.

by rudolfc, 10 years ago

Attachment: werk_boot_dma_3.TXT added

hrev32884 boot fail, DMA enabled

comment:6 by rudolfc, 10 years ago

Anyhow, just got a chance to try booting again on this system. Just uploaded the syslog from a failed DMA enabled hrev32884 boot.

Note: I entered the failsafe options menu, but did not modify any setting.

Bye!

Rudolf.

comment:7 by marcusoverhagen, 10 years ago

Status: newassigned

Please try hrev32921 in DMA mode and attach another syslog.

How many SATA/PATA ports do you have?

Thanks.

for reference

PCI: [dom 0, bus  0] bus   0, device 31, function  2: vendor 8086, device 24d1, revision 02 
PCI:   class_base 01, class_function 01, class_api 8a 
PCI:   vendor 8086: Intel Corporation 
PCI:   device 24d1: 82801EB (ICH5) SATA Controller 
PCI:   info: Mass storage controller (IDE interface) 
PCI:   line_size 00, latency 00, header_type 00, BIST 00 
PCI:   ROM base host 00000000, pci 00000000, size 00000000 
PCI:   cardbus_CIS 00000000, subsystem_id 24d1, subsystem_vendor_id 8086 
PCI:   interrupt_line 0b, interrupt_pin 01, min_grant 00, max_latency 00 
PCI:   base reg 0: host 00000000, pci 00000000, size 00000010, flags 09 
PCI:   base reg 1: host 00000000, pci 00000000, size 00000010, flags 0d 
PCI:   base reg 2: host 00000000, pci 00000000, size 00000010, flags 09 
PCI:   base reg 3: host 00000000, pci 00000000, size 00000010, flags 0d 
PCI:   base reg 4: host 0000f000, pci 0000f000, size 00000010, flags 01 
PCI:   base reg 5: host 00000000, pci 00000000, size 00000000, flags 00 


PCI-ATA: Controller in legacy mode: cmd 0x1f0, ctrl 0x3f6, irq 14 
PCI-ATA: bus master base 0xf000 
PCI-ATA: Controller in legacy mode: cmd 0x170, ctrl 0x376, irq 15 

http://www.intel.com/assets/pdf/datasheet/252516.pdf
Page 435, 437, 441, 442

by rudolfc, 10 years ago

Attachment: werk_boot_dma_5.TXT added

'failed' DMA boot with latest ATA driver

comment:8 by rudolfc, 10 years ago

Hi again,

Tested with the lasest ATA adapter. Situation seems to remain the same. This time I walked away from the system trying to boot, to have a coffee break. The system boots fully up in the end, it just takes about 20 minutes or so. I expect the previous version would have done the same if I stayed away long enough.

Anyhow: situation unchanged unfortunately.

Bye!

Rudolf.

comment:9 by rudolfc, 10 years ago

Hi again.

Just opened up the PC case: It's a ShuttleX PC with a mainboard called 'FB65V1.0' It has two SATA connectors, and two PATA connectors.

It seems to have a AGP slot and a PCI slot.

Bye!

Rudolf.

comment:10 by rudolfc, 10 years ago

And: SATA1 has a HD, PATA2 has a DVDROM (samsung SD-616). The other two connectors are unused. The system has one floppy drive.

Bye!

Rudolf.

comment:11 by rudolfc, 10 years ago

OK, HD is ST380013AS. BIOS says SATA is in auto mode. (autoselect old/new style setup I take it). Windows running is SP1, so old style boot is required by windows.

Bye!

Rudolf.

comment:12 by marcusoverhagen, 10 years ago

please try hrev32978 from trunk

comment:13 by stippi, 10 years ago

I can boot again without disabling IDE DMA from the boot loader (from a SATA drive), but when I insert a CD into the IDE connected drive, the system freezes up. When I press the eject button on the drive, the system reboots. When booting from the CD, the system also seems to freeze up at the forth icon again (but I have not waited for very long), when pressing the eject button the computer reboots.

by rudolfc, 10 years ago

Attachment: werk_boot_dma_9.TXT added

hrev32978 ata manager and generic driver with dma - fail

comment:14 by rudolfc, 10 years ago

Hi again,

I still can't boot with DMA on hrev32978 from trunk. Without is OK.

BTW: the SATA HD is detected bt the bios as being master, the PATA DVD ROM is detected as master as well.

Rudolf.

comment:15 by marcusoverhagen, 10 years ago

Hi Rudolf,

can you join the IRC channel for a debugging session? New syslog shows that DMA is working, but interrupts are lost.

comment:16 by rudolfc, 10 years ago

Hi there Marcus,

The system in test is my computer over at the company I work for. If you need this debug session with me running on that computer, we need to plan it as I need to go over at the office in an evening (could be done though).

Thursday evening might be an option, say around 19:30u. Otherwise it's going to be next week some evening, the coming weekend I have no time to do it I'm afraid.

Please let me know what you want to do.

Thanks,

Rudolf.

comment:17 by marcusoverhagen, 10 years ago

Perhaps it's easier if you check these things first.

step 1) Make sure that you are really using "ata" bus_manager AND "ata_adapter" (generic kernel addon) from trunk, hrev32978 or anything newer.

step 2) Enable on screen debug output (serial output would be better) and boot. When you reach the end that looks like:

666	loaded driver /boot/system/add-ons/kernel/drivers/dev/zero
667	[35mahci:[0m ahci_supports_device
668	[35mahci:[0m ahci_supports_device
669	ata 0 error: timeout waiting for interrupt
670	ata 0 error: RecoverLostInterrupt: lost interrupt, status 0x50

enter KLD (ALT+S-Req+D) and use the ints command. then the continue command.

Wait for a minute or two until you get a few other "timeout waiting for interrupt" messages.

Then enter KDL again, use ints command again, and look where interrupts happen. They should be on 14 and 15. if possible attach output to this bugreport.

step 3) in build/config_headers/tracing_config.h

#define ENABLE_TRACING 1 #define ATA_TRACING 1

get hrev33010 of ata_adapter.c and modify #define INTERRUPT_TRACING 1

rebuild and install. when boot stops with timeout, use KDL traced command and view the ata debug output the timeout.

comment:18 by rudolfc, 10 years ago

hmm,

How is that again, this new shortcut? I don't have a 'Req' key on my keyboards? And: should I press all four keys simultaneously?

I am not able to drop to KDL.

Rudolf.

comment:19 by pulkomandy, 10 years ago

This is only 3 keys. "SysReq" is usually the Print screen key, actually :)

by rudolfc, 10 years ago

Attachment: werk_boot_dma_10.TXT added

boot with DMA enabled, ints dumped

comment:20 by rudolfc, 10 years ago

Thanks pulkomandy. That works :-)

Anyhow: log uploaded. From what I gather is that int 14 and 15 are assigned to the ata manager, int 15 happens, but is unhandled. ???

The second test (with debug logging enabled) will have to wait probably until coming Monday.

Bye!

Rudolf.

comment:21 by scottmc, 10 years ago

Milestone: R1/alpha1R1/alpha2

comment:22 by marcusoverhagen, 10 years ago

Blocking: 4535 added

(In #4535)

by rudolfc, 10 years ago

Attachment: werk_boot_dma_14.TXT added

debugging enabled failed dma boot - traced

comment:23 by rudolfc, 10 years ago

Hi Marcus,

Sorry for the delay. Anyhow: Here's the log from a boot. I enabled atapi, ata and ata-dma debugging. Also interrupt debugging is enabled in ata-adapter.

I hope this gives you the info you need.

Bye!

Rudolf.

comment:24 by marcusoverhagen, 10 years ago

this might be fixed in hrev33626. please test.

comment:25 by rudolfc, 10 years ago

Hi Marcus!

It's fixed indeed! Nice job, and thanks. :-)

You can close this ticket I'd say.

Bye!

Rudolf.

comment:26 by marcusoverhagen, 10 years ago

Resolution: fixed
Status: assignedclosed

fixed in hrev33626

comment:27 by pulkomandy, 5 years ago

Component: Drivers/DiskDrivers/Disk/ATA
Note: See TracTickets for help on using tickets.