VL805 PCIe to USB

I am developing a custom PCIe to USB board to enable the USB hub controller for my Raspberry pi CM4. I am having trouble booting when I enabled the firmware loading to vl805 via PCIe in the RPI boot config. I am wondering if anyone had a similar issue. The boot config allows the CM4 to load vl805 through PCIe rather than from the external EEPROM via SPI. To test the configuration, I de-soldered the EEPROM on Dual Gigabit Ethernet Carrier Board. It successfully loaded the firmware through PCIe and USB ports were enabled. However, on my custom board, the CM4 fails to boot up and terminates with some error code.

here is the link to my schematic. The schematic is based on the Dual Gigabit Ethernet Carrier Board.

https://drive.google.com/drive/folders/1x8NtFnrWdlHdgCOyqnjJAmMae07Gaxe6?usp=sharing

Hi,

The dual ethernet carrier has a VL805-Q6 with his own spi flash, so I guess the SPI flash was programm before being welded.
Acording the information at Raspberry Pi Documentation - Compute Module Hardware , It is possible to transfer the VL805 Firmware whitout spi plash , via PCIe communication with the CM4 module.

My design dont use SPI FLASH and only use only port USB3.
Usb1, usb2, usb4 are not wired, I saw the usb4 in your schematics are not wired.
it’s been a long time since you asked about this but Did you discover your problem, It was because the USB4 not wired.?

My Idea is use only usb3 for controlling LAN7800 for having a second ethernet port.

Any feedback is welcome.

Thanks in advance a best regards

Rosa

Hi,

I just checked this thread after a long time lol. The issue was related to the improper clock signal to the VL805. The PCIe was working since it uses its own clock signal. However, when the RPI tries to enumerate the USB host during the bootup, it throwed kernel panic errors since the external clock fed to the chip wasn’t working properly. After modifying the clock circuit with a proper crystal signal, I was able to get the vl chip working.

Best,
SJ