A Ayman El-Khashab #
Message details and related content
I've got a design that is 405EXr based so its got 32 bit address space. We have an FPGA that sits on our pcie bus and we want it to have 2 BARs with 1G of space and maybe 256MB of space. I cannot figure out what I need to change in the kernel/dts to make this work. Right now, if I go over 512MB in the DTS "ranges" parameter then I'll get an error during kernel boot. My thought is that the magic happens in the function: ppc4xx_pciex_port_init_mapping(...) In there I see it setting up the REGBAH and REGBAL and then this curious statement: /* XXX FIXME: Use size from reg property. For now, map * 512M */ dcr_write(port->dcrs, DCRO_PEGPL_CFGMSK, 0xe0000001); I figure I need to change that or fix it the right way (though I don't know how to do that). The other thing is my dts file. It is based on the amcc kilauea and here is the part that I am unsure of. The PCIe entry falls under the PLB which could also be a problem but again, I am not sure. So basically, is there an easy way to change what I've got to map 1.25 or 2GB of space? Thanks Ayman PCIE0: pciex@0a0000000 { device_type = "pci"; #interrupt-cells = <1>; #size-cells = <2>; #address-cells = <3>; compatible = "ibm,plb-pciex-405ex", "ibm,plb-pciex"; primary; port = <0x0>; /* port number */ reg = <0xa0000000 0x20000000 /* Config space access */