This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

How to set PCIe subvendor/subdevice info during PCIe boot.

I am reposting my last question of an older post as it did not get satisfactorily answered

----------------------------------------------------------

The product I am envisioning would be a PCIe plug in card for a Windows based computer (PC)

It must have a subvendor/subdevice ID to distinguish it from other C68A8xxx based devices and also to identify its PCI class code

What I'd like to do is have all executable (ARM+DSP) code loaded by Windows after the computer has booted up using the PCIe boot mode (Boot mode 11000).

Now, because I have to set the PCIe subvendor/device info, I will be forced to boot from say an SPI flash device, set my PCIe info and then somehow branch to the original PCIe boot code.

How would you do this?. (I see no documentation on this.)

Sounds like the PCIe boot process was not thought out too well........

thanks

steve

 

  • Steve,

    Direct PCIe boot will not work if there are multiple C68A8xxx cards that need different vendor IDs. As you have mentioned, the recommended way to do this is to use a SPI boot, and do PCIe boot as a secondary boot.

    However,  your understanding that you have to branch back to PCIe boot is incorrect - when you boot from SPI, you load your entire boot code into SPI flash and the ROM will simply transfer control to that.

    This boot code in SPI flash can configure the PCIe with full flexibility - ie custom vndor IDs, class, BAR window sizes, etc. 

    Regards,

    Madan

  • Madans

    Thanks for your reply. 

    Its a bummer that this was not properly thought out ahead of time.  All other TI DSPs with PCI interfaces on them have a method of setting the subvendor and other PCI info using an EEPROM that does not affect the boot mode (I'm familiar with the C6205 here).

    I'd like to see TI release the source code for the PCIe ROM boot, so at least we'd have something to start with when developing our own boot code to put in SPI flash.

    -steve

  • Madan

     

    Would it be possible to do the following:

     

    1. Initially boot from SPI

    2. Have the SPI code, program the SubVendor etc PCIe registers

    3. Have the SPI code change the boot mode to be PCIe (through GPIO?)

    4. Jump to 20000h and (re)boot in PCIe mode.

    This assumes that the PCIe boot does not clear all the SubVendor,SubDevice etc registers

     

    thanks

    steve