Hello,

i've following trouble on a new custom zynq board:

There is a axi4pcie root-complex implemented within the FPGA, i added this to my devicetree:

    pci_express: axi-pcie@90000000 {
        #address-cells = <3>;
        #size-cells = <2>;
        #interrupt-cells = <1>;
        status = "disabled";
        compatible = "xlnx,axi-pcie-host-1.00.a";
        reg = < 0x90000000 0x1000000 >;
        device_type = "pci";
        interrupts = < 0 116 4 >;
        interrupt-map-mask = <0 0 0 7>;
        interrupt-map = <0 0 0 1 &pcie_intc 1>,
                <0 0 0 2 &pcie_intc 2>,
                <0 0 0 3 &pcie_intc 3>,
                <0 0 0 4 &pcie_intc 4>;
        ranges = < 0x02000000 0 0x80000000 0x80000000 0 0x10000000 >;

        pcie_intc: interrupt-controller {
            interrupt-controller;
            #address-cells = <0>;
            #interrupt-cells = <1>;
        };
    };

As you can see the node is "disabled". For me this makes sense since during very first come up of u-boot the FPGA is not configured yet and the registers of the root-complex aren't accessible. Later on, during "board_init(...)" i bring up the FPGA (load bitstream from spi flash into FPGA) and set the fdt-node property status to "okay".

Trouble is that dm-scan, probe, ... is already done at this point and the root-complex is left ofter uninitialized and is not in the dm-tree at all (since it was disabled through first scan).

=> dm tree
 Class       Probed   Name
----------------------------------------
 root        [ + ]    root_driver
 simple_bus  [ + ]    `-- amba
 gpio        [ + ]        |-- gpio@e000a000
 i2c         [   ]        |-- i2c@e0004000
 i2c         [ + ]        |-- i2c@e0005000
 i2c_generic [ + ]        |   `-- generic_60
 serial      [ + ]        |-- serial@e0000000
 serial      [   ]        |-- serial@e0001000
 spi         [ + ]        |-- spi@e000d000
 spi_flash   [ + ]        |   `-- spiflash@0
 eth         [   ]        |-- ethernet@e000b000
 mmc         [ + ]        |-- sdhci@e0100000
 blk         [   ]        |   `-- sd...@e0100000.blk
 mmc         [ + ]        |-- sdhci@e0101000
 blk         [   ]        |   `-- sd...@e0101000.blk
 simple_bus  [   ]        |-- slcr@f8000000
 usb         [   ]        `-- usb@e0003000
=>

Is there a possibility to trigger a dm-scan after bringing up such new devices ? Or is it the wrong way having the node "disabled" first and enabled it later ? are there better ways to prevent accessing not yet ready devices from access ?

many thanks for your help and
best regards,
Hannes



_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to