hi , I want to load image(uboot and kernel) to K2H that is a PCIe EP and boot it. I can load uboot to MSM now.
but I meet some problem.
I see the Doc say :
PCI Express (PCIe) Boot
The PCIe boot mode transfers a boot image via the PCIe interface into MSMC for
execution. This image must be in Blob Format. The bootloader queries the device boot
configuration pins for set up of the BARs, windows, and their sizes as desired to provide
memory access to the host. Additional information about these configurations and
other registers can be found in the device-specific data manual.
After configuration of the peripheral, the ARM core executes a WFI instruction that
causes the ARM to suspend execution waiting for an interrupt. While the ARM is
suspended, the PCIe host can write the boot image into MSMC. After the image is
written, the PCIe host must write the execution starting address of the image to the host
boot data address register.
MSI interrupts are enabled and routed to break out of the suspended state.
1.
I see default of address DSP_BOOT_ADDR0 (0x02620040) is 20B00001.
can you tell me the format of this field?
it should be not general address field.
it's bit 0 is always 1 and bit 2-9 is always 0.
2.
and another problem about MSI interrupt. I see PCIe Doc has two address used by MSI.
100h MSI0_IRQ_STATUS_RAW MSI
104h MSI0_IRQ_STATUS MSI
108h MSI0_IRQ_ENABLE_SET MSI
10Ch MSI0_IRQ_ENABLE_CLR MSI
110h MSI1_IRQ_STATUS_RAW MSI
and
1050h MSI_CAP MSI
1054h MSI_LOW32 MSI
1058h MSI_UP32 MSI
105Ch MSI_DATA MSI
should I use which address to trigger boot flow.
3. finally problem that ARM core must excute WFI instruction.
when K2H use PCIe boot as a EP, ARM is suspended?
if it is not, how I should let arm to execute WFI instruction?
thanks for your help.