Hi Team ,
I was able to properly create an SPI client driver & bind the same using board-file logic . Going through the board file board-apalis_t30.c for SPI controller we wanted to disable the SPI-DMA logic. ( We expect the SPI controller to not use DMA engine for read/write )
static struct tegra_spi_platform_data apalis_t30_spi_pdata = {
.is_clkon_always = false,
//.is_dma_based = true, // Commented
.is_dma_based = false,
//.max_dma_buffer = 16 * 1024, // Commented
.max_rate = 100000000,
};
Could team member please let us know if this the only change or we need to so changes any where else ?
To do this based on board configuration file i made the below mentioned alteratioAm i looking at the proper procedure or missing any aspect , as we are evaluating the time required by the SPI controller to do an READ with / with-out DMA for one of our customer who have high time constraint.
Hi Team ,
Any help wich team can share with us
The is_dma_allowed flag is set in the probe call depending on the is_dma_based platform data. See here. If DMA is not allowed, the probe call would skip DMA setup.
Thanks for confirmation snachayan …
Actually after doing this change there is no SPI clock available on the board & the SPI operation is getting STRUCK .
While compilation once i could see some warning message while generating the uImage
LD .tmp_vmlinux1
arm-angstrom-linux-gnueabi-ld: warning: unwinding may not work because EXIDX input section 86 of arch/arm/mach-tegra/built-in.o is not in EXIDX output section
arm-angstrom-linux-gnueabi-ld: warning: unwinding may not work because EXIDX input section 1184 of kernel/built-in.o is not in EXIDX output section
arm-angstrom-linux-gnueabi-ld: warning: unwinding may not work because EXIDX input section 217 of fs/built-in.o is not in EXIDX output section
arm-angstrom-linux-gnueabi-ld: warning: unwinding may not work because EXIDX input section 51 of crypto/built-in.o is not in EXIDX output section
arm-angstrom-linux-gnueabi-ld: warning: unwinding may not work because EXIDX input section 369 of block/built-in.o is not in EXIDX output section
arm-angstrom-linux-gnueabi-ld: warning: unwinding may not work because EXIDX input section 293 of lib/built-in.o is not in EXIDX output section
arm-angstrom
Hence we were not sure that were we missing any aspect
I believe we never validated or tested SPI without DMA on tegra. Very much possible that driver does not function correctly or is incomplete in this scenario or perhaps something more is required. Would expect the warnings to be orthogonal to the SPI issue though. Which exact gcc/toolchain version do you use?
Dear Sanchayan ,
I haven’t use any external tool-chain .
I have using the default setup being created by Yocto located at
export PATH=~/toradex_local/tmp-glibc/sysroots/x86_64-linux/usr/bin:~/toradex_local/tmp-glibc/sysroots/x86_64-linux/usr/bin/arm-angstrom-linux-gnueabi/:$PATH
Not sure how to figure the specific version of this tool-chain …please let me know if could share any snapshot / output of any command to help on this parameter