What is the PCI probe rule for assign device to Intel igb driver

OS: OpenWRT 18.06.7
Plateform: Intel Skylake-S(x86 solution)

We use two BIOS to change the PCI sequence, and it works.
BIOS1 : scan the PCI device order "CPUs PCI bus first -> PCH's PCI bus"
BIOS2 : scan the PCI device order "PCH's PCI bus first -> CPU's PCI bus"

Using BIOS1 to boot up OpenWRT, we get PCI devices via lspci command:
01:00.0 <- i350 LAN chip (CPU)
01:00.1 <- i350 LAN chip (CPU)
01:00.2 <- i350 LAN chip (CPU)
01:00.3 <- i350 LAN chip (CPU)
02:00.0 <- i210 LAN chip (PCH)
03:00.0 <- i210 LAN chip (PCH)

Using BIOS2 to boot up OpenWRT, we get PCI devices via lspci command:
01:00.0 <- i210 LAN chip (PCH)
02:00.0 <- i210 LAN chip (PCH)
03:00.0 <- i350 LAN chip (CPU)
03:00.1 <- i350 LAN chip (CPU)
03:00.2 <- i350 LAN chip (CPU)
03:00.3 <- i350 LAN chip (CPU)

But, when system insert igb driver the driver seems doesn't follow PCI's bus/dev/func number to probe ethernet controller.

[ BIOS1 ]
eth0: 01:00.0 <- i350 LAN chip (CPU)
eth1: 01:00.1 <- i350 LAN chip (CPU)
eth2: 01:00.2 <- i350 LAN chip (CPU)
eth3: 01:00.3 <- i350 LAN chip (CPU)
eth4: 02:00.0 <- i210 LAN chip (PCH)
eth5: 03:00.0 <- i210 LAN chip (PCH)
[ BIOS 2 ]
eth4: 01:00.0 <- i210 LAN chip (PCH)
eth5: 02:00.0 <- i210 LAN chip (PCH)
eth0: 03:00.0 <- i350 LAN chip (CPU)
eth1: 03:00.1 <- i350 LAN chip (CPU)
eth2: 03:00.2 <- i350 LAN chip (CPU)
eth3: 03:00.3 <- i350 LAN chip (CPU)

I didn't have this issue with Ubuntu, Debian and CentOS.
What's the rule for OpenWRT assign PCI device to igb driver's probe function?