<div dir="ltr">Hi Frederik,<div><br></div><div>ARM-TF is ready to support extended PCIE windows @0xc0000000 and @0x800000000. Maybe you are using some old version of it? Can you show the bootlog from the very beginning?</div><div><br></div><div>Best regards,</div><div>Marcin</div></div><div class="gmail_extra"><br><div class="gmail_quote">2018-04-24 17:34 GMT+02:00 Ard Biesheuvel <span dir="ltr"><<a href="mailto:ard.biesheuvel@linaro.org" target="_blank">ard.biesheuvel@linaro.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 24 April 2018 at 17:32, Frederik Lotter<br>
<div><div class="h5"><<a href="mailto:frederik.lotter@netronome.com">frederik.lotter@netronome.com</a><wbr>> wrote:<br>
> Hi,<br>
><br>
> The uboot build for mcbin get PCIe range data from the included DT.<br>
><br>
> ranges =<br>
> <0x81000000 0 0xf9000000 0 0xf9000000 0 0x10000<br>
> 0x82000000 0 0xf6000000 0 0xf6000000 0 0xf00000>;<br>
><br>
> Using uboot I can access BAR0 memory area inside uboot using a<br>
> standard Intel network card<br>
><br>
> Marvell>> pci 1<br>
> Scanning PCI devices on bus 1<br>
> BusDevFun VendorId DeviceId Device Class Sub-Class<br>
> ______________________________<wbr>______________________________<wbr>_<br>
> 01.00.00 0x8086 0x1521 Network controller 0x00<br>
> 01.00.01 0x8086 0x1521 Network controller 0x00<br>
> Marvell>> pci bar 01.00.00<br>
> ID Base Size Width Type<br>
> ------------------------------<wbr>----------------------------<br>
> 0 0x000000f6000000 0x00000000100000 32 MEM<br>
><br>
> Marvell>> md.l 0x000000f6000000 10<br>
> f6000000: 081c0241 081c0241 80280780 00000000 A...A.....(.....<br>
> f6000010: 0008471e 00000026 001400c0 0000004e .G..&.......N...<br>
> f6000020: 1411000a 00000000 00c28001 00000100 ................<br>
> f6000030: 00008808 00000000 81008100 00000000 ................<br>
><br>
> However, for our network card we need a much bigger BAR size, so<br>
> out DT entry is (which I took from the Linux DT which works):<br>
><br>
> ranges =<br>
> <0x81000000 0 0xf9000000 0 0xf9000000 0 0x10000<br>
> 0x82000000 0 0xc0000000 0 0xc0000000 0 0x20000000>;<br>
><br>
> Scanning PCI devices on bus 1<br>
> BusDevFun VendorId DeviceId Device Class Sub-Class<br>
> ______________________________<wbr>______________________________<wbr>_<br>
> 01.00.00 0x8086 0x1521 Network controller 0x00<br>
> 01.00.01 0x8086 0x1521 Network controller 0x00<br>
> Marvell>> pci bar 01.00.00<br>
> ID Base Size Width Type<br>
> ------------------------------<wbr>----------------------------<br>
> 0 0x000000c0000000 0x00000000100000 32 MEM<br>
><br>
> md.l ---> Abort<br>
><br>
> However I get a data abort.<br>
><br>
> Is this likely just a memory map setup problem in u-boot, or does this<br>
> larger BAR size require additional SMMU or other setup not done in u-boot?<br>
><br>
> The memory map document for Armada 8040 specify the PCIe range from<br>
> 0xf6000000 so my first guess is I need to modify the page table mapping?<br>
><br>
<br>
</div></div>Hello Frederik,<br>
<br>
There are several levels of physical address remapping in the 8040 SoC<br>
that all need to point to the PCIe controller. These settings are done<br>
in ARM Trusted Firmware IIRC, and I had to modify them to make a<br>
memory window of sufficient size (256 MB config space and 512 MB MMIO<br>
space) available for PCIe.<br>
<br>
______________________________<wbr>_________________<br>
Macchiato mailing list<br>
<a href="mailto:Macchiato@lists.einval.com">Macchiato@lists.einval.com</a><br>
<a href="https://lists.einval.com/cgi-bin/mailman/listinfo/macchiato" rel="noreferrer" target="_blank">https://lists.einval.com/cgi-<wbr>bin/mailman/listinfo/macchiato</a></blockquote></div><br></div>