AI와 D3 보드 간 pcie 통신 문의

안녕하세요. 현재 TOPST AI와 D3 보드 간 PCIe 연결을 진행중입니다.
pcie 소켓을 통해 두 보드를 연결하여 확인해보았지만, 보드 간 연결이 정상적으로 이루어지지 못하는 것 같아 질문드립니다.


먼저 AI 보드를 endpoint로 설정하기 위해 여러 디렉토리를 찾아보던 중 pci 관련 디렉토리를 찾아 엔드포인트 설정을 하려 했지만, /sys/kernel/config/pci_ep/functions/epf-ic 디렉토리에 controller 파일이 존재하지 않아 endpoint 설정이 이루어지지 않습니다. 해당 과정과 같이 endpoint 설정이 이루어져야 d3 보드와 pcie 연결이 가능한지 문의드립니다.


또한, AI 보드의 /sys/bus/pci 내부의 devices와 drivers 디렉토리가 빈 디렉토리로 존재하는 것이 올바른 상황인지 질문드립니다.

안녕하세요.
해당 문의에 답변 드립니다.

default로 CONFIG_PCI_ENDPOINT_TEST가 포함되어있지 않습니다.
CONFIG_PCI_ENDPOINT_TEST=y 를 추가하여 빌드를 진행하셔야 합니다.
이후 아래와 같이 진행하시면 됩니다.

cd /sys/kernel/config/pci_ep/
mkdir functions/pci_epf_test/func1
echo 0x1957 > functions/pci_epf_test/func1/vendorid
echo 0x80c0 > functions/pci_epf_test/func1/deviceid
echo 2 > functions/pci_epf_test/func1/msi_interrupts
echo 8 > functions/pci_epf_test/func1/msix_interrupts
ln -s functions/pci_epf_test/func1 controllers/11000000.pcie_epc
sleep 1
echo 1 > controllers/11000000.pcie_epc/start

epf는 configfs 기반으로 되어있어 manual로 생성하여 endpoint controller에 링크 시켜야 합니다.

자세한 정보는 아래 링크 참고 바랍니다.
https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-jacinto7/latest/exports/docs/linux/Foundational_Components/Kernel/Kernel_Drivers/PCIe/PCIe_End_Point.html

감사합니다.