boards: silabs: siwx91x: Add support for DMAs
Report DMA configuration in the board definitions. Note the addresses of the DMA buffers are hardcoded in the HAL. So, these areas have to be declared in the linker file. Co-authored-by: Sai Santhosh Malae <santhosh.malae@silabs.com> Signed-off-by: Sai Santhosh Malae <santhosh.malae@silabs.com> Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
This commit is contained in:
parent
124c79dd23
commit
3fad258adc
3 changed files with 48 additions and 0 deletions
|
@ -9,6 +9,7 @@ toolchain:
|
|||
- gnuarmemb
|
||||
- xtools
|
||||
supported:
|
||||
- dma
|
||||
- entropy
|
||||
- gpio
|
||||
- i2c
|
||||
|
|
|
@ -216,6 +216,34 @@
|
|||
clocks = <&clock0 SIWX91X_CLK_I2C1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
dma0: dma@44030000 {
|
||||
compatible = "silabs,siwx91x-dma";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x44030000 0x82C>;
|
||||
interrupts = <33 0>;
|
||||
interrupt-names = "dma0";
|
||||
clocks = <&clock0 SIWX91X_CLK_DMA0>;
|
||||
silabs,sram-desc-addr = <0x2fc00>;
|
||||
#dma-cells = < 1>;
|
||||
dma-channels = <32>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ulpdma: dma@24078000 {
|
||||
compatible = "silabs,siwx91x-dma";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x24078000 0x82C>;
|
||||
interrupts = <10 0>;
|
||||
interrupt-names = "ulpdma";
|
||||
clocks = <&clock0 SIWX91X_CLK_ULP_DMA>;
|
||||
silabs,sram-desc-addr = <0x24061c00>;
|
||||
#dma-cells = < 1>;
|
||||
dma-channels = <12>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -5,10 +5,29 @@
|
|||
*/
|
||||
#include <zephyr/arch/arm/cortex_m/scripts/linker.ld>
|
||||
|
||||
MEMORY
|
||||
{
|
||||
udma0 (rwx) : ORIGIN = 0x0002fc00, LENGTH = 0x00000400
|
||||
udma1 (rwx) : ORIGIN = 0x24061c00, LENGTH = 0x00000400
|
||||
}
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
.common_tcm_code :
|
||||
{
|
||||
*(.common_tcm_code*)
|
||||
} > FLASH
|
||||
|
||||
/* These regions of SRAM is where the UDMA descriptors are stored. The corresponding
|
||||
section must be properly declared in the linker script to ensure correct data transfer
|
||||
and proper functioning of the UDMA module */
|
||||
.udma_addr0 :
|
||||
{
|
||||
*(.udma_addr0*)
|
||||
} > udma0 AT> FLASH
|
||||
|
||||
.udma_addr1 :
|
||||
{
|
||||
*(.udma_addr1*)
|
||||
} > udma1 AT> FLASH
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue