Re: PCIe bus (re-)numbering

From: Ruud
Date: Mon Sep 21 2015 - 10:06:36 EST


2015-09-21 9:49 GMT+02:00 Ruud <netwerkforens@xxxxxxxxx>:
>> /sbin/setpci -s $NAME 0x1a.b=0
>> N=`find /sys/devices/pci0000:"$BUS"/"$NAME"/remove -name "remove"`
>> echo $N
>> echo -n 1 > "$N"
>> sleep 1s
>> done
>> done
>>
>
> Thanks for the script!
>
>>
>>>
>>> I will test next monday.
>>


Test result based upon

http://git.kernel.org/pub/scm/linux/kernel/git/yinghai/linux-yinghai.git
7e3fad2 (for-pci-v4.3-rc1)

Unfortunately your script hangs the system, I modified it for my
situation (only one root complex, 1 PCI switch will be affected).
It seems to aggressive on the BAR's..tried to troubleshoot but don't
understand the details on

/sbin/setpci -s $NAME 0x20.l=0
/sbin/setpci -s $NAME 0x24.l=0
/sbin/setpci -s $NAME 0x28.l=0
/sbin/setpci -s $NAME 0x2c.l=0

why you zero these (besides the bus numbers).

I got the full system working by just zeroing the busnumbers on the
switch at root complex level, remove the switch and rescan it. In this
procedure I need to take care of the some physical aspects: I can not
turn on the chassis when the PCIe switch is removed, some interrupt
comes through and will result in a kernel panic.

Thus the procedure that works is:
1) Chassis off
2) Boot linux
3) Chassis on
4) setpci busnrs to 0
5) remove switch
6) rescan

Cards recognised and functional, memory regions look ok, running out
of iospace but not much can be done about that.

Same procedure on 3.2.0 kernel (debian stock) results in all cards
being recognized (enum ok) but fails to assign BAR's (tries to fit
them below 4G)


Best regards,

Ruud
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/