[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Broken SCSI on SPARCclassic X



Hi,

Trying to install Etch on a Classic X (sun4m, 4/10) I encountered some 
problems with the SCSI controller. After booting from the SCSI disk in 
question (the actual installation I did in an SPARCstation 5, but it's
the same for netboot or CD-ROM installer) the esp module oopses:

[...]
SCSI subsystem initialized                                                      
esp0: IRQ 0 SCSI ID 7 Clk 40MHz CCYC=25000 CCF=8 TOut 167 <1>Unable to handle k0
tsk->{mm,active_mm}->context = 0000003f                                         
tsk->{mm,active_mm}->pgd = fc015000                                             
              \|/ ____ \|/                                                      
              "@'/ ,. \`@"                                                      
              /_| \__/ |_\                                                      
                 \__U_/                                                         
modprobe(761): Oops [#1]                                                        
PSR: 419000c6 PC: fe61e840 NPC: fe61e844 Y: 01c00000    Not tainted             
PC: <esp_sbus_probe+0x5b4/0xae8 [esp]>                                          
%G: 000000ff 0000000a  fd114000 41400fe4  f003046c 00004000  f020a000 00000000  
%O: 0000001f fe620740  000000ff 000061a8  00000008 000000a7  f020bc10 fe61e7d8  
RPC: <esp_sbus_probe+0x54c/0xae8 [esp]>                                         
%L: 0000001f 000000ff  fe620400 f32e1000  f32e1800 f595e800  f32e1000 f32e1008  
%I: fffffff4 f595ea9c  00000020 f019f190  f020a000 f0228d20  f020bc78 f001bb94  
Caller[f001bb94]: of_device_probe+0x58/0x74                                     
Caller[f0117068]: driver_probe_device+0x60/0xb8                                 
Caller[f01171c8]: __driver_attach+0x70/0xc4                                     
Caller[f0116950]: bus_for_each_dev+0x40/0x74                                    
Caller[f01165a0]: bus_add_driver+0x6c/0x134                                     
Caller[f004c97c]: sys_init_module+0x1610/0x1778                                 
Caller[f0011634]: syscall_is_too_hard+0x3c/0x40                                 
Caller[000133b4]: 0x133bc                                                       
Instruction DUMP: 8210200a  c228a02c  c4064000 <c208a02c> 8208601f  80a0600a  0 
Killed

Being alerted by IRQ 0 and the fact that probe-scsi in OpenBoot doesn't
work as expected I looked a bit deeper into the OpenBoot device tree and
found what probably is a bug in the PROM. As this machine is used diskless
in most cases it might not be noticed that the "scsi" devalias is wrong
(at least in my version of the PROM - Rom Rev: 2.12).

Note the swapped addresses (or is it something else?) for espdma and esp:

ok show-devs
[...]
/iommu@0,10000000/sbus@0,10001000/espdma@4,8800000                              
[...]
/iommu@0,10000000/sbus@0,10001000/espdma@4,8800000/esp@4,8400000                
/iommu@0,10000000/sbus@0,10001000/espdma@4,8800000/esp@4,8400000/st             
/iommu@0,10000000/sbus@0,10001000/espdma@4,8800000/esp@4,8400000/sd             
[...]

ok devalias                                                                     
[...]
scsi    /iommu/sbus/espdma@4,8400000/esp@4,8800000                              
[...]
disk    /iommu/sbus/espdma@4,8400000/esp@4,8800000/sd@3,0                       
cdrom   /iommu/sbus/espdma@4,8400000/esp@4,8800000/sd@6,0:d                     
tape    /iommu/sbus/espdma@4,8400000/esp@4,8800000/st@4,0                       
tape0   /iommu/sbus/espdma@4,8400000/esp@4,8800000/st@4,0                       
tape1   /iommu/sbus/espdma@4,8400000/esp@4,8800000/st@5,0                       
disk3   /iommu/sbus/espdma@4,8400000/esp@4,8800000/sd@3,0                       
disk2   /iommu/sbus/espdma@4,8400000/esp@4,8800000/sd@2,0                       
disk1   /iommu/sbus/espdma@4,8400000/esp@4,8800000/sd@1,0                       
disk0   /iommu/sbus/espdma@4,8400000/esp@4,8800000/sd@0,0

As the PROM is read-only one can only prepend device aliases to the
list. Adding a correct (or not) alias for scsi the kernel halts after
PROM initialization:

ok devalias scsi /iommu/sbus/espdma@4,8800000/esp@4,8400000                     
scsi isn't unique                                                               

ok boot                                                                         
SILO Version 1.4.13                                                             
boot:                                                                           
Uncompressing image...                                                          
Loaded kernel version 2.6.18                                                    
Loading initial ramdisk (3142737 bytes at 0x3000000 phys, 0x60000000 virt)...   
PROMLIB: obio_ranges 1                                                          

That's all. No more output... Is there any other way to correct the
scsi alias or Linux' behaviour? The problem might be an alias which is
not unique. Without this initial devalias command the kernel boots fine
up to the esp oops shown above.

Btw: How do I build Sparc netboot images to try booting a newer kernel?

Greetings,

	Markus



Reply to: