Hello,
Can you send me the whole dts file? I just want to load the FPGA as before using /def/fpga0 on a DE10 Standard but I can’t get it to work…
At the moment, I’m using the following code:
/dts-v1/ /plugin/;
/ {
fragment@0 {
target-path = “/soc/base-fpga-region”;
#address-cells = <2>;
#size-cells = <1>;
overlay {
#address-cells = <2>;
#size-cells = <1>;
firmware-name = “test.rbf”;
hps_0_bridges: bridge@0xc0000000 {
compatible = “altr,bridge-17.0”, “simple-bus”;
reg = <0xc0000000 0x20000000>;
#address-cells = <2>;
#size-cells = <1>;
ranges = <0x00000000 0x00000000 0xc0000000 0x00100000>,
<0x00000000 0x00100000 0xc0100000 0x00000008>,
<0x00000000 0x00100020 0xc0100020 0x00000020>,
<0x00000000 0x00100060 0xc0100060 0x00000020>,
<0x00000000 0x00100040 0xc0100040 0x00000008>;
av_master_bridge: unknown@0x000000000 { compatible = "unknown,unknown-1.0"; reg = <0x00000000 0x00000000 0x00100000>; }; //end unknown@0x000000000 (av_master_bridge)
fifo_from_pc: fifo@0x000100000 { compatible = "ALTR,fifo-17.0", "ALTR,fifo-1.0"; reg = <0x00000000 0x00100000 0x00000008>, <0x00000000 0x00100020 0x00000020>; reg-names = "in", "in_csr"; }; //end fifo@0x000100000 (fifo_from_pc)
fifo_to_pc: fifo@0x000100060 { compatible = "ALTR,fifo-17.0", "ALTR,fifo-1.0"; reg = <0x00000000 0x00100040 0x00000008>, <0x00000000 0x00100060 0x00000020>; reg-names = "out", "in_csr"; }; //end fifo@0x000100060 (fifo_to_pc) }; //end bridge@0xc0000000 (hps_0_bridges) }; };
};
Then I compile it using:
$ dtc -O dtb -o no_hw_tree.dtbo -b 0 -@ no_hw_tree.dts
Warning (reg_format): “reg” property in /fragment@0/overlay/bridge@0xc0000000 has invalid length
(8 bytes) (#address-cells == 2, #size-cells == 1)
and load it using:
mount -t configfs configfs /config
rmdir /config/device-tree/overlays/test
mkdir /config/device-tree/overlays/test
echo no_hw_tree.dtbo > /config/device-tree/overlays/test/path
The FPGA seams to be loaded:
[ 99.601984] fpga_manager fpga0: writing test.rbf to Altera SOCFPGA FPGA Manager
But when I start accessing the hardware using /dev/mem I get a Bus Error and:
[ 165.968920] Unhandled fault: external abort on non-linefetch (0x018) at 0x76eb6060
[ 165.968943] Unhandled fault: external abort on non-linefetch (0x018) at 0x76eb6020
[ 165.968946] pgd = ede60000
[ 165.968954] [76eb6020] *pgd=2ee2f831, *pte=c0100703, *ppte=c0100e33
[ 165.992917] pgd = ede60000
[ 165.995612] [76eb6060] *pgd=2ee2f831, *pte=c0100703, *ppte=c0100e33
When I load the exactly the same image using uBoot, everything works. However, reloading the image while the system is runnig would be much faster.