Mathworks ipcore test using axi4stream in linux

Hello,
I'm using an ipcore generated using hdlcoder, I placed it in vivado generated the bitstream and compiled it to the BOOT.bin file.
The purpose is to test my ipcore in linux, Im using the Analogdevice_kernel, which includes the mathworks kernel driver for the ipcores.
I tried to match the device tree present in the matlab_buildroot repository.
the problem is when the board is booting it shows that the AxiDMA engine are probed, but the dma buffer cannot be created, so the device is defered.
Do I have a problem in the device tree?
fpga_axi: fpga-axi@0 {
compatible = "simple-bus";
interrupt-parent = <&intc>;
#address-cells = <0x1>;
#size-cells = <0x1>;
ranges;
axi_dma_0: axidma@40400000 {
compatible = "xlnx,axi-dma-1.00.a";
reg = <0x40400000 0x10000>;
#dma-cells = <0x1>;
xlnx,include-sg = <0x0>;
xlnx,addrwidth = <32>;
xlnx,axistream-connected = <0x1>;
clock-names = "s_axi_lite_aclk", "m_axi_mm2s_aclk";
clocks = <&clkc 15>, <&clkc 15>;
dma-channel@40400000 {
compatible = "xlnx,axi-dma-mm2s-channel";
xlnx,datawidth = <64>;
interrupts = <0x0 44 4>;
};
};
axi_dma_1: axidma@40410000 {
compatible = "xlnx,axi-dma-1.00.a";
reg = <0x40410000 0x10000>;
#dma-cells = <0x1>;
xlnx,include-sg = <0x0>;
xlnx,addrwidth = <32>;
xlnx,axistream-connected = <0x1>;
clock-names = "s_axi_lite_aclk", "m_axi_s2mm_aclk";
clocks = <&clkc 15>, <&clkc 15>;
dma-channel@40410000 {
compatible = "xlnx,axi-dma-s2mm-channel";
xlnx,datawidth = <32>;
interrupts = <0x0 45 4>;
};
};
matlab_ip: ip_core@43c00000 {
compatible = "mathworks,mwipcore-v3.00";
reg = <0x43c00000 0x10000>;
mathworks,rst-reg = <0x0>;
mathworks,timestamp-reg = <0x4>;
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
ipcoreRx_channel: stream-channel@0{
compatible = "mathworks,axi4stream-mm2s-channel-v1.00";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x1>;
mathworks,dev-name = "mm2s0";
mathworks,sample-cnt-reg= <0x8>;
dmas = <&axi_dma_0 0>;
dma-names = "mm2s";
data-channel@0 {
compatible = "mathworks,iio-data-channel-v1.00";
mathworks,data-format = "u64/64>>0";
mathworks,chan-name= "mm2s";
reg = <0x0>;
};
};
ipcoreTx_channel: stream-channel@1 {
compatible = "mathworks,axi4stream-s2mm-channel-v1.00";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x1>;
mathworks,dev-name = "s2mm0";
mathworks,sample-cnt-reg= <0x8>;
dmas = <&axi_dma_1 1>;
dma-names = "s2mm";
data-channel@0 {
compatible = "mathworks,iio-data-channel-v1.00";
mathworks,data-format = "u32/32>>0";
mathworks,chan-name= "s2mm";
reg = <0x0>;
};
};
};
};
When the board is booting as I mentioned before the axidma are good :
xilinx-vdma 40400000.axidma: Xilinx AXI DMA Engine Driver Probed!!
xilinx-vdma 40410000.axidma: Xilinx AXI DMA Engine Driver Probed!!
but not the ipCore :
Registered mathworks_ip class
mwipcore 43c00000.ip_core: error -ENXIO: IRQ index 0 not found
mwipcore 43c00000.ip_core: Dev memory resource found at (ptrval) 00010000.
mwipcore 43c00000.ip_core: 'ip_core' device not found, creating
mwipcore 43c00000.ip_core: Char dev region registered: major num:245
mwipcore 43c00000.ip_core: 'ip_core' device created
iio iio:device0: Deferring probe for DMA engine driver load
mwipcore 43c00000.ip_core: Destroy character dev
mwipcore 43c00000.ip_core: release device region

回答(0 个)

产品

版本

R2024a

提问:

2024-12-17

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by