Jacinto Radio Integration

=Introduction= This page provides info on platform side integration for Radio on Jacinto6 Android releases.

=Kernel Changes= Following changes should be done in Kernel for Radio. Refer to arch/arm/boot/dts/dra7xx-jamr3.dtsi dts file for implementation details on TI EVM

Kernel defconfig
Make sure following configurations are enabled in kernel config CONFIG_HWSPINLOCK_USER=y CONFIG_UIO=y CONFIG_UIO_PDRV_GENIRQ=y
 * 1) Hardware spinlock
 * 1) User-space I/O

Kernel bootarg
Make sure the bootargs of kernel has below parameter uio_pdrv_genirq.of_id=generic-uio

Memory configurations

 * SR0 region
 * The SR0 node and the reserved_memory node for SR0 should match in the dts configuration.
 * Same memory parameters should be used when building DSP firmware.
 * CMEM region
 * CMEM region used for radio should be marked in reserved_memory node
 * The memory region marked in dts for CMEM should match the parameters used to load cmem kernel module (cemk.ko)

Example from arch/arm/boot/dts/dra7xx-jamr3.dtsi dts file below,

sr0 { compatible = "generic-uio"; reg = ; };

&reserved_mem { /* Required by cmem driver used by radio */ cmem_radio: cmem@95400000 { reg = ; no-map; status = "okay"; };

dsp1_sr0: dsp1_sr0@bfb00000 { reg = ; no-map; status = "okay"; }; };

UIO and hwspinlock configuration

 * Add the gatemp hwspinlock and uio configuration entries are added to dts file.
 * As mentioned in above section, the SR0 node and the reserved_memory node for SR0 should match in the dts configuration.

Example from arch/arm/boot/dts/dra7xx-jamr3.dtsi dts file below,

gatemp { compatible = "hwspinlock-user"; hwlocks = <&hwspinlock 0>, <&hwspinlock 1>, <&hwspinlock 2>, <&hwspinlock 3>, <&hwspinlock 4>, <&hwspinlock 5>, <&hwspinlock 6>, <&hwspinlock 7>, <&hwspinlock 8>, <&hwspinlock 9>; };

sr0 { compatible = "generic-uio"; reg = <0x0 0xbfb00000 0x0 0x100000>; };

McASP and ATL configuration

 * McASP
 * McASP used for Radio should be configured for shared access by defining shared-dai; property in the McASP node.
 * McASP configuration can be verified by running "omapconf show mcasp" command
 * ATL
 * ATL instance used for Radio should be initialized with proper clock dividers set.

=Misc=
 * The IPC version used to build DSP firmware should match the version used in userspace (A15)
 * Radio application (RadioApp) uses TCP/IP port number 3125 and 3126. If there are any firewall configurations on the platform, then these ports should be unblocked.