* RPMSG reserved 4Mbytes, but only used up to 2Mbytes.
* The left 2Mbytes can be used here.
*/
- ddr_test_region = 0xb8200000;
+ if (ddr_test_region == 0)
+ dev_err(dev, "invalid ddr test region.\n");
break;
case IMX6SX:
case IMX7D:
ddr_test_region = 0x40000000;
break;
}
+ dev_info(dev, "ddr_test_region is 0x%08x.\n", ddr_test_region);
dw_pcie_prog_outbound_atu(pci, 2, 0, pp->mem_base,
ddr_test_region, test_region_size);
struct dw_pcie *pci;
struct imx_pcie *imx_pcie;
struct resource *res;
- struct device_node *node = dev->of_node;
+ struct device_node *reserved_node, *node = dev->of_node;
int ret;
u16 val;
if (IS_ERR(pci->dbi_base))
return PTR_ERR(pci->dbi_base);
+ reserved_node = of_parse_phandle(node, "reserved-region", 0);
+ if (!reserved_node) {
+ dev_info(dev, "no reserved region node.\n");
+ } else {
+ if (of_address_to_resource(reserved_node, 0, res)) {
+ dev_err(dev, "failed to get reserved region address\n");
+ return -EINVAL;
+ }
+ ddr_test_region = res->start + SZ_2M;
+ }
+
/* Fetch GPIOs */
imx_pcie->clkreq_gpio = of_get_named_gpio(node, "clkreq-gpio", 0);
if (gpio_is_valid(imx_pcie->clkreq_gpio)) {