Updated the Readme master
authorAravind Batni <aravindbr@ti.com>
Wed, 2 Dec 2020 20:24:35 +0000 (15:24 -0500)
committerAravind Batni <aravindbr@ti.com>
Wed, 2 Dec 2020 20:24:35 +0000 (15:24 -0500)
Signed-off-by: Aravind Batni <aravindbr@ti.com>
README

diff --git a/README b/README
index 03507e6c90b05259520305fc5572ced3cf9d6d55..41db81a095d3e10560a41d920d1a935a5e5d18b7 100644 (file)
--- a/README
+++ b/README
@@ -8,7 +8,11 @@ There are 2 types of loopback in the demo:
    2) DSP loopback: In DSP loopback, the audi samples will be offloaded to\r
       DSP and loopback in DSP back to ARM GPU, then out to network\r
 \r
-There are 2 patch files provided:\r
+There are 5 patch files provided: \r
+- Patch 1 is needed by the DEP container.\r
+- Patches 2 through 4 are needed for kernel optimizations for interrupt pacing,\r
+  and additional overhead removal for the scheduling\r
+- Patch 5 is needed for the DSP loopback application.\r
 \r
 1) 0001-linux-KConfig-Enable-Dante-required-CGROUP-and-Names.patch\r
 \r
@@ -20,18 +24,49 @@ There are 2 patch files provided:
 \r
    RT-Linux kernel needs to rebuilt after the patch file is applied.\r
 \r
+2) 0002-k2g-defconfig-disable-RPS-and-XPS.patch\r
+   k2g: defconfig: disable RPS and XPS\r
+   \r
+3) 0003-soc-ti-knav_qmss-k2g-make-rx-tx-irq-no-thread-on-rt.patch\r
+    Networking RX/TX IRQs are simple and used to schedule NAPI, so making them\r
+    NOTHREAD allows to avoid additional scheduling\r
+\r
+    IRQ\r
+     |- threaded irq <--avoid\r
+        |-schedule NAPI (ksoftirqd)\r
+    \r
+4) 0004-drivers-net-ethernet-ti-netcp_core.c-tx-tmr.patch\r
+   This patch is needed for interrupt pacing enable for Transmit and Receive\r
 \r
    a. Apply patch to PLSDK:\r
       $ cd <plsdk_linux-rt-k2g-installed-dir>/board-support/linux-rt-[version]\r
       $ patch < 0001-linux-KConfig-Enable-Dante-required-CGROUP-and-Names.patch \r
-\r
+      $ patch < 0002-k2g-defconfig-disable-RPS-and-XPS.patch \r
+      $ patch < 0003-soc-ti-knav_qmss-k2g-make-rx-tx-irq-no-thread-on-rt.patch\r
+      $ patch < 0004-drivers-net-ethernet-ti-netcp_core.c-tx-tmr.patch \r
+            \r
    b. Rebuilt rt-linux\r
 \r
    Add the SDK's toolchain to the PATH environment variable and build the kernel image\r
       $ export PATH=<sdk path>/linux-devkit/sysroots/x86_64-arago-linux/usr/bin:$PATH\r
+      $ cd <plsdk_linux-rt-k2g-installed-dir>/board-support/linux-rt-<version>\r
       $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- tisdk_k2g-evm-rt_defconfig\r
       $ make -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage\r
+      $ make -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules\r
+      $ cd <plsdk_linux-rt-k2g-installed-dir>\r
+      $ make cmem-mod\r
+      $ make uio_module_drv\r
+\r
    Copy arch/arm/boot/zImage to the /boot/zImage on K2G SD card\r
+   \r
+   Install the Kernel modules onto SD card at rootfs mount point\r
+      $make ARCH=arm INSTALL_MOD_PATH=<path_to_rootfs> modules_install\r
+   \r
+   Copy UIO driver module to the SD card in the rootfs\r
+      $cp <plsdk_linux-rt-k2g-installed-dir>/board-support/extra-drivers/uio-module-drv/uio-module-drv.ko <path_to_rootfs>/lib/modules/<kernel_version>/extra/uio-module-drv.ko\r
+\r
+   Copy CMEM driver module to the SD card in the rootfs\r
+      $cp <plsdk_linux-rt-k2g-installed-dir>/board-support/extra-drivers/cmem-mod/module/cmemk.ko <path_to_rootfs>/lib/modules/<kernel_version>/extra/cmemk.ko\r
 \r
    Please see detailed build instruction in PLSDK Kernel User Guide:\r
    http://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/linux/Foundational_Components_Kernel_Users_Guide.html\r