From 8a08e758e978650bc47605a3b9ef01072e7790f1 Mon Sep 17 00:00:00 2001 From: Hari Kanigeri Date: Mon, 30 Nov 2009 19:39:22 -0600 Subject: SYSLINK: Release notes This patch provides release notes and information on building Syslink modules. Signed-off-by: Hari Kanigeri --- TI_OMAP4_Syslink_Release_Notes_L24.x.txt | 498 +++---------------------------- 1 file changed, 38 insertions(+), 460 deletions(-) (limited to 'TI_OMAP4_Syslink_Release_Notes_L24.x.txt') diff --git a/TI_OMAP4_Syslink_Release_Notes_L24.x.txt b/TI_OMAP4_Syslink_Release_Notes_L24.x.txt index 609ded631803..1d7022d4867d 100755 --- a/TI_OMAP4_Syslink_Release_Notes_L24.x.txt +++ b/TI_OMAP4_Syslink_Release_Notes_L24.x.txt @@ -2,8 +2,8 @@ OMAP4 Syslink List Handoff ================================================================================ -Author : Ramesh Gupta G / Suman Anna -Date : June 30 2009 +Author : Hari Kanigeri +Date : Nov 30 2009 =========== Summary: @@ -30,7 +30,6 @@ Proc manager - Implemented initial version of Proc module. Proc module controls Ducati Processors and supports IPC mechanism. Ducati enabler is now part of Proc module. - - DMM support for Ducati memory. =============== Notify module @@ -51,19 +50,13 @@ http://dev.omapzoom.org/?p=integration/kernel-omap4.git;a=summary Tesla Bridge api and sample sources are available in omapzoom.org in below link -https://omapzoom.org/gf/project/omapbridge/frs/ -?action=FrsReleaseBrowse&frs_package_id=2 - -For syslink ipc, Notify and proc manager apis/ samples please -contact TI counter part. +http://dev.omapzoom.org/?p=tisyslink/userspace-syslink.git;a=summary ======= Setup: ======= -Virtio : VPOM4430_1.09a + patch3 -CCS: Version 3.3 with VPOM simulator. For more information on CCS availability -please contact TI. -CCSv4 with VPOM simulator is also supported. +SDC4430 +CCSv4 ===================== Build Instructions: @@ -98,15 +91,15 @@ From the Kernel sources run below commands. 6. Select drivers under Deivice Drivers -->Sys_Link ---> - OMAP IPC Module - OMAP Notify Module - Mailbox Dispatcher - OMAP Notify Tesla Module - OMAP Notify Ducati Module - Syslink Procmgr - Proc 4430 + <*> OMAP IPC Module + <*> OMAP Notify Module + <*> Mailbox Dispatcher + <*> OMAP Notify Tesla Module + <*> OMAP Notify Ducati Module + <*> Syslink Procmgr + <*> Proc 4430 Device Drivers --> DSP Bridge driver--> - [M] DSP Bridge Debug Support + [*] DSP Bridge Debug Support Select DSP Bridge Debug Support option as above. 7. Save Configuration @@ -117,145 +110,15 @@ From the Kernel sources run below commands. 10. make CROSS_COMPILE=arm-none-linux-gnueabi- uImage - 11. On successful uImage is built under arch/arm/boot, use this uImage - to boot Virtio. - - 12. Building the modules by below commands. - - 13. Run below command once the kernel is built. - - 14. Make CROSS_COMPILE=arm-none-linux-gnueabi- modules. This command - is applicable only if we select the required drivers as modules. - if all the drivers are selected as part of the kernel steps - from 14 to 23 can be ignored. - - 15. Bridgedriver module (bridgedriver.ko) is built under folder - drivers/dsp/bridge/ dspbridge module(dspbridge.ko) is built - under folder arch/arm/plat-omap2 which is required for bridge - driver. - - 16. Notify module (omap_notify.ko) is built under folder - drivers/dsp/syslink/omap_notify/ - - 17. notify dispatcher is (notify_disp.ko) is built under folder - drivers/dsp/syslink/notify_dispatcher - - 18. notify tesla driver (notify_tesladriver.ko) is built under folder - drivers/dsp/syslink/notify_tesladriver - - 19. notify dispatcher is (notify_ducatidriver.ko) is built under folder - drivers/dsp/syslink/notify_ducatidriver - - 20. syslink proc4430 module for ducati(syslink_proci4430.ko) is built under folder - drivers/dsp/syslink/procmgr/proc4430/ - - 21. syslink proc module (syslink_proc.ko) is built under folder - drivers/dsp/syslink/procmgr/ - - 22. syslink ipc module for ducati (syslink_ipc.ko) is built under folder - drivers/dsp/syslink/multicore_ipc/ - - 23. copy all these drivers to the target file system - (ram disk file system)along with the tesla binaries + 11. On successful uImage is built under arch/arm/boot. - 24. To build all of the above drivers as part of the Kernel, - select the drivers and run "make uImage" - -================================================================================= -Important Notes: - 1.bridgedriver depends on dspbridge driver, omap_notify - notify_tesladriver and notify_dispatcher drivers - 2. notify_ducatidriver depends on - omap_notify,notify_dispatcher and syslink_proc4430 drivers. - 3. syslink_ipc driver depends on omap_notify, notify_dispatcher, - notify_ducatidriver, syslink_proc and syslink_proc4430 drivers. -================================================================================= ======================================= -Building Bridge API library and samples +Building Syslink and Tesla user space modules ======================================= -Build tesla bridge libraries by running below commands. - - 1. Copy the pthread libraries from arm cross compiler tool chain into - dspbridge/target/lib folder - - 2. cd into api folder cd /dspbridge/mpu_api - - 3. make PREFIX= TGTROOT= clean - - 4. make PREFIX= TGTROOT= - - 5. make PREFIX= TGTROOT= install - - 6. On successful build libbridge.so, libbridge.so.2 are installed in - dspbridge/target/lib/ folder. - -Build the samples by running below commands. - - 1. Copy the bridge libraries libbridge.so* to folder dspbridge/samples/mpu/lib/ - - 2. Cd dspbridge/samples/mpu/src - - Run make command as below. - - 3. make PREFIX= TGTROOT= clean - - 4. make PREFIX= TGTROOT= + Follow the README document in the user-space root folder - 5. make PREFIX= TGTROOT= install - -Build ducati syslink libraries by running below commands. - - 1. Copy the pthread and librt libraries from arm cross compiler tool chain into - dspbridge/target/lib folder. Also copy the libgcc.a file. - - 2. cd into api src folder cd /syslink/api/src - - 3. make PREFIX= TGTROOT= clean - - 4. make PREFIX= TGTROOT= - - 5. make PREFIX= TGTROOT= install - - 6. On successful build, libutils.so, libutils.so.0, libnotify.so, - libipc.so, libnotify.so.2, libprocmgr.so, libprocmgr.so.2, libipc.so, - libipc.so.0, librcm.so, librcm.so.0 are installed in - syslink/target/lib/ folder. - -Build the syslink samples by running below commands. - - 1. cd syslink/samples - - Run make command as below. - - 2. make PREFIX= TGTROOT= - KRNLSRC= clean - - 3. make PREFIX= TGTROOT= - KRNLSRC= - - 4. The sample .out files are build in the respective source directories - underneath syslink/samples folder. - 5. The kernel sample procmgr_app.ko is built under - syslink/samples/proc_sample/krnl - 6. make sure to build the samples from the same session from which the - kernel is built or export ARCH and PATH variables as mentioned - in above in kernel building. - -======================================== -Building Tesla images and Ducati samples -======================================== - 1. Install the CCS and get the CGtools for Tesla and ARM (for Ducati) - 2. Upgrade the BIOS to the latest from T.I website - 3. https://www-a.ti.com/downloads/sds_support/targetcontent/index.html - 4. Follow the DSP Application guide to build DSP samples. - 5. Framework components present in the tarball that is uploaded and also - on TI website where BIOS is found. - 6. Contact TI representative for Tesla/Ducati images. - - -======================= Running Tesla Samples ======================= @@ -270,44 +133,16 @@ Running Tesla Samples if all the drivers are build as part of the kernel one can ignore steps 3 and 4 - insmod omap_notify.ko - - insmod notify_disp.ko - - insmod notify_tesladriver.ko - insmod dspbridge.ko insmod bridgedriver.ko - 4. Create device node for bridgedriver accordingly - by checking the /proc/devices. - - e.g: mknod /dev/DspBridge c 253 0 - 5.Load the image using cexec.out + 4.Load the image using cexec.out ./cexec.out ddspbase_tiomap4430.dof64T - 6. This loads image and waits the sync mask to be cleared by DSP. - DSP Start address is displayed as below. - - - - - DSP Start Address [0x2104b000]- - - - - - 7. Copy the above start address (0x2104b000), Go to Virtio IDE and break - the system by typing 'y' in the virtio console. - - 8. Open the Code Composer Studio, select Open Tesla. - - 9. Open the register window and modify the PC with the DSP Start - address (0x2104b000). - - 10. In CCS hit F11 key for several times (at least 5-10 times) and then - press F5. - - 11. Go back to Teraterm where cexec completes and DSP is started. Now we - are ready to run dsp samples, below are the commands for running + Below are the commands for running samples. ./scale.out 10 @@ -319,308 +154,51 @@ Running Tesla Samples Running Bridge Samples in Dynamic loading mode: - 1. Boot Virtio - - 2. Install all the 3 driver using the script as mentioned in above section. - This step is not required if all the drivers are build as part of the - kernel. - - 3. load dynbase image. + 1. load dynbase image. ./cexec.out dynbase_tiomap4430.dof64T - 4. Follow same procedure as above in Section to start DSP. With CCS - - 5. Register the required dll as below. + 2. Register the required dll as below. ./dynreg.out -r strmcopydyn_4430.dll64T - 6. Run the strmcopy sample. + 3. Run the strmcopy sample. ./strmcopy.out 0 install_bridge out-strm -================================================================================ -Important Note3: Due to some limitations we cannot run 2 different samples at -one time in dynamic loading mode. One needs to reboot Virtio for running other -sample. -================================================================================ ======================= Running Syslink Samples ======================= - 1. Boot the kernel with ramdisk consisting all the drivers and Syslink - samples, API libraries. Ducati images need not be part of the ramdisk. - - 2. Once kernel is booted, cd into the folder where all the binaries are - placed. - - 3. install all the drivers in the sequence as below, this step is - required only if the drivers are build as modules, - if all the drivers are build as part of the kernel one can - ignore steps 3 and 4 - - insmod omap_notify.ko - - insmod notify_disp.ko - - insmod notify_ducatidriver.ko - - insmod syslink_proc.ko - - insmod syslink_proc4430.ko - - insmod syslink_ipc.ko - - 4. Create device node for syslink components accordingly - by checking the /proc/devices. - - mknod /dev/ipcnotify c 232 0 - - mknod /dev/notifyducatidrv c 234 0 - - mkdir /dev/syslinkipc + 1. NotifyPing.out - mknod /dev/syslinkipc/ProcMgr c 254 0 + 2. messageQApp.out - mknod /dev/syslink-proc4430 c 253 0 + 3. rcm_singletest.out - mknod /dev/syslink_ipc c 252 0 + 4. syslink_tilertest.out - 5. Configure the Proc module by running the following command. This - sets up the drivers for running the syslink samples. - - insmod procmgr_app.ko - - 6. Run the samples by running the corresponding .out files - - eg: ./messagequ.out - - 7. Load the Ducati baseimage when prompted using CCS. - - -============================== -Validating the Ducati Driver -============================== - -One can validate the Ducati enabler driver by running below steps. -------------------------------------------------------------------------------- -Important Note4: CCS need to be configured for "VPOMAP 4 Platform Simulator" - -Remove the IVAHD-iCONT1, IVAHD-iCONT2, and Modena. - -The System Configuration must have only Tesla and Duati-ARM-M3-1, Ducati-ARM-M3-2 -------------------------------------------------------------------------------- - -Two baseimages Bios6Boot.xem3 and Bios6Boot_Core1.xem3 can be used to validate -the BIOS6 boot validation on each of the cores respectively. - -Please contact TI representative for these images. - -The following steps detail the boot on Core0. Similar procedure can be followed -to boot the Core1 as well. - - 1. Boot the Virtio as usual. - - 2. Break the platform by typing 'y' in the Virtio Console after the bash - shell prompt appears. - - 3. install all the drivers in the sequence as below, this step is - required only if the drivers are build as modules, - if all the drivers are build as part of the kernel one can - ignore this step - - insmod omap_notify.ko - - insmod notify_disp.ko - - insmod syslink_proc4430.ko - - insmod notify_ducatidriver.ko - - 4. The syslink_proc4430 driver programs MMU and - updates page table entries. - 5. Break the Virtio by typing y in console. - - 6. Open CCS and select Ducati core. - - 7. Load the base image into Ducati core0. - - 8. In Virtio design , browse to - VPOM4430->SDP->OMAP4430-> InitValue_DUCATI_SYS_1. - Right click and open. - Right click on Signal (InitValue) and select - Send Signal To Platform. - Send 1 and press OK. This resets the core. - - 9. Press F11 once to have the Reset release become effective. - Note that the PC does not change here and the SP is updated. - Press F11 couple more times to make sure Ducati is executing - and thereafter you can press F5. - -Running Notify ping sample on Ducati: -------------------------------------- - 1. Boot Vartio as usual. - 2. Follow the same steps as above install required drivers (step 3 - above), this step is required only if the drivers - are build as modules, if all the drivers are build - as part of the kernel one can ignore this step - 3. create nodes for ipcnotify and notifyducatidrv accordinngly. - e.g: mknod /dev/ipcnotify c 232 0 - mknod /dev/notifyducatidrv c 234 0 - 4. run notifyping.out sample. - - 5. The sample keeps in a loop while sending events and - checking for ducati side initialization. - - 6. Break the Virtio by typing y in console. - - 7. Open CCS and select Ducati-ARM-M3-1 core. - - 6. Load ducati image (notifyxfer_bios6.xem3) image. - - 7. Open source file notifyxfer_bios6.c file and add some breakpoints - in the main function. - - 8. Press F11 once to have the Reset release become effective. - Note that the PC does not change here and the SP is updated. - Press F11 couple more times to make sure Ducati is executing - and thereafter you can press F5. - 9. One can observe Ducati receiving the events from Chiron - calling the call back function and sending event back to Chiron. - - 10. The Notifyping sample running on the Chiron shows event messages - and call back function messages. - -Loading ducati images using the userspace loader: ------------------------------------------------- - 1. On successful ducati sample build user space binary loader - ducati_load.out is build underi folder - syslink/samples/samples/procmgr/ducati_load/ - 2. One can load the ducati image on to SYSM3 or APPM3 using the - userspace binary loader as below. - ./ducati_load.out - 3. on successful load the loader displays the entry point for - the image at the end. - - ------snip---- - loaded_program: 0xea19 - Completed Loading Image ..... notifyxfer_bios6.xem3 - entry_point is 0xea19 - Hit any key to terminate cexec. - -------------- - 4. Due to Virtio issues we cannot start SYSM3/APPM3 from the - MPU side, one has to use CCS for SYSM3/APPM3 start by - following below step. - 5. Break Virtio and open CCS, Select the processor on which - image is loaded. - 6. Open the PC registers. - 7. Set the PC value to the entry point displayed from the loading - step. - 8. Run couple of times step run. - 9. Run the Processor. - -loading images on both SYSM3/APPM3 processors ---------------------------------------------- - -Follow below procedure to load images on both SYSM3/APPM3 using -user space loader - - 1. SYSM3 should be reached main() before loading the APPM3 image. - 2. SYSM3 should be in running state to load APPM3 from MPU using - user space loader. Otherwise MPU will not respond. - 3. Because of the above reasons, one need to introduce a continuos - while loop in both the SYSM3/APPM3 programs immediately in the main() - function at the first place. e.g: - - while(flag) - ; - 4. Load the SYSM3 image using the loader, set the PC using CCS and tun the - SYSM3 processor. Now SYSM3 executing the while(flag) loop. - 5. Load the APPM3 using the loader, set the PC using the CCS and run the - APPM3 processor, now the APPM3 is executing the while(flag) loop. - 6. Stop APPM3 processor. - 7. Stop SYSM3 processor. - 8. Bring SYSM3 out of while loop by changing the variable flag to 0 on the - fly. - 9. Bring APP3 out of while loop by changing the variable flag to 0 on the - fly. - 10. Run SYSM3 and Run APPM3. - -================================================================================ -Highlights / Important Notes -================================================================================ ============== Tesla Bridge ============== Features Introduced -------------------------- -- Fixed checkpatch errors and warnings for all modules under syslink. -- Dynamic Loading Support has been added. -- Bridge Trace Support has been added. -- All basic bridge features, messaging, processor copy streaming, dmmcopy, - zerocopy messaging in static and dynamic loading are validated. +- Tesla Unicache enabled. +- Tesla Bridge validated on SDC4430. +- BIOS6 support ============== Syslink ============== -- RCM server and client works on Chiron, Ducati SYSM3 and APPM3. -- Added load support by Proc manager. -- All modules can be built along with the Kernel. -- All modules are working as expected. -- Userspace binary image loader utility is implemented for loading images on - Ducati. - -Ducati Bridge -============== -- Elf Image support. -- Ducati MMU Programming. -- Page table entries updation. -- Loading and running a Ducati image. -- Validation using notify ping sample -- BIOS30 and XDC39 Support. -- IPC33 and FC36-RCM alignment. - +- Cache functionality is added to Syslink ProcMgr API. +- Syslink Trace daemon added to print traces from SysM3 and AppM3 on the Linux console. +- All basic RCM and MessageQ samples are validated using SysMgr enabled baseimages on both SysM3 & AppM3. +- DucatiPlatform.xs file updated to include a new trace section. The trace section is carved out of the cacheable IPC region. +- All basic Ducati Syslink IPC (Notify, MessageQ) and RCM samples, and Bridge samples have been validated. Tiler sample also has been validated with the latest TILER pre-release. Important Notes -------------------- - - Set the bootargs to use only 54M, this is required for Ducati testing. - Run below command in u-boot prompt. - - set bootargs root=/dev/ram0 rw mem=54M console=ttyS0,115200n8 - initrd=0x81600000,20M ramdisk_size=20480 - - - One need to have CCS to start the Ducati processors as the Virtio doesn't have - the PRCM support to reset Ducati processors. - - Code Composer Studio is required to write the Start DSP Address to the - PC register - * CCS_v3.3_SR9_79.exe or CCS_v3.3_SR10_80.exe or CCS_v3.3_SR11 - * Install ccs_VPOMAP4_1.00.02.zip located at - C:\Virtio\Platforms\VPOM4430\CCS - * Use Tesla - VPOMAP 4 Platform Simulator. - * Please contact your TI representative for further information on - Code Composer Studio (CCS) - - - Basic Validation for Tesla Bridge was done with samples in - Static and dynamic mode: - Dmmcopy, Zcmsg, Strmcopy, Scale and Ping - - Basic validation for Ducati image with loading ducati imeges - and Notify ping sample. - -================================== -Issues Resolved -================================== - - NONE - -================================== -Known Issues -================================== - 1. Running dynamic samples second time failing, one has to restart - Virtio for running another dyncamic sample. - 2. Due to mailbox changes in Virtio1.06a version, Bridge 24.0.8 release - is not backward compatible with Virtio versions < 1.06a. - 3. Notipy ping sample some times not working because of timing issues. - Need to have break points in Ducati side. - 4. CCS is required to start Ducati processors (SYSM3/APPM3), as the - current Virtio doesn't have the PRCM support to reset Ducati Processors. - 5. ping sample is not working in dynamic mode in Tesla due to dependant - library issue this is been tracked by internal tracking number id: - OMAPS00202802 + +Syslink now uses 49MB of memory from the 512MB RAM. + +Memory for Syslink needs to be set aside during bootargs. A suggested command at the u-boot prompt is: +set bootargs root=/dev/ram0 rw mem=463M console=ttyS2,115200n8 initrd=0x81600000,20M ramdisk_size=20480 -- cgit v1.2.3