Estou depurando enumeração e configuração PCIe em x86-64 com um switch PCIe entre o RC e os endpoints. Quero adicionar printks
no kernel Linux para observar CONFIG 0
e CONFIG 1
manipular TLP.
Quais arquivos de origem do kernel são responsáveis por acionar e processar esses TLPs?
Revisei drivers/pci , mas preciso de orientação para identificar os caminhos do código. Quaisquer dicas de depuração ou referências à documentação relacionada seriam apreciadas.
Se entendi sua pergunta corretamente:
Arquivos de kernel : PCIe enum e config normalmente envolvem arquivos em
drivers/pci/
diretório. Arquivos importantes:pci.c
para lógica de enumeração central.setup-bus.c
para configuração de barramento PCI.access.c
para acesso ao espaço de configuração.Manipulação de TLP : Até onde sei
CONFIG 0
,CONFIG 1
TLPs se referem a transações de configuração PCI, processadas em código específico de arquitetura:arch/x86/
.E depuração :
printk()
em funções relacionadas comopci_scan_bus()
oupci_read_config_*
.CONFIG_DEBUG_KERNEL
) e logs de depuração PCI.Documentação relacionada: https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt , https://www.kernel.org/doc/html/v5.5/PCI/index.html