On 09.04.20 02:04, Peter Stuge wrote:
> I found something that might be relevant in https://del.dog/raw/cbmemlog
> however, search it for Remap:
>
> --8<-- https://del.dog/raw/cbmemlog#149
> PCI: 00:1c.0: Disabling device
> PCI: 00:1c.0: check set enabled
> PCH: Remap PCIe function 1 to 0

That's a weird puzzle. I've looked into the code, it's not mapping _to_
a specific number but swapping _with_ what was there last. So if the
mapping was:

idx 0 1 2 3 4 5 6 7
 fn 0 1 2 3 4 5 6 7

this swaps what is at 0 with what is at 1:

idx 0 1 2 3 4 5 6 7
 fn 1 0 2 3 4 5 6 7

> PCI: 00:1c.1 [8086/1c12] enabled
> PCI: 00:1c.2: Disabling device
> PCH: Remap PCIe function 3 to 0

Swaps what is at 3 with what is at 0:

idx 0 1 2 3 4 5 6 7
 fn 3 0 2 1 4 5 6 7

> PCI: 00:1c.3 [8086/1c16] enabled
> PCH: Remap PCIe function 4 to 0

Swaps what is at 4 with what is at 0:

idx 0 1 2 3 4 5 6 7
 fn 4 0 2 1 3 5 6 7

idx 1, 3 and 4 are on in the devicetree. So final relevant state:

idx 0 1 2 3 4 5 6 7
 fn   0   1 3

This is not wrong. But the algorithm is that complex because it's
supposed to leave no gaps. And it fails at that in this case :-/

> --8<-- https://del.dog/raw/cbmemlog#175
> PCI: Leftover static devices:
> PCI: 00:01.0
> PCI: 00:16.1
> PCI: 00:16.2
> PCI: 00:16.3
> PCI: 00:1c.4
> PCI: 00:1c.2
> PCI: 00:1c.5
> PCI: 00:1c.7
> PCI: Check your devicetree.cb.
> -->8--

Partially my fault, when we added these messages, we didn't consider
devices that were hidden on purpose. I guess we should not complain
about devices on bus 0 with !dev->enabled (i.e. `off` in the device-
tree).

But here seems also something fishy wrt. the remapping: What about
1c.6?

Nico
_______________________________________________
coreboot mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to