1 -------------------------------------------------------------------------------
2 ----------------------------------- Common ------------------------------------
3 -------------------------------------------------------------------------------
4 Documents format project{{{
5 A. Product Requirement Document(PRD){{{2
9 This document describes the Software Product Specifications.
12 Brief description of the product goal and objectives
13 by priorities. Reference to product requirements.
15 Product Scope & Definition
16 Describe the product main functionality
17 included in the product. If necessary,
18 explain what the product will not include.
21 Give product perspective with related products
22 if it is not independent. If the product is a
23 component of a larger system, give a block
24 diagram showing the interconnections of the
25 product with the larger system.
28 List all documents & other sources of information
29 referenced in the document.
30 ------------------------------------------------------
31 | Title | Date(ver.) | Author |
32 ------------------------------------------------------
35 Definitions & Acronyms
36 Define or provide reference to definitions to all
37 terms in the document and to acronyms used throughout
40 Product Functionality{{{3
41 Major Functionalities - List
42 List all the major functionalities of the product
43 (DBMS, Report Generator, etc.)
45 Specific Functionality Specifications
46 The specifications can be organized using a common
50 - Behavioral (abstract description, state charts or
51 user-screens form prototype)
52 For each feature specify the following:
54 - Input & Validity checks on the inputs
55 - Operations: Normal & Abnormal (with valid/not valid
57 - Reaction to abnormal situation, such as:
59 - Error handling & recovery
60 - Output & Input->Output Sequences
61 - Priority (by necessity or stability)
63 Database Specifications
64 For each information that is put in the database,
68 - Data entities & relationships between them
69 - Integrity Constrains
73 List all the functions to be delayed until later
74 versions of the product.
76 External Interfaces{{{3
77 User Interface - Concept
78 Define the Look & Feel of the User Interface for the
83 System/Software Interface
88 Assumptions & Dependencies{{{3
101 7.Usefulness & Friendliness
109 Possibility to describe subject and highlight most significant words, which
110 supposed to be links to notes describing them.
113 XML? Links in XML? DTD?
116 each entry/record have follow structure:
119 <created/> - time&date of creation
120 <modified/> - last modified time&date
121 <deleted/> - time&date of deletion
125 name - name of function/method
136 Description: Log server on php5.
137 Sources: php5 help, C++ Network progrmming.
140 Client processes generate log records ranging from debugging msgs to critical
141 error msgs. The info sent by client indicates log record time, pid, priority
142 level of msg, logging data.
144 Marshalling/Demarshalling - operating in different compiler alignments and byte
145 order rules, so have to marshall msg to some common structure (CORBA) and
152 php compilation w/ description of all modules.
158 Couple of words for people new to compression. Actually the word itself
159 gives you the clue about meanings here. We want to squeeze large number of
160 data in to small place like file.
161 Of course, the file can have almost arbitrary size, so where is a problem?
162 Today we can buy huge harddrives and put there lot of small, big, huge files.
163 The place where you should consider about file size is where your site placed.
164 Remember all that "gold", "silver" and "platinum" packages which gives you
165 amount of space on a server.
166 Let say you can place twice the size of you can buy.
181 In order to open file in PHP use fopen() function. Here is how it look like:
183 $file_handle = fopen ( "/opr/src/any.txt", "r");
185 There are two parameters which this function takes. The name of required file
186 and mode in which that file should be open. More common description of the
189 fopen (string name, string mode)
191 First parameter mode has number of meanings which are follows:
193 a. The file If file not exist should we create new one.
195 b. Are we opening that file only for reading, only writing or both reading
198 c. If file opened for writing (reading/writing too) where to start.
200 Let's describe it a litttle bit.
201 First of all, we have to decide if file not exist to create new or not. Imagine
202 situation where you expect file to be there and it's not. In this case probably
203 the best thing to do is to aware by sending warning (or even error) message.
204 Second, we have to know the purpose of opening. Only for reading, only for
205 writing or both (reading and writing). If you don't know which one to choose
206 just do it in read/write mode where both reading and writing possible.
207 Third, we have to choose the point in file where to start writing. There are
208 2 options start of the file or end of it.
211 Suppose your file opened for writing (or reading and write).
212 names of the modes are
213 'r' for only reading,
214 'w' for only writing,
215 'a' for both('all') reading and writing.
216 Those modes have additinal meanings. They are coming from question where to
217 start writing from the beginning of the file or from the end of it. The answer
219 You have this file with lot of info and want to open it. The PHP has that
220 function called fopen() which is opening files.
221 The next question would be what am i going to do with that file?
222 Would i only read from there or only write to or even both? That actually are
231 time - sec, min, hour
232 date - day, month, year
233 name - 1st, nickname, 2nd, patronimyc, last
234 address - country, state/region, city, street, house, flat
236 personal structure: {{{
271 Names (key, id, name)
272 Dates (key, id, date)
273 Places (key, id, place)
281 Code analyzer article {{{1
283 ctags cbrowser cscope cflow
289 Miscfiles is looking for a maintainer. Programming skill is not
290 needed, since the package does not include any programs. Rather, it's a
291 matter of keeping these data files up to date on a regular basis and
292 releasing new versions of the package. In addition, the sources and
293 licenses of the various data needs to be investigated and recorded.
296 abbrevs.talk, abbrevs.gen:
297 Some common abbreviations used in electronic communication
300 List of three letter codes for some major airports
303 A map of the ascii character set.
306 Traditional stone and flower for each month.
309 geographic coordinates of many major cities
312 English `connectives'; prepositions, pronouns, and the like.
315 country abbreviations and names and capital cities
318 currency abbreviations and names
321 International country telephone codes
324 two-letter codes for languages, from ISO 639-1.
327 like `ascii'; describing the ISO Latin-1 character set
330 Description of all the public Project GNU related mailing lists.
333 North American (+1) telephone area codes
336 postal codes for US states and Canadian provinces
339 Precedence table for operators in the C language
342 Some common proper names
345 The official Unicode character set table
347 rfc-index.txt, fyi-index.txt, std-index.txt, bcp-index.txt
348 Indexes of internet standardization documents.
353 Additions and changes (proposals):
355 1. Add list of current TLDs. (Alfred M. Szmidt <ams@gnu.org>)
356 TLD - top level domain names
357 2. Consider to move the dictionary to project http://wordlist.sourceforge.net/
362 which creates (/home/gxk/.ssh/identity and /home/gxk/.ssh/identity.pub),
363 where key fingerprint is
364 0e:51:eb:bd:85:26:38:8d:12:a0:14:13:a1:17:3b:cc gxk@smiley.scopus.net
365 e0:16:4f:8d:0b:ad:be:f7:ec:0d:e1:80:eb:65:ab:9d gxk@gxk-lnx
368 cvs -z3 -d :ext:gxk@cvs.savannah.gnu.org:/sources/miscfiles co miscfiles
374 Add top-level.domains
375 Change ORIGIN, README, Makefile.in
376 Add scripts/tld/parse_TLDs.sh
381 1= syntax folding for C/C++ files and marker folding for txt.
382 2. closing folds automaticly after search
383 3. jump to the next fold
384 4= change properties of folded line.
385 5. in fdm=manual: how to keep folds after closing file
391 stone-barak.net.il@IBarak
394 scp gxk@linux-s:/stuff2/repository/kernel/tools/tms-cx-tools-26112003.tar.bz2 .
396 export GCC2C_NO_CONVERTER_INVOCATION=0
398 route add -net 0.0.0.0 gw 192.168.2.1
402 patch -p0 < ../0_patch
406 linux_start_kernel() from linux-2.4.x/arch/tms320c6/bios/start_linux.c
407 |-> kki_get_CURRENT()
408 |-> linux_init_task()
409 |-> kki_get_init_task()
415 ISRAM configuration (from <uclinux>/linux-2.4.x/kad/bios/configcfg.cmd)
417 ISRAM : origin = 0x0, len = 0x20000
418 CACHE_L2 : origin = 0x20000, len = 0x20000
419 SDRAM0 : origin = 0x80000000, len = 0x100000
420 SRAM0 : origin = 0xa0000000, len = 0x80000
428 0x0000 0000 0x400 boot
429 ox0010 0000- ISRAM 0xc0000 L2
432 0x6008 0000- SRAM ext
435 0x6480 0000- Flash ~8M
437 0x8000 0000 0x8000 0000 linux ~2M
438 0x8100 0000- SDRAM 0x80c0 0000 loader 128K
440 0xb000 0000 0xb000 0000 romfs
444 0x6400 0000 - 0x640 0000 boot loader
445 0x6402 0000 - linux.out
446 0x6447 f000 - romfs.img
448 Linux boot can load at 0x80000000-0x80c00000 (12M) and 0x00000-0xc0000 (768K)
450 BL map file sections (coff file - linnx.out and data file - romfs) to memory.
455 make linux-dep linux lib-dep lib user-dep user
457 Checkout uClinux-dist:
458 * have script in prjs/scripts/get_all.sh
459 cvs co -r kernel-build-83 uClinux-kernel
460 cvs co -r infra-11 uClinux-infra
461 cvs co -r libs-14 uClinux-libs
462 cvs co -r user-17 uClinux-user
467 cvs rtag -R libs-11 uClinux-libs
472 make linux-2.4.x_clean
474 Build uclinux projects
475 Libs: after 1st make dep && make can rebuild libs w/ `make lib'
476 Users: after 1st make dep && make can rebuild users w/ `make user'
481 source /usr/local/tools/env.src
482 if FC3 add `export LD_ASSUME_KERNEL"2.2.19"'
489 kernelrep bsprep appsrep
490 kerneltrac bsptrac appstrac
494 Building Times History {{{
495 Time for build 1h 27min (k95-i13-l18-u20) on gxk-dt-lnx
496 Time for `make lib' (k97-l14-l21-u20) is 25min on gxk-dt-lnx
498 k114-i19-l33-u31 (gxk-dt-lnx) = 1h 07m
500 k127-i21-l41-u39 (gxk-nb) - my tools w/o cxoffice + new kernel
501 `make' > 15:11 - 16:58 = 01 47
504 main 141-31-45-56 (gxk-dt-lnx FC5) = 1h 31m
507 main 141-31-45-56 (gxk-dt-lnx FC3) = 2h 07m
508 upg 141-31-45-56 (gxk-dt-lnx FC3) = 1h 31m
512 Process creation flow {{{2
513 sys_execve_wrapper() linux-2.4.x/arch/armnommu/kernel/entry-common.S
515 b SYMBOL_NAME(sys_execve)
517 sys_execve() linux-2.4.x/arch/tms320c6/kernel/sys_tms320c6.c
519 | nios_execve() linux-2.4.x/arch/niosnommu/kernel/process.c
521 do_execve() linux-2.4.x/fs/exec.c
523 search_binary_handler()
525 load_coff_binary() from linux-2.4.x/arch/tms320c6/kernel/binfmt_coff.c
527 start_thread() from linux-2.4.x/arch/tms320c6/kernel/processinit.c
529 kad_start_thread() from linux-2.4.x/kad/kernel/start_thread.c
532 Changes for build uClinux for VM1_w/o_AO
533 change at line 250 in <uclinux>/linux-2.4.x/driver/block/blkmem.c address to
536 The jffs2 image should be burned before.
540 View->Memory and change address to 0x80000000
541 Now see KAD symbols where double-click on 0x80000000 and paste previously
542 copied entry point address to Data field.
544 How mamy can be addressed w/ 32b?
545 0 0 00 0000 - this is 32b
556 Print address of text and data from uclinux/linux-2.4.x/kad/coff/coff_cls.c
559 Softier ftp server {{{
563 gxk/softier /mdm3/141/cramfs
567 NTP servers for rdate client
568 192.43.244.18 time.nist.gov
569 128.138.140.44 utcnist.colorado.edu
570 216.200.93.8 nist1-dc.glassey.com
575 mremap() always returns EINVAL from
576 uclinux/linux-2.4.x/arch/tms320c6/kernel/sys_tms320c6.c
577 msync() uclinux/linux-2.4.x/mmnommu/filemap.c
578 always returns ENOSYS from
579 sys_brk() uclinux/linux-2.4.x/mmnommu/filemap.c
581 build libpthreads in Debug:
582 unmark in libpthreads/linuxthreads/Makefile option -DDEBUG_PT
584 Where to take build number from uClinux?
585 uClinux-dist/linux-2.4.x/include/linux/uts.h
587 mount -o remount,wr -t jffs2 rootfs /
589 echo PAL/NTSC > /proc/dmx/config
592 untar, sudo ./vpn_install
593 after that to run it:
594 /etc/init.d/vpnclient_init start
596 vpn connection output:
598 Cisco Systems VPN Client Version 4.0.5 (Rel)
599 Copyright (C) 1998-2003 Cisco Systems, Inc. All Rights
600 Client Type(s): Linux
601 Running on: Linux 2.6.9-1.681_FC3 #1 Thu Nov 18 15:10:
603 Enter a group password:
604 Initializing the VPN connection.
605 Contacting the gateway at 212.143.109.38
606 Negotiating security policies.
607 Securing communication channel.
608 Your VPN connection is secure.
610 VPN tunnel information.
611 Client address: 192.168.5.1
612 Server address: 212.143.109.38
613 Encryption: 168-bit 3-DES
614 Authentication: HMAC-MD5
616 NAT passthrough is inactive
617 Local LAN Access is disabled
619 Disconnecting the VPN connection.
620 [gxk@80 prjs]$ vpnclient connect softier
621 Cisco Systems VPN Client Version 4.0.5 (Rel)
622 Copyright (C) 1998-2003 Cisco Systems, Inc. All Rights Reserved.
623 Client Type(s): Linux
624 Running on: Linux 2.6.9-1.681_FC3 #1 Thu Nov 18 15:10:10 EST 2004 i686
626 Enter a group password:
627 Initializing the VPN connection.
628 Contacting the gateway at 212.143.109.38
629 Negotiating security policies.
630 Securing communication channel.
631 Your VPN connection is secure.
633 VPN tunnel information.
634 Client address: 192.168.5.1
635 Server address: 212.143.109.38
636 Encryption: 168-bit 3-DES
637 Authentication: HMAC-MD5
639 NAT passthrough is inactive
640 Local LAN Access is disabled
648 original tools 24aug2005 - 40 min on gxk-nb
649 w/o cxoffice 24aug2005 - 40 min on gxk-nb
650 + w/ tmpfs 24aug2005 - 60 min on gxk-nb
655 arch/tms320c6/Makefile change to
656 arch/tms320c6/bsl/Makefile change also.
659 uClibc/libpthread/linuxthreads/Makefile
661 libcrypt_old/Makefile
665 Check out kernel source:
671 Kernel - env.src + `export ARCH=tms320c6' + `export LD_ASSUME_KERNEL="2.2.19"' + mkkernel.sh
672 Lib - fix in uClibc/.config value of KERNEL_SOURCE = /home/gxk/prjs/2.6/linux-2.6.7;
674 User - make && make romfs && make image
676 In order not to load data each time have to change file
677 `linux-2.6.7/arch/tms320c6/kernel/vmlinux.lds.s' where line 68 change to
678 `.romfs: align=0x200000 {'
679 This would cancel filling of memory for data (romfs) by newly started kernel.
681 This can be done manualy in CCS. Menus Edit->Memory->Fill, where fill follows
682 Address = 0x80080000 Pattern = 0xffffffff
685 modules placed at initramfs (look http://lwn.net/Articles/14776/), where load
686 happened in arch/tms320c6/usr/initramfs/init
688 25aug2005 currently start/end addresses of root fs create at vmlinux build and
689 placed at ramsfs_start/ramfs_end at System.map or vmlinux.map
690 Same addreses used when jffs2 image created at <user>/config/Makefile
692 Build modules w/ map files>
693 add `-m $@.map' at scripts/Makefile.modpost line 84 (LD command)
695 Link modules w/o output redirection: in file scripts/Makefile.modpost
696 delete `$($(quiet)REDIR_ALL_TO_DEVNULL)' from `cmd_ld_ko_o'
698 To see loaded modules:
699 `cat /proc/modules' or `lsmod'
701 put breakpoint in code:
702 asm(" .word 0x10000000");
704 find arch/tms320c6/ -type f -iname '*.[ch]' | xargs grep GPIO_hGPIO
705 diff -rNu ../linux-2.6.7/drivers/mtd/ drivers/mtd/ |less
707 cvs -q rdiff -u -D 2005/10/26 user-2.6 > patch
713 Build 2.6.16-rt29 {{{
714 `scp gxk@linux-s:/stuff/share/gxk/montavista/linux-2.6.16-rt29.tbz'
715 `scp gxk@linux-s:/stuff/share/gxk/montavista/config-2.6.16-rt29'
716 `tar jxf linux-2.6.16-rt29.tbz'
717 `cd linux-2.6.16-rt29'
720 choose "Load alternative config file"
721 enter `/root/srcs/config-2.6.16-rt29'
725 `make modules_install'
726 `cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.16-fb'
734 get patch-2.6.17-rt8 from http://people.redhat.com/mingo/realtime-preempt/
735 get linux-2.6.17.6 from kernel.org
738 patch -sfp1 < ../patch-2.6.17-rt8
739 cd drivers/video && rm -rf intelfb
745 uncomment SET_DNS in /etc/dhcpc/config
750 Connect board and press enter to stop autoload.
754 setenv serverip 192.168.2.84
755 setenv bootargs 'mem=120M console=ttyS0,115200n8 root=/dev/nfs nfsroot=192.168.2.84:/opt/davinci'
756 setenv bootcmd 'dhcp;setenv serverip 192.168.2.84;tftpboot 0x80700000 uImage;bootm 0x80700000'
757 setenv serverip 192.168.2.84
758 tftpboot 0x80700000 uImage
761 In order to connect usb keyboard:
763 mknod /dev/tty0 c 4 0
764 cat /dev/tty0 - this will print
768 svn co http://192.168.2.227/kernelrep/sigma/trunk/armutils_2.5.127.0
772 `make config' and change chipset to 8622
775 `. ./path.sh' and `. ./kernelpath.sh'
780 All binaries under bin directory.
783 `make config' and change chipset to 8622
787 mount -o nolock 192.168.215:/opt /mnt
795 cp and untar linux-libc-headers-2.4.29.tar.bz2 to toolchain_build_mipsel/linux
796 untar uClibc-0.9.27.tar.bz2 to toolchain_build_mipsel/uClibc-0.9.27
797 patch toolchain_build_mipsel/uClibc-0.9.27 w/ files from toolchain/uClibc/
798 change toolchain_build_mipsel/uClibc-0.9.27/Rules.mak
799 cp toolchain/uClibc/uClibc.config to toolchain_build_mipsel/uClibc-0.9.27/
800 make changes to toolchain_build_mipsel/uClibc-0.9.27/.config
801 build and install uClibc-0.9.27 to toolchain_build_mipsel/uClibc-dev
802 untar binutils-2.15.91.0.2.tar.bz2 and patch it from toolchain/binutils/2.15.91.0.2/
803 configure and build in toolchain_build_mipsel/binutils-2.15.91.0.2-build
804 untar gcc-3.4.2.tar.bz2 to toolchain_build_mipsel/gcc-3.4.2
805 patch to from toolchain/gcc/3.4.2/
806 configure and build toolchain_build_mipsel/gcc-3.4.2-initial to build_mipsel
807 using sysroot=toolchain_build_mipsel/uClibc_dev/
808 cd toolchain_build_mipsel/uClibc-0.9.27/libc/sysdeps/linux/mips/
809 and build ld-uClibc-0.9.27.so
810 cd toolchain_build_mipsel/uClibc-0.9.27/libc/ and build libc.a
811 cd toolchain_build_mipsel/uClibc-0.9.27/libcrypt and build libcrypt.a
812 cd toolchain_build_mipsel/uClibc-0.9.27/libresolv and build libresolv.a
813 cd toolchain_build_mipsel/uClibc-0.9.27/libnsl and build libnsl.a
814 cd toolchain_build_mipsel/uClibc-0.9.27/libutil and build libutil.a
815 cd toolchain_build_mipsel/uClibc-0.9.27/libm and build libm.a
816 cd toolchain_build_mipsel/uClibc-0.9.27/libpthread and build libpthread.a
817 cd toolchain_build_mipsel/uClibc-0.9.27/librt and build librt.a
818 cd toolchain_build_mipsel/uClibc-0.9.27/libc/ and build libuClibc-0.9.27.so
819 Going through dirs and build libdl-0.9.27.so, libcrypt-0.9.27.so,
820 libresolv-0.9.27.so, libnsl-0.9.27.so, libutil-0.9.27.so, libm-0.9.27.so
821 libpthread-0.9.27.so, librt-0.9.27.so
822 Install previously built libs and includes to build_mipsel/staging_dir/
823 configure and build toolchain_build_mipsel/gcc-3.4.2-final
824 install gcc to build_mipsel/staging_dir/
825 untar ccache-2.3.tar.gz to toolchain_build_mipsel/ccache-2.3
826 build and install to build_mipsel/staging_dir/bin-ccache
827 build stuff in tools and install to build_mipsel/staging_dir/bin
837 `make menuconfig', which creates .config,.config.cmd,.tmpconfig.h
838 untar uClibc-0.9.27.tar.bz2 to toolchain_build_mipsel/uClibc-0.9.27 and patch
839 it from toolchain/uClibc/
840 untar linux-libc-headers-2.4.29.tar.bz2 to toolchain_build_mipsel/linux and
841 patch it from toolchain/kernel-headers/
842 change toolchain_build_mipsel/uClibc-0.9.27/Rules.mak
843 cp toolchain/uClibc/uClibc.config toolchain_build_mipsel/uClibc-0.9.27/ and
850 SHARED_LIB_LOADER_PREFIX
853 configure toolchain_build_mipsel/uClibc-0.9.27
854 build stuff under toolchain_build_mipsel/uClibc-0.9.27/utils: ldd, ldconfig,
855 readelf and install to build_mipsel/root/
856 untar ncurses-5.2.tar.gz to build_mipsel/ncurses-5.2 and patch it from
858 configure, build and install to build_mipsel/staging_dir/ and build_mipsel/root
859 untar busybox-1.00.tar.bz2 . . .
860 install build_mipsel/root
861 untar bash-3.0.tar.gz . . .
862 install build_mipsel/root
863 cp <toolchain>/build_mipsel/staging_dir/lib/ld-uClibc-0.9.27.so to
864 build_mipsel/root/lib/
865 same for follows: libuClibc-0.9.27.so, libdl-0.9.27.so, etc.
866 untar cramfs-1.1.tar.gz and create root_fs_mipsel.cramfs from
872 untar linux-2.6.15.tar.bz2 and patch it from pf/patches/linux-2.6.15/
873 cp config-2.6.15-smp86xx to linux-2.6.15/.config
874 Make vmlinux modules modules_install zbimage-linux-xrpc
877 cd ~/prjs/sigma8634/142
878 svn co http://192.168.2.227/kernelrep/sigma-34/trunk/smp86xx fc5
881 comment all MRUA vars in smp86.env
882 cp -r ../dl ./smp86xx_toolchain_2.7.147.0/
883 cd ./smp86xx_toolchain_2.7.147.0
884 vi ./toolchain/uClibc/Config.in and change locale to y
885 vi ./toolchain/gdb/Config.in and change gdb to n
886 cp ../uClibc.config-locale ./toolchain/uClibc/uClibc.config-locale
893 cd smp...kernel/linux
895 make vmlinux (should error)
897 cp ../uClibc.config-tools ./toolchain/uClibc/uClibc.config
900 cd smp...kernel/linux
903 delete printk() in MRUA_src/rua/emhwlib_kernel/kernel_src/em8xxx_fb.c
906 rm -rf lib/{librmjpeg.so,librmhttp.so, libsamples.so}
908 make librmjpeg.so librmhttp.so libsamples.so
911 cd smp...kernel/linux
913 General Setup -> initramfs source file;
914 Device drivers -> Graphics support -> * Support FB
915 File systems -> Network file systems -> * NFS filesystem support and * Root file system on NFS
916 make vmlinux modules modules_install zbimage-linux-xrpc
921 sudo cp smp86xx_boot_loader_2.7.142.0/bin/* /tftpboot/sigma8634/142/
922 sudo cp linux/arch/mips/boot/vmlinux.bin /tftpboot/sigma8634/142/
923 sudo cp -r smp86xx_rootfs_2.7.142.0/build_mipsel/nfsroot /opt/sigma8634/142/
926 load -b tftp://192.168.2.84/sigma8634/142/zboot2.bin 0xb0100000
927 load -b tftp://192.168.2.84/sigma8634/142/zbimage-yamon 0xb0200000
928 pflash write 0x00000 0xb0100000 328020
929 pflash write 0x60000 0xb0200000 199680
932 setxenv a.linux_cmd console=ttyS0\ lpj=148480\ ip=dhcp\ root=/dev/nfs\ nfsroot=192.168.2.84:/opt/sigma8634/142/nfsroot,v3,nolock
933 load -b tftp://192.168.2.84/sigma8634/142/vmlinux.bin 0x90020000
935 export LD_LIBRARY_PATH="/mrua/lib:/mnt/gtkdfb/lib"
936 /mrua/bin/osdbuf_control -c -Ftc:32bpp
937 insmod em8xxxfb <info from previous>
938 mount -o nolock 192.168.2.84:/opt/sigma8634/142/gtkdfb /mnt/gtkdfb
939 mount -o nolock 192.168.2.84:/opt/sigma8634/142/mozilla /mnt/mozilla
942 if build on FC6 do `. ~/gcc34.env'
943 tar jxf /misc/share/sigma8634/147/smp86xx_toolchain_2.7.147.0.tar.bz2
944 cp -r ../dl ./smp86xx_toolchain_2.7.147.0/
945 cd ./smp86xx_toolchain_2.7.147.0
946 vi ./toolchain/uClibc/Config.in and change locale to y
947 vi ./toolchain/gdb/Config.in and change gdb to n
948 cp ../uClibc.config-tools ./toolchain/uClibc/uClibc.config-locale
951 . ./toolchain-path.env
953 tar zxf /misc/share/sigma8634/147/CPU_KEYS_SMP8634_xosMc0-1.tar.gz
954 cd ./CPU_KEYS_SMP8634_xosMc0-1
957 tar jxf /misc/share/sigma8634/147/smp86xx_boot_loader_2.7.147.0.tar.bz2
958 cd ./smp86xx_boot_loader_2.7.147.0
959 ln -s ./tools/genxenv/configs/852-E2.config xenv.config
963 tar jxf /misc/share/sigma8634/147/smp86xx_rootfs_2.7.147.0.tar.bz2
964 cp -r ../dl ./smp86xx_rootfs_2.7.147.0
965 cd ./smp86xx_rootfs_2.7.147.0
966 cp ../uClibc.config-tools ./toolchain/uClibc/uClibc.config
971 tar jxf /misc/share/sigma8634/147/smp86xx_kernel_source_2.7.147.0.tar.bz2
972 cp ./dl/linux-2.6.15.tar.bz2 ./smp86xx_kernel_source_2.7.147.0/
973 cd ./smp86xx_kernel_source_2.7.147.0
974 make kernel-source-2.6.15
977 General Setup -> initramfs source file;
978 Device drivers -> Graphics support -> * Support FB
979 File systems -> Network file systems -> * NFS filesystem support and * Root file system on NFS
980 make vmlinux modules modules_install zbimage-linux-xrpc
981 cp ./arch/mips/boot/vmlinux.bin /tftpboot/sigma8634/147/
983 tar zxf /misc/share/sigma8634/147/mrua_SMP8634_2.7.147.0_legacy_dev.mips.nodts.tgz
984 export UCLINUX_KERNEL=/home/gxk/prjs/sigma8634.fc3/147/smp86xx_kernel_source_2.7.147.0/linux-2.6.15
985 cd ./mrua_SMP8634_2.7.147.0_legacy_dev.mips.nodts
990 cd ../smp86xx_rootfs_2.7.147.0
996 load -b tftp://192.168.2.70/sigma8634/142/vmlinux.bin 0x90020000
998 export LD_LIBRARY_PATH="/mrua/lib:/mnt/gtkdfb/lib"
999 /mrua/bin/osdbuf_control -c -Ftc:32bpp
1000 insmod em8xxxfb <info from previous>
1001 mount -o nolock 192.168.2.70:/opt/sigma8634/142/gtkdfb /mnt/gtkdfb
1003 Rebuild MRUA libs (librmjpeg.so, librmhttp.so):
1006 pushd MRUA_src/rmlibjpeg/src/
1008 cp librmjpeg.so ../../lib
1011 Get yamon prompt `YAMON>', where write:
1012 load uu -z 0xb0100000
1013 On the host do (as root):
1014 gzip -c zboot2.bin | uuencode x > /dev/ttyS0
1015 pflash write 0x0 0xb0100000 <length in hex>
1017 On the host do (as root):
1018 gzip -c zbimage-yamon | uuencode x > /dev/ttyS0
1019 pflash write 0x40000 0xb0100000 <length in hex>,
1020 where length can be taken from download report called "output length"
1023 and on host side from linux-2.6.15/arch/mips/boot/
1024 uuencode zbimage-linux-xrpc x > /dev/ttyS0
1025 pflash write 0x80000 0xb0100000 <length>
1026 where length can be taken from download report called "received"
1028 Loading kernel from flash to RAM:
1032 username `root' and when gets shell prompt
1033 ifconfig eth0 192.168.2.179
1034 route add default gw 192.168.2.1
1036 The device file placed at <rootfs>/target/generic/device_table.txt
1037 MRUA_src/rua/emhwlib_kernel/kernel_src/...
1040 `setxenv a.linux_cmd console=ttyS0\ lpj=148480\ ip=dhcp\ root=/dev/nfs\ nfsroot=192.168.2.84:/opt/sigma8634/142/nfsroot,nolock'
1041 [ mknod /dev/mum0 c 126 0 ]
1042 [ mknod /dev/em8xxx0 c 127 0 ]
1043 [ mknod /dev/em8xxx1 c 127 1 ]
1046 load -b tftp://192.168.2.70/sigma8634/142/vmlinux.bin 0x90020000
1050 export LD_LIBRARY_PATH="/mrua/lib:/mnt/gtkdfb/lib"
1051 /mrua/bin/osdbuf_control -c -Ftc:32bpp
1052 insmod em8xxxfb <info from previous>
1053 mount -o nolock 192.168.2.70:/opt/sigma8634/142/gtkdfb /mnt/gtkdfb
1057 mount -o nolock 192.168.2.84:/opt/sigma34 /mnt
1059 Compile uClibc w/ locale support
1060 set BR2_ENABLE_LOCALE to yes under <toolchain src>/toolchain/uClibc/Config.in
1061 and run `make' from top dir.
1068 usb0 - IRP 192.168.0.10
1069 ttyr00 - IRP 192.168.0.20
1070 ttyr01 - IRP 192.168.0.30
1074 There is telnet and web interfaces.
1077 connect ftp (anonymous)
1083 Satellite config Hotbird {{{
1085 Canale Italia 12245 H (L 1645) x77-119
1086 RTVi - HotBird 8 - 12322 H (1722) - Conax, MediaGuard, Viaccess 2.5/2.6
1087 Freq - 1185 + 10600 = 11785
1088 11862 - 10600 = 1262 Sky Italia (progID 4327)
1089 11804 - 10600 = 1204 RAI
1091 mpeg4-hd 12130 > 1530
1093 10723 (973) H 29900 3/4 - BuzzTV x120d=4621
1097 11996 V (L 1396) - Videoguard - (Sky Italia)
1106 protect/log/set_log_level
1109 username root, no passwd
1110 put ird2900_application.bin /rom/sw_image.bin
1111 It will start upgrade
1115 IRP files to change for adding db api and related cli {{{
1117 db/sql/irp.sql - db version
1118 common/inc/irp_product.h - db version
1119 db/src/db_request_data.cpp
1120 common/inc/config_attr_data.h
1124 /home/gxk/scopus/irp/dev/sw/cfgmgr/src/req_map.cpp
1125 /home/gxk/scopus/irp/dev/sw/cli/inc/params_order.h
1126 /home/gxk/scopus/irp/dev/sw/cli/xml/gjobs.xml
1127 /home/gxk/scopus/irp/dev/sw/common/inc/config_attr_data.h
1131 Copy full fpga project
1133 Copy files xmd_ppc405_0.opt and xmd_ppc405_1.opt to <project>/etc/
1134 Copy binary u-boot to <project> dir
1137 New terminal opened w/ prompt XMD%. Type follows:
1141 section, .text: 0x03300000-0x0332157f
1142 section, .resetvec: 0x033300e8-0x033300eb
1143 section, .rodata: 0x03321580-0x03326327
1144 section, .reloc: 0x03326400-0x033271db
1145 section, .data: 0x033271dc-0x03327a03
1146 section, .data.rel.local: 0x03327a04-0x03327ea3
1147 section, .data.rel: 0x03327ea4-0x03327ecf
1148 section, .u_boot_cmd: 0x03327ed0-0x03328397
1149 section, .bss: 0x03328400-0x033300e7
1150 Downloaded Program u-boot
1151 Setting PC with Program Start Address 0x03300100
1154 Xilinx tools on linux {{{
1155 --- Installing ISE 9.1
1158 ISE registration id 8967-1972-8833-8277
1159 EDK registration id 0487-6041-7416-4274
1160 Chipscope (9.1 Linux)
1162 --- Installing ISE 10.1
1163 /media/Xilinx_ISE_DS/setup
1167 --- Set frontend input
1177 export LD_PRELOAD=/opt/x86/lib/libusb-driver.so
1178 export LD_LIBRARY_PATH=/opt/EDK/bin/lin:/opt/Xilinx91i/bin/lin:/opt/x86/lib
1184 export XIL_IMPACT_USE_LIBUSB=1
1187 --- Running XMD from shell
1188 connect ppc hw -cable type xilinx_platformusb -configdevice devicenr 2 idcode 01eb4093 irlength 14 partname XC4VFX60
1192 IRP flash mapping {{{
1193 18may2008 10sep2008 03nov2008
1194 offset size name start addr end addr
1195 ------------|--------------------|---------------|---------------|-------------
1196 0x0000 0000 0x00040000 2*128K mb spartan 0xb000 0000 0xb003 ffff
1197 0x0004 0000 0x00320000 3M+128K mb virtex 0xb004 0000 0xb036 0000
1198 0x0080 0000 0x00100000 1M bootloader 0xb080 0000 0xb090 0000
1199 0x0092 0000 0x01400000 20M kernel 0xb092 0000 0xb1d2 0000
1200 0x01d4 0000 0x02800000 40M user 0xb1d4 0000 0xb454 0000
1201 0x0456 0000 0x00a00000 10M ems 0xb4f6 0000 0xb6d6 0000
1202 0x04f8 0000 0x01400000 20M jre 0xb4f8 0000 0xb5fc 0000
1204 --- Upgrade main board spartan
1205 bitBurn 3800000 spartan.bin
1206 erase b0000000 b003ffff
1207 cp 3800000 b0000000 2480c
1209 ---===<<< GOLD VERSION >>>===---
1211 offset size name start addr end addr
1212 ------------|---------------------|---------------|---------------|-------------
1213 0x0000 0000 0x00040000 2*128K mb spartan 0xb000 0000 0xb004 0000
1214 0x0004 0000 0x002a0000 2M+6*128K mb gold virtex 0xb004 0000 0xb02e 0000
1215 0x002e 0000 0x002a0000 2M+6*128K mb norm virtex 0xb02e 0000 0xb058 0000
1216 0x0080 0000 0x00100000 1M bootloader 0xb080 0000 0xb090 0000
1217 0x0092 0000 0x01400000 20M kernel 0xb092 0000 0xb1d2 0000
1218 0x01d4 0000 0x02800000 40M user 0xb1d4 0000 0xb454 0000
1219 0x0456 0000 0x00a00000 10M ems 0xb456 0000 0xb6d6 0000
1220 0x04f8 0000 0x01400000 20M jre 0xb4f8 0000 0xb5fc 0000
1225 The IRP board have 3 different i2c buses, start from hardware rev B.
1233 Enlarge available memory Of IRP {{{
1237 u-boot/dev/board/xilinx_irp/ml405/xparameters.h from "DDR_SIZE 0x8000000"
1238 to "DDR_SIZE 0xE000000" 128+64+32.
1239 or "DDR_SIZE 0xa000000" 160 MB.
1242 IRP configurations {{{
1248 /config/decoder/service/
1253 --- disable new PMT for ASI1.out
1254 /config/interface/output/multiplex/psi_si/enable_transmission 1 pmt no
1258 Running CLI scripts {{{
1259 Prepare file cli.cmd where
1260 /status/unit/versions/sw_ver
1263 cat cli.cmd | ./cli.elf
1267 ftp.scopus.net u: irp p: scopus folder irp
1268 ftp.scopusamericas.com u: gues1 p: guest07
1274 proxy configurations
1275 athena:8080 except 10.*.*.*,192.168.210.*,hebe.scopus.net,62.90.123.44
1277 sleepy MB: Intel DG965SS BIOS: MQ96510J.86A updated 16jul2007
1278 bashfull 2:15:17:38:CB:F5
1279 smiley MB: Intel DG965WH 00:19:D1:7F:E1:C8 updated maj2008
1280 grumpy 00:B0:D0:5F:D9:55
1282 CVS 2401, 4000 (TCP/UDP)
1286 smbmount //hercules/public$ /mnt/tmp -o username=geryk,workgroup=scopus
1288 //hercules/users/geryk
1296 //hercules/users$ /mnt/hercules/users smbfs username=michaw,password=m12345!,workgroup=scopus,uid=root,noauto,user,rw 0 0
1297 //hercules/public$ /mnt/hercules/public smbfs username=michaw,password=m12345!,workgroup=scopus,uid=root,noauto,user,rw 0 0
1298 //Artemis/temp$ /mnt/hercules/temp smbfs username=michaw,password=m12345!,workgroup=scopus,uid=root,noauto,user,rw 0 0
1299 //hercules/rnd$ /mnt/hercules/rnd smbfs username=michaw,password=m12345!,workgroup=scopus,uid=root,noauto,user,rw 0 0
1300 //hercules/oldshare$ /mnt/hercules/oldshare smbfs username=michaw,password=m12345!,workgroup=scopus,uid=root,noauto,user,rw 0 0
1302 -- Build printers (as root) {{{
1303 copy rndonIxion.ppd to /usr/share/cups/model/
1304 lpadmin -p rndonIxion -m rndonIxion.ppd -v smb://SCOPUS/IXION/RnD -D "IRP_Group"
1306 lpadmin -d rndonIxion
1307 Need to add username/password from gui (system-config-printer)
1309 --- Setting Uboot on ML-405 {{{
1311 setenv bootargs 'mem=120M console=ttyS0,115200n8 root=/dev/nfs nfsroot=192.168.2.84:/opt/davinci'
1312 setenv bootcmd 'dhcp;setenv serverip 192.168.2.84;tftpboot 0x80700000 uImage;bootm 0x80700000'
1315 setenv baudrate 115200
1317 setenv ethaddr 00:0a:35:00:22:01
1318 setenv netboot 'tftp 3800000 pMulti; bootm 3800000'
1319 setenv ipaddr 10.2.1.111
1320 setenv serverip 10.2.1.41
1321 setenv loadip 10.2.1.111
1322 setenv gatewayip 10.2.0.1
1323 setenv netmask 255.255.252.0
1324 setenv hostname gxk_irp
1327 setenv hw_rev 503227A
1329 setenv serial_num 12345
1330 setenv bootargs_base console=ttyS0,115200 root=/dev/ram rw
1331 setenv addip 'setenv bootargs ${bootargs_base} ip=${loadip}:${serverip}:${gatewayip}:${netmask}:${hostname}:${netdev}:${use_dhcp}'
1332 setenv bootcmd 'run addip; run netboot'
1335 setenv bootcmd 'run addip; bootm b0900000'
1337 --- NFS mount from ML405 board
1338 mount -o nolock,tcp 10.2.1.41:/opt/ppc405 /mnt
1340 IRP SNMP agent config (17oct2007) {{{
1341 SNMP Versions Supported: 1 2c 3
1342 Net-SNMP Version: 5.4.1
1344 Network transport support: Callback Unix TCP UDP
1345 SNMPv3 Security Modules: usm
1346 Agent MIB code: ucd-snmp/dlmod mibII/system_mib mibII/sysORTable default_modules => util_funcs util_funcs mibII/system_mib snmpv3mibs mibII/snmp_mib mibII/system_mib mibII/sysORTable mibII/vacm_vars utilities/execute
1347 Embedded Perl support: disabled
1348 SNMP Perl modules: disabled
1349 SNMP Python modules: disabled
1350 Authentication support: MD5 SHA1
1351 Encryption support: DES AES
1357 IBM server (NASDAQ) {{{
1361 MAC: 00-21-5e-4f-84-fa
1362 s/n: 7976KJG-KD8489N
1364 support phone: *6557
1370 gery.kahn@espinc.com
1374 wireless solution for Sting3G, SingHD n StingCOFDM {{{
1375 from \\server\Running Projects\Sting 3G\HW\DataSheets\WiFi_BT\WG7310-00-HDG-R01_2009.pdf
1376 and Wireless core from SWAS0013_WiLink_6_0_WL1273_Product_Prevew_Rev0.5.pdf
1378 The project using chip from Jorjin company called WG7310. It is module or
1379 package of 2 cores from TI:
1381 Accepting code from Ohad 30nov12009 {{{
1383 The tarball named DM365-1271-v1.tar.bz2 contents follow:
1384 arago-rootfs-3.36 - rootfs from Arago project
1386 kernel - kernel, paches and drivers
1387 packages - open source prjs, used for Bluetooth solution
1388 wlan-driver - wireless solution for the project chip
1394 Sting 3G, HD, COFDM {{{
1396 --- dm365 NAND properties
1398 block - 64 pages - 128KB
1399 Cheap has 8192 blocks 8192*128KB=1GiB
1405 tftp 80700000 uImage
1406 nand erase x400000 0x200000
1407 nand write x80700000 x400000 x200000
1410 tftp 0x82000000 ramdisk.gz
1411 nand erase 0xc00000 0x300000
1412 nand write 0x82000000 0xc00000 0x300000
1414 --- Using jtag USB510L w/ dm365
1415 Copy gel file to C:\CCStudio_v3.3\cc\gel\evmdm365_gel_Board_Rev_C+D.gel and
1416 the config file to C:\CCStudio_v3.3\drivers\import\Sightsys_BH-USB510L_DM365.ccs
1417 Open CCS setup. Import config file.
1418 Appears new device in System Configuration window.
1419 Open properties of ARM9_0 and change gel file to previously added.
1420 Save & close. This will start CCS (Parallel Debug Manager)
1421 Open right-click menu on ARM9_0 and Connect to device.
1422 Open right-click menu on ARM9_0 and Open.
1425 ARM9_0 - Connect device
1427 Debug/Open from dm36x/CCS/NAND Writer/Debug/*.out (from PSP package - NANDwriter_DM36x.out)
1429 Give UBL_DM36x_NAND.bin w/ entire path
1430 Give u-boot-1.3.4-dm365_evm.bin w/ entire path
1431 Give both U-booth entry point n load address value 0x81080000
1433 --- Using NANDeraser
1435 It will ask to input the locagtion where NAND is connected: 0x02000000
1436 This will erase the lower part of the flash.To erase upper run the program again and
1440 Under <PSP>/board_utilities/flash_utils/DM36x/CCS/
1442 --- Flash (nand) mt29f16g08faa
1443 This is 16gb capacity, block size 128KB, page size 2KB
1445 --- dm365 Flash map {{{
1446 bootloader 30*128KB = x3c0000
1447 params 2*128KB = x040000 _____ x400000
1448 kernel 4MB = x400000
1449 fs1 512MB = x20000000
1458 setenv bootargs0 'console=ttyS0,115200n8 noinitrd rw ip=dhcp root=/dev/nfs nfsroot=192.168.1.23:/opt/rootfs,nolock mem=80M video=davincifb:vid0=OFF:vid1=OFF:osd0=OFF'
1459 setenv bootargs1 'dm365_imp.oper_mode=0 davinci_capture.device_type=4 davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=ntsc'
1460 setenv bootargs ${bootargs0} ${bootargs1} setenv serverip 192.168.1.23 setenv bootcmd 'dhcp;bootm'
1464 setenv bootargs0 'console=ttyS0,115200n8 noinitrd ip=off root=/dev/mtdblock3 ro rootfstype=jffs2 mem=80M video=davincifb:vid0=OFF:vid1=OFF:osd0=OFF'
1465 setenv bootargs1 'dm365_imp.oper_mode=0 davinci_capture.device_type=4 davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=ntsc'
1466 setenv bootargs ${bootargs0} ${bootargs1} setenv bootcmd 'nboot 0x80700000 0 0x400000; bootm'
1470 setenv bootargs0 'console=ttyS0,115200n8 noinitrd ip=off root=/dev/mtdblock3 rootfstype=yaffs2 rw mem=80M video=davincifb:vid0=OFF:vid1=OFF:osd0=OFF'
1471 setenv bootargs1 'dm365_imp.oper_mode=0 davinci_capture.device_type=4 davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=ntsc'
1472 setenv bootargs ${bootargs0} ${bootargs1} setenv bootcmd 'nboot 0x80700000 0 0x400000; bootm'
1476 setenv bootargs0 'console=ttyS0,115200n8 root=/dev/ram0 rw initrd=0x82000000,3M ip=off mem=80M video=davincifb:vid0=OFF:vid1=OFF:osd0=OFF'
1477 setenv bootargs1 'dm365_imp.oper_mode=0 davinci_capture.device_type=4 davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=ntsc'
1478 setenv bootargs ${bootargs0} ${bootargs1} setenv serverip 192.168.1.23 setenv bootcmd 'nand read 0x82000000 0x800000 0x400000; nboot 0x80700000 0 0x400000; bootm'
1481 setenv serverip 192.168.1.41
1482 setenv ipaddr 192.168.1.131
1483 setenv bootargs1 'console=ttyS0,115200n8 noinitrd rw ip=dhcp root=/dev/nfs nfsroot=192.168.1.41:/opt/dm365/rootfs,nolock mem=80M'
1484 setenv bootargs2 'video=davincifb:vid0=OFF:vid1=OFF:osd0=OFF'
1485 setenv setargs 'setenv bootargs ${bootargs1} ${bootargs2}'
1486 setenv net_boot 'run setargs; tftp 80700000 uImage; bootm 80700000'
1487 setenv bootcmd 'run net_boot'
1490 setenv serverip 192.168.1.41
1491 setenv ipaddr 192.168.1.131
1492 setenv bootargs1 'console=ttyS0,115200n8 noinitrd mem=80M'
1493 setenv nfsargs 'ip=dhcp root=/dev/nfs nfsroot=192.168.1.41:/opt/dm365/rootfs,nolock rw'
1494 setenv yaffs2args 'ip=off root=/dev/mtdblock3 rootfstype=yaffs2 rw'
1495 setenv videoargs 'video=davincifb:vid0=OFF:vid1=OFF:osd0=OFF'
1496 setenv setnfsargs 'setenv bootargs ${bootargs1} ${videoargs} ${nfsargs}'
1497 setenv setyaffs2args 'setenv bootargs ${bootargs1} ${videoargs} ${yaffs2args}'
1498 setenv net_nfs_b 'run setnfsargs; tftp 80700000 uImage; bootm 80700000'
1499 setenv local_nfs_b 'run setnfsargs; nboot 80700000 0 400000; bootm'
1500 setenv local_local_b 'run setyaffs2args; nboot 80700000 0 400000; bootm'
1501 setenv net_local_b 'run setyaffs2args; tftp 80700000 uImage; bootm 80700000'
1502 setenv bootcmd 'run net_nfs_b'
1509 SIM free is 080.250.159.037 - SIM 971 - 052-5236299
1515 sudo /bin/tar -C /work/zoom2 -xjf ./wl1271-v2/zoom2/rootfs.tar.bz2
1516 sudo /bin/tar -C /work/bb/1273 -cjf /work/apps/beagleboard/rootfs-bb-29nov2010.tar.bz2 .
1517 sudo /bin/chmod o+w -R --preserve-root /work/zoom2/myfs2
1518 sudo /bin/chown a0387671:generic -R --preserve-root /work/bb/Angstrom/lib/pkgconfig/libnl-2.1.pc
1520 sudo /etc/init.d/nfs-kernel-server restart
1521 sudo /bin/rm -Rf --preserve-root /tmp/evil-wlan/
1522 sudo /bin/rm -Rf --preserve-root /media/disk/
1523 sudo /bin/mkdir -m 777 /media/disk/abc
1524 sudo /bin/cp -ax /work/zoom2/nfsroot/lib/modules/2.6.35-wl-48655-g842c161-dirty /media/disk/lib/modules/
1525 sudo /bin/cp -ax /work/zoom2/1273 /work/bb
1526 git archive HEAD | gzip > wl12xx-06oct2010.tar.gz
1527 sudo /usr/bin/tail -f /var/log/messages
1529 Prepare SDcard. Follows will format n mount:
1530 /etc/osa/bin/sd_card_helper /dev/sdd -am
1531 copy MLO, u-boot.bin, uImage to /media/boot
1533 Repare maping on Windows machine:
1534 cd \\dncad02\NETLOGON\Israel
1540 iw event > /var/log/iwevents
1541 wpa_supplicant -P/var/run/wpa_supplicant.pid -iwlan0 -c/etc/wpa_supplicant.conf -Dnl80211 -f/var/log/wpa_supplicant.log
1542 iw wlan0 cqm rssi -55 2
1543 wpa_supplicant -ddt -iwlan0 -c/etc/wpa_supplicant.conf -Dnl80211
1546 setenv bootcmd 'mmcinit 0; fatload mmc 0 0x81c00000 uImage; bootm 0x81c00000'
1547 setenv bootargs mem=256M console=ttyS0,115200n8 noinitrd root=/dev/nfs rw nfsroot=137.167.20.65:/home/nfs,nolock,devfs=mount ip=137.167.21.31
1550 1271 W B G 1281 W B G FM
1561 --- Front end modules (FEM)
1562 FEM is separate chip from WLAN w/ own numbers.
1563 There are 2 FEM (RFDM n TQS).
1567 The RFDM v3.5 works good w/ fw v336, has no dual band (no 5GHz)
1568 The TQS v1.7 should be for dual band.
1570 The fw should get from drv radio params depend on FEM. The automatic detection
1573 How to find which FEM onboard? To read from chip.
1575 Is carrier board changes because of FEM???
1577 How tiwlan_dual_1273.ini get updated??? To talk w/ Boris Presman
1579 --- To check which FEM is it? (from Rinat Mansour)
1580 Go to windows map (N) for Engineering>PROJ>WLAN>1273...
1586 RFMD 3.5 - PCA-A-033404
1592 Quattro ext / int 26MHz
1594 On Trio written on the chip on the board's traverse
1597 Trio on external board needs on board PCB-036701
1598 to set jumper J22 connect pin 1 n 2.
1599 Quattro on external board needs on board PCB-036701 to disconnect
1600 jumper J22 connect pin 1 n 2.
1608 http://mcsdocs.isr.asp.ti.com:81/WLAN/index.php?dir=MCS_WLAN_Docs/System%20Integration/Wilink%20Projects/Wilink%206/WL6.1/Top%20Init/
1610 http://mcsdocs.isr.asp.ti.com:81/WLAN/index.php?dir=MCS_WLAN_Docs/System Integration/Wilink Projects/Wilink 7/wilink 7.1/init/
1613 http://mcsdocs.isr.asp.ti.com/WLAN/index.php?dir=CCSS_IL_RnD_Docs/Architecture/WiLink%20Products/Feature%20Specs/&file=Receive%20Packet%20Filtering%20FS.doc
1625 ssh -lgeryk wizery.com -p13117
1629 git clone ssh://wizery.com:/pub/wl1271.git
1636 PCB-033404 - wless card
1637 PCB-036702 - mb card
1639 and fix in arch/arm/mach-omap2/board-zoom-peripherals.c (07dec2010)
1640 #define OMAP_ZOOM_WLAN_PMENA_GPIO (157)
1641 .board_ref_clock = 2,
1642 .board_tcxo_clock = 1
1643 .caps = MMC_CAP_4_BIT_DATA | MMC_CAP_POWER_OFF_CARD
1645 Build krnl for zoom3 (2.6.36-rc6):
1647 System Type -> TI OMAP2/3/4 Specific Features -> OMAP3630 Zoom3 board
1652 http://elinux.org/BeagleBoard#Source
1654 OMAP3630/3730-GP ES2.0, CPU-OPP2, L3-165MHz, Max CPU Clock 1 Ghz
1657 git clone git://gitorious.org/x-load-omap3/mainline.git xloader
1660 make omap3530beagle_config
1663 git clone git://git.gitorious.org/beagleboard-validation/u-boot.git
1664 git clone git://git.denx.de/u-boot.git u-boot-main
1666 git checkout --track -b omap3 origin/master
1667 make CROSS_COMPILE=arm-none-linux-gnueabi- mrproper
1668 make CROSS_COMPILE=arm-none-linux-gnueabi- omap3_beagle_config
1669 make CROSS_COMPILE=arm-none-linux-gnueabi-
1671 --- Enable ethernet on xM
1672 create etc/sysconfig/network-scripts/ifcfg-eth0 with follows
1677 NETMASK=255.255.255.0
1683 insmod /lib/modules/2.6.38-rc4-wl-gxk-00332-gaaa9dbb-dirty/kernel/drivers/net/usb/smsc95xx.ko
1684 insmod /lib/modules/2.6.38-rc4-wl-gxk-00332-gaaa9dbb-dirty/kernel/drivers/net/usb/usbnet.ko
1686 --- Prepare u-boot env file for xM
1689 --- Burn images to NAND from u-boot:
1693 fatload mmc 0 0x80200000 x-load.bin.ift
1696 nand write.i 0x80200000 0 80000
1698 fatload mmc 0 0x80200000 flash-uboot.bin
1699 nand erase 80000 160000
1700 nand write.i 0x80200000 80000 160000
1702 fatload mmc 0 0x80300000 uImage
1703 nand erase 280000 47FFFF
1704 nand write.i 0x80300000 280000 1FFFFF
1705 nand erase 280000 400000
1706 nand write.i 0x80300000 280000 400000
1713 Board ref clock is 38.4MHz from omap_panda_wlan_data.board_ref_clock
1714 arch/arm/mach-omap2/board-omap4panda.c
1716 TWL6030 power management companion chip
1742 if PART_WORK n addr is 0x00300004
1743 this is region reg n real addr is
1744 real addr = addr - mem.sz + reg.st
1745 0x00300004 - 0x14fc0 + 0x00300000 ???
1752 from http://mcsdocs.isr.asp.ti.com/WLAN/vobs/MCS_WLAN_Docs/ASIC/WiLink%20Products/WiLink%207/registers/latest_register_files/wsoc/soc_1273_vbus.html#IO_Control_CHIP_ID_B
1754 To read arch (Trio/Quattro/Penta) from reg SOC CHIP_ID_B addr 0x0030 5674,
1756 31:16 give 0403 Trio, 0503 Quattro
1762 To read PG ver from TOP reg REG_FUSE_DATA_2_1 from 0x050a (127x), where bits
1765 The REG_FUSE_DATA_2_1 for 128x is 0x2152
1767 In case of Trio there is additional reg from TOP 0x0000 051a, where bits
1770 _plt_start() (main.c)
1772 | |-> read chip_id from reg CHIP_ID_B
1773 |-> _boot() (boot.c)
1774 | |-> _load_firmware()
1775 | |-> wl127x_boot_clk()
1776 | | |-> _boot_hw_version()
1777 | | |-> read reg REG_FUSE_DATA_2_1
1779 | |-> wl128x_boot_clk()
1787 The driver should define partitions w/ start addr and size.
1789 DRP - Digital Radio Processor
1791 from drivers/net/wireless/wl12xx/wl1271_io.c
1794 /* Set the SPI partitions to access the chip addresses
1796 * To simplify driver code, a fixed (virtual) memory map is defined for
1797 * register and memory addresses. Because in the chipset, in different stages
1798 * of operation, those addresses will move around, an address translation
1799 * mechanism is required.
1801 * There are four partitions (three memory and one register partition),
1802 * which are mapped to two different areas of the hardware memory.
1808 * ...+----+--> mem.start
1809 * Physical address ... | |
1810 * space ... | | [PART_0]
1812 * 00000000 <--+----+... ...+----+--> mem.start + mem.size
1816 * mem.size <--+----+... | | {unused area)
1819 * mem.size | | ... | |
1820 * + <--+----+... ...+----+--> reg.start
1821 * reg.size | | ... | |
1822 * |MEM2| ... | | [PART_1]
1824 * ...+----+--> reg.start + reg.size
1835 Load modules wl12xx_sdio
1836 Start wless interface
1841 wl1271_plt_start() or
1843 wl1271_chip_wakeup()
1845 |-> wl1271_fetch_firmware() - read fw file to structure
1846 |_> wl1271_fetch_nvs() - read nvs file to structure
1849 |-> wl1271_load_firmware()
1851 | |-> wl1271_boot_upload_nvs()
1853 | |_> wl1271_boot_upload_firmware()
1854 |-> wl1271_boot_run_firmware()
1855 |-> wl1271_boot_enable_interrupts()
1856 |_> wl1271_event_mbox_config()
1859 |-> wl1271_cmd_general_parms()
1860 | send TEST_CMD_INI_FILE_GENERAL_PARAM
1861 |-> wl1271_cmd_radio_parms
1862 | send TEST_CMD_INI_FILE_RADIO_PARAM
1863 |-> wl1271_cmd_ext_radio_parms()
1864 | send TEST_CMD_INI_FILE_RF_EXTENDED_PARAM
1870 TXBiPFEMManufacturer
1871 RefClk wl1271_ini_general_params 1
1872 SettlingTime wl1271_ini_general_params 1
1873 ClockValidOnWakeup wl1271_ini_general_params 1
1874 DC2DCMode wl1271_ini_general_params 1
1875 Single_Dual_Band_Solution wl1271_ini_general_params 1
1876 Settings wl1271_ini_general_params 1
1877 SRState wl1271_ini_general_params 1
1878 SRF1 wl1271_ini_general_params 16
1879 SRF2 wl1271_ini_general_params 16
1880 SRF3 wl1271_ini_general_params 16
1882 RxTraceInsertionLoss_2_4G wl1271_ini_band_params_2 1
1883 TXTraceLoss_2_4G wl1271_ini_band_params_2 1
1884 RxRssiAndProcessCompensation_2_4G wl1271_ini_band_params_2 15
1886 RxTraceInsertionLoss_5G wl1271_ini_band_params_5 7
1887 TXTraceLoss_5G wl1271_ini_band_params_5 7
1888 RxRssiAndProcessCompensation_5G wl1271_ini_band_params_5 15
1890 FEM1_TXBiPReferencePDvoltage_2_4G
1891 FEM1_TxBiPReferencePower_2_4G
1892 FEM1_TxBiPOffsetdB_2_4G
1893 FEM1_TxPerRatePowerLimits_2_4G_Normal
1894 FEM1_TxPerRatePowerLimits_2_4G_Degraded
1895 FEM1_TxPerRatePowerLimits_2_4G_Extreme
1896 FEM1_DegradedLowToNormalThr_2_4G
1897 FEM1_NormalToDegradedHighThr_2_4G
1898 FEM1_TxPerChannelPowerLimits_2_4G_11b
1899 FEM1_TxPerChannelPowerLimits_2_4G_OFDM
1900 FEM1_TxPDVsRateOffsets_2_4G
1901 FEM1_TxIbiasTable_2_4G
1902 FEM1_RxFemInsertionLoss_2_4G
1904 FEM1_TXBiPReferencePDvoltage_5G wl1271_ini_fem_params_5 7
1905 FEM1_TxBiPReferencePower_5G wl1271_ini_fem_params_5 7
1906 FEM1_TxBiPOffsetdB_5G wl1271_ini_fem_params_5 7
1907 FEM1_TxPerRatePowerLimits_5G_Normal wl1271_ini_fem_params_5 6
1908 FEM1_TxPerRatePowerLimits_5G_Degraded wl1271_ini_fem_params_5 6
1909 FEM1_TxPerRatePowerLimits_5G_Extreme wl1271_ini_fem_params_5 6
1910 FEM1_DegradedLowToNormalThr_5G wl1271_ini_fem_params_5 1
1911 FEM1_NormalToDegradedHighThr_5G wl1271_ini_fem_params_5 1
1912 FEM1_TxPerChannelPowerLimits_5G_OFDM wl1271_ini_fem_params_5 35
1913 FEM1_TxPDVsRateOffsets_5G wl1271_ini_fem_params_5 6
1914 FEM1_TxIbiasTable_5G wl1271_ini_fem_params_5 6
1915 FEM1_RxFemInsertionLoss_5G wl1271_ini_fem_params_5 7
1916 --- RFMD 2.4G params
1917 FEM0_TXBiPReferencePDvoltage_2_4G wl1271_ini_fem_params_2 2
1918 FEM0_TxBiPReferencePower_2_4G wl1271_ini_fem_params_2 1
1919 FEM0_TxBiPOffsetdB_2_4G wl1271_ini_fem_params_2 1
1920 FEM0_TxPerRatePowerLimits_2_4G_Normal wl1271_ini_fem_params_2 6
1921 FEM0_TxPerRatePowerLimits_2_4G_Degraded wl1271_ini_fem_params_2 6
1922 FEM0_TxPerRatePowerLimits_2_4G_Extreme wl1271_ini_fem_params_2 6
1923 FEM0_DegradedLowToNormalThr_2_4G wl1271_ini_fem_params_2 1
1924 FEM0_NormalToDegradedHighThr_2_4G wl1271_ini_fem_params_2 1
1925 FEM0_TxPerChannelPowerLimits_2_4G_11b wl1271_ini_fem_params_2 14
1926 FEM0_TxPerChannelPowerLimits_2_4G_OFDM wl1271_ini_fem_params_2 14
1927 FEM0_TxPDVsRateOffsets_2_4G wl1271_ini_fem_params_2 6
1928 FEM0_TxIbiasTable_2_4G wl1271_ini_fem_params_2 6
1929 FEM0_RxFemInsertionLoss_2_4G wl1271_ini_fem_params_2 1
1933 The fw sends pkts to AP, in order to get ACK.
1935 The idea is to send pkt to an AP and get ACK during CIF
1937 The KA pkt can be send if
1938 No Tx for period of time (cfgd)
1939 Just after cfgd timeout
1941 The retry will happened during 0.5sec (hardcoded time)
1944 wl1271_acx_keep_alive_config() (acx.c)
1946 period - period of time
1947 tpl_validation - enable/disable keep alive
1948 trigger - NO_TX=when no Tx for period of time, PERIOD_ONLY=just every period
1952 --- Get driver state (debugfs)
1953 cat /sys/kernel/debug/ieee80211/phy0/wl12xx/driver_state
1955 --- Manage dynamic debug (debugfs)
1956 cat /debug/ieee80211/phy0/wl12xx/debug_level
1957 echo '0x2000' > /debug/ieee80211/phy0/wl12xx/debug_level
1958 echo 'module wl12xx +p' > /debug/dynamic_debug/control
1961 /sys/devices/platform/wl1271/power
1963 --- Cfg beacon interval
1964 debugfs ... beacon_interval
1966 --- Cfg DTIM interval
1967 debugfs ... dtim_interval
1969 Beacon early termination (BET)
1974 tx_compl_threshold - nbr of pkts
1978 --- using dynamic debug {{{
1979 from Documentation/dynamic-debug-howto.txt
1981 kernel cfg: CONFIG_DYNAMIC_DEBUG
1982 Kernel hacking->Enable dynamic printk() support
1984 Load modules w parameter: debug_level=<nbr>
1987 DEBUG_BOOT = BIT(2),
1988 DEBUG_MAILBOX = BIT(3),
1989 DEBUG_TESTMODE = BIT(4),
1990 DEBUG_EVENT = BIT(5),
1993 DEBUG_SCAN = BIT(8),
1994 DEBUG_CRYPT = BIT(9),
1995 DEBUG_PSM = BIT(10),
1996 DEBUG_MAC80211 = BIT(11),
1997 DEBUG_CMD = BIT(12),
1998 DEBUG_ACX = BIT(13),
1999 DEBUG_SDIO = BIT(14),
2000 DEBUG_FILTERS = BIT(15),
2001 DEBUG_ADHOC = BIT(16),
2004 --- To check current debug_level
2005 cat /debug/ieee80211/phy0/wl12xx/debug_level
2007 --- To set new debug_level
2008 echo '0x2000' > /debug/ieee80211/phy0/wl12xx/debug_level
2010 --- To start debug prints
2011 echo 'module wl12xx +p' > /debug/dynamic_debug/control
2014 > Next time please use the debug mask 0x63c00. Can be done like this:
2016 > adb shell insmod /system/lib/modules/wl12xx.ko debug_level=0x63c00
2017 > adb shell "echo -n 'module cfg80211 +p' >
2018 > /sys/kernel/debug/dynamic_debug/control"
2019 > adb shell "echo -n 'module mac80211 +p' >
2020 > /sys/kernel/debug/dynamic_debug/control"
2021 > adb shell "echo -n 'module wl12xx +p' > /sys/kernel/debug/dynamic_debug/control"
2023 > of course no need for "adb shell" if this is not android.
2026 echo -n 'module wl12xx +p' > /sys/kernel/debug/dynamic_debug/control
2032 Downloaded fw c1250-rcvk9w8-tar.124-21a.JA2.tar
2035 Firmware logger GUI {{{
2038 Connect USB cable and check that 4 new COM ports appeared.
2039 The 4th is FW logger.
2051 apt-get install vpnc
2052 sudo vi /etc/vpnc/ti.mercury.conf
2053 IPSec gateway mercury.ext.ti.com
2055 IPSec secret 2001vpn
2056 Xauth username ENT/a0387671
2057 Xauth password <psswd>
2060 sudo vpnc-connect ti.mercury.conf
2061 sudo vpnc-disconnect
2063 ifconfig shows new dev tun0. need to set its mtu:
2064 sudo ifconfig tun0 mtu 1300
2068 ClearQuest web access:
2069 https://dilcqweb.isr.asp.ti.com/cqweb/
2071 git clone git://git.isr.asp.ti.com/git.kernel.org/linux/kernel/git/dwmw2/linux-firmware.git
2073 git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git
2075 git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx.git
2077 git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
2080 ______________________________
2082 eth=172.16.1.7 ---| |__> eth0=
2083 Blaze | PC (ubtdsk2) | PC (ub102666)
2084 08:00:28:07:64:31 | eth0=10.167.14.133 | eth1=172.16.1.11
2085 | eth1=172.16.1.10 | eth2=192.168.1.11
2086 eth=172.16.1.6 ---| | |
2088 08:00:28:06:64:31 | | |
2089 | | |__> PC (ub102267) x64
2090 eth=172.16.1.8 ---| | eth1=172.16.1.12
2092 08:00:28:08:64:31 | |
2094 eth=172.16.1.5 --- /-------------------------------------\
2095 Blaze Android | | | |
2096 08:00:28:05:64:31 | | | |
2100 192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4
2101 AP1 WRT610Nv2 AP2 WRT610Nv2 AP3 Cisco 1250 AP Cisco 1250
2102 2.4 00:25:9C:C9:59:9A 00:25:9C:57:19:66 00:23:5E:B0:4E:60 00:
2103 5 00:25:9C:C9:59:9B 00:25:9C:57:19:67 00:21:A0:00:00:D0 00:
2104 eth 00:23:5E:69:A0:EA 00:
2108 FF: http://proxyconfig.itg.ti.com/proxy.pac
2110 wwweuproxy.ith.ti.com:80
2113 export http_proxy="http://wwweuproxy.itg.ti.com:80"
2114 export https_proxy="http://wwweuproxy.itg.ti.com:80"
2115 export ftp_proxy="http://wwweuproxy.itg.ti.com:80"
2118 git config --global http.proxy wwweuproxy.ith.ti.com:80
2122 Add in /etc/apt/apt.conf.d/70debconf
2123 Acquire {http {Proxy "http://wwweuproxy.itg.ti.com:80/";No-Cache "false";Max-Age "86400";No-Store "false";};};
2130 setenv ipaddr 172.16.1.5
2131 setenv serverip 172.16.1.10
2132 setenv bootcmd 'run netboot'
2133 setenv netboot 'tftp ${loadaddr} ${bootfile}; run netargs; bootm ${loadaddr}'
2134 setenv loadaddr '0x81c00000'
2135 setenv bootfile '1273e/uImage'
2136 setenv netargs 'setenv bootargs console=${console} root=${netroot} rw nfsroot=${serverip}:/work/zoom2/1273,nolock ip=${ipaddr}'
2137 setenv console 'ttyS0,115200n8'
2138 setenv netroot '/dev/nfs'
2142 export CONCURRENCY_LEVEL=3
2144 cp ./arch/arm/boot/uImage /work/tftpboot/1273e/
2145 make modules_install INSTALL_MOD_PATH=${NFSROOT}
2148 01nov2010 from Efi Leibovitch 6893
2150 This is link to INI generator:
2151 http://mcsdocs.isr.asp.ti.com:81/WLAN/index.php?dir=MCS_WLAN_Docs/System%20Integration/Wilink%20Projects/Wilink%206/WL6.1/Init%20Docs/&file=INI%20File%20Generator.xls
2154 1st command to set references to power n voltage for certain subband
2155 TEST_CMD_UPDATE_PD_REFERENCE_POINT 375 128 0
2156 2nd cmd to proceed w/ calibration for ceratain subband
2157 T_CMD_P2G_CAL 1 0 0 0 0 0 0 0
2158 The result of 2nd cmd brings buffer w/ calibration data for 8 sub bands always
2160 If given zeros in set reference point cmd, firmware will take def values for
2165 http://mcsdocs.isr.asp.ti.com:81/WLAN/index.php?dir=MCS_WLAN_Docs/Architecture/WiLink%20Products/WiLink%206/WL6.1/FS_L/&file=WL6%201.0%20PLT%20and%20ATE%20API%20v0%208_ir.doc
2170 TEST_CMD_CHANNEL_TUNE - set working channel
2171 TEST_CMD_FCC - fill Tx params n activate
2172 TEST_CMD_STOP_TX - stop active Tx
2177 TEST_CMD_CHANNEL_TUNE
2178 TEST_CMD_UPDATE_PD_REFERENCE_POINT
2182 --- from Ilanit's email
2184 Tx BIP procedure for single band:
2185 To put 50 Ohm terminator on the RF and perform
2189 / t r h 0 7 biT Radio_debug cHannel_tune
2190 / t b b 375 128 0 biT Bip update_Buffer_calref_point
2191 / t b t 1 0 0 0 0 0 0 0 biT Bip Tx_bip
2193 Tx BIP procedure for dual band:
2194 To put 50 Ohm terminator on the RF and perform
2198 / w p 1 poWer/set_Power_mode
2199 / w l 2 poWer/set_powersave_powerLevel
2200 / w f 2 poWer/set_deFault_powerlevel
2205 TxCont procedure (G band):
2206 / t r t n 2000 1 100 0 5000 0 3 0 0 0 0 0 1 0 11:22:33:44:55:66
2207 / t r t n 2000 2048 100 0 5000 0 3 0 0 4 0 0 1 0 11:22:33:44:55:66
2208 / t r t n 2000 4096 100 0 15000 0 3 0 0 4 0 0 1 0 11:22:33:44:55:66
2209 / t r t n 2000 4096 100 0 15000 0 3 0 0 0 0 0 0 0 11:22:33:44:55:66
2210 / t r t n 2000 1 100 0 5000 0 3 0 0 0 0 0 1 0 11:22:33:44:55:66
2212 TxCont procedure (N band):
2213 / t r t n 2000 1048576 1000 0 15875 0 3 0 0 6 0 0 0 0 11:22:33:44:55:66
2214 biT/Radio_debug/Tx_debug/coNtinues
2215 / t r t n 2000 1048576 1000 0 13000 0 3 0 0 6 0 0 55 0 11:22:33:44:55:66
2216 / t r t n 2000 1048576 1000 0 5000 0 3 0 0 6 0 0 55 0 11:22:33:44:55:66
2217 / t r t n 50 1048576 1000 0 15875 0 3 0 0 6 0 0 0 0 11:22:33:44:55:66
2219 TxCont procedure (A band):
2221 / t r t n 2000 2048 100 0 10000 0 3 0 0 4 0 0 1 0 11:22:33:44:55:66
2222 / t r t n 2000 6 100 0 5000 0 3 0 0 4 0 0 0 0 11:22:33:44:55:66
2226 NLCP NVS file structure {{{
2230 0xXX 0xXX 0xXX 0xXX MAC addr (5,4,3,2)
2232 0xXX 0xXX MAC addr (1,0)
2234 0x00 0x00 0x00 0x00 0x00 0x00 0x00
2237 0x01 0x99 Tx sec len (409B)
2238 Tx values - def 0x00
2240 0x00 0x13 Rx sec len (19B)
2241 Rx values - def 0x00
2243 0x00 0x03 Ver sec len
2245 0xff 0xff 0x00 0x00 the end of NVS sec
2252 git commit -a -m "xxx"
2253 git format-patch -s -o patches/misc -1 --subject-prefix="PATCH"
2254 scripts/checkpatch.pl patches/misc/*
2255 t format-patch -s -o patches/misc -1 --subject-prefix="PATCH"
2256 git send-email --suppress-cc=self --suppress-cc=sob --annotate \
2257 --from "Gery Kahn <geryk@ti.com>" --to "<mcs-mac80211@list.ti.com>" \
2258 --cc "Luciano Coelho <coelho@ti.com>" \
2259 patches/plt/0001-fix-of-P2G_CAL-struct-to-align-w-firmware.patch
2261 git send-email --suppress-cc=self --suppress-cc=sob --annotate \
2262 --from "Gery Kahn <geryk@ti.com>" --to "<linux-wireless@vger.kernel.org>"
2263 --cc "Luciano Coelho <coelho@ti.com>" patches/misc/
2265 Prepare patch series - this will create 2 patches like "PATCH n/m":
2267 git commit -a -m "a.c"
2269 git commit -a -m "b.c"
2270 git format-patch -s -o patches/ -n --subject-prefix="PATCH" -2 --cover-letter
2273 git request-pull 8654e2dd962899cbc81b3735c7122ca40fa5ea0e git://github.com/gxk/linux-firmware.git > add_bt_script-request-pull.txt
2276 -------------------------------------------------------------------------------
2277 ------------------------------ TexasInstruments--------------------------------
2278 -------------------------------------------------------------------------------
2279 001. Build mac prj env for ZOOM2 {{{
2281 Install ./arm-2008q3-72-arm-none-linux-gnueabi.bin into default dir
2282 Change PATH to /home/a0387671/CodeSourcery/Sourcery_G++_Lite/bin
2284 clone the wireless testing branch:
2285 git clone http://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
2286 git branch 1271_func
2287 git checkout 1271_func
2289 open wl1271-v2.tar.bz2
2291 git apply <full path>/<filename>
2292 The patch nbr 11 should be done manualy
2293 cp <wl1271>/zoom2/config-zoom2
2294 `make oldconfig' and answer No for 4 questions
2296 export CROSS_COMPILE=arm-none-linux-gnueabi-
2297 export NFSROOT=/work/zoom2/nfsroot
2298 make uImage modules -j10
2299 cp ./arch/arm/boot/uImage /work/tftpboot/trio/
2300 make modules_install INSTALL_MOD_PATH=${NFSROOT}
2303 git add arch/arm/mach-omap2/board-zoom-wlan.c
2304 git add include/linux/wl12xx.h
2310 setenv ipaddr 192.168.1.10
2311 setenv serverip 192.168.1.1
2312 setenv vout 'omap24xxvout omap_vout.video1_numbuffers=6 omap_vout.vid1_static_vrfb_alloc=y omapfb.vram=0:4M'
2313 setenv bootargs_base 'console=ttyS3,115200n8'
2315 002. Build iw app for Zoom2 {{{
2317 from http://linuxwireless.org/en/users/Documentation/iw
2318 The iw is new nl802.11 based CLI configuration utility for wless devs.
2319 download libnl-1.1 deb pkg and extract the lib to rootfs
2320 download iw from https://launchpad.net/ubuntu/+source/iw/0.9.19-1/+build/1776712 as deb
2322 download wpasupplicant_0.7.2+0m6_armel.deb and cp 3 files: wpa_*
2324 created fs binary rootfs-03aug2010-gxk.tar.bz2 and placed at
2325 \\dilfs14\wlan\WLAN\mac802.11\Driver\Version_Tree\rootfs-03aug-gxk.tar.bz2
2326 sudo /bin/chmod 777 -R --preserve-root /media/disk
2327 sudo /bin/tar -C /media/disk -jxf ~/rootfs-03aug2010-gxk.tar.bz2
2329 003. Bringup Nokia (gekko) board {{{
2332 minicom -D /dev/ttyS0
2333 config it w/o hardware support
2336 sudo /bin/tar -C /work/nokia -xf ../apps/nokia/core.linux-dali.tar
2337 sudo /bin/chown a0387671:generic -R --preserve-root /work/nokia/core.linux-dali
2338 sudo /bin/tar -C /work/nokia -xf ../apps/nokia/core.initrd-dali.tar
2339 sudo /bin/chown a0387671:generic -R --preserve-root /work/nokia/core.initrd-dali
2340 cd /work/nokia/core.linux-dali
2341 make rm581_defconfig
2342 make zImage modules -j 10
2343 cd /work/nokia/core.initrd-dali
2344 add to .config follow:
2345 KERNEL_DIR=/work/nokia/core.linux-dali
2346 FLASHER=sudo /work/nokia/core.linux-dali/flasher/flasher
2348 It will stop on waiting USB
2349 run to switch board on:
2350 `/work/nokia/core.linux-dali/flasher/setSerialSignal /dev/ttyS0 0 0'
2351 while boot come to initrd - plugout the USB cable from board
2353 004. Evaluate Nokia testsuite {{{
2355 --- Setup configuration {{{
2357 eth=172.16.1.7 ---> eth2=172.16.1.10
2359 wlan eth1=192.168.1.100
2363 eth=192.168.1.1 eth=192.168.1.2
2367 The testsuite splited in 2 parts: client on Targer side and server on PC.
2368 The client side listening for connection from the server. They communicate
2371 Add to /etc/network/interfaces
2374 iface eth1 inet static
2375 address 192.168.1.100
2376 netmask 255.255.255.0
2379 iface eth2 inet static
2381 netmask 255.255.255.0
2384 Supported APs: WRT54GL, WRT610n
2386 --- Nokia testsuite analyzes
2389 BT_Funcional_tests_-_Release_test_set
2401 --- Get the proj from git
2402 git clone https://geryk:z2aEqfsGw@dvcs.projects.maemo.org/git/peripherals-wlan-tests
2404 --- Build the server side
2405 pushd peripherals-wlan-tests/peripherals-test-framework
2406 dpkg-buildpackage -rfakeroot
2407 The results are in parent dir:
2408 peripherals-test-autom-client_<ver>.deb
2409 peripherals-test-autom-client-debug_<ver>.deb
2410 peripherals-test-autom-server_<ver>.deb
2411 Install server tests:
2412 sudo /usr/bin/dpkg -i peripherals-test-autom-server_0.0.8_all.deb
2414 download python2.5-minimal_2.5.2-15+lenny1_armel.deb
2415 pushd /work/zoom2/nfsroot
2416 dpkg -x ~/ti/nokia_testing/python2.5-minimal_2.5.2-15+lenny1_armel.deb .
2417 pushd /work/zoom2/nfsroot/usr/bin
2418 ln -s python2.5 python
2419 dpkg -x ~/ti/nokia_testing/python-wpactrl_1.0.7-1+0m6_armel.deb .
2420 dpkg -x ~/ti/nokia_testing/iperf_2.0.0+0m6_armel.deb .
2421 dpkg -x ~/ti/nokia_testing/peripherals-client-data_0.0.10+0m6_armel.deb .
2422 dpkg -x ~/ti/nokia_testing/peripherals-wlan-tests/peripherals-test-autom-client_0.0.8_all.deb .
2424 Boot the TARGET and run follow
2425 ------------------------------
2426 echo 8 > /proc/sys/kernel/printk
2427 mount -t debugfs none /sys/kernel/debug
2428 insmod /lib/modules/`uname -r`/kernel/net/wireless/cfg80211.ko
2429 insmod /lib/modules/`uname -r`/kernel/net/mac80211/mac80211.ko
2430 insmod /lib/modules/`uname -r`/kernel/lib/crc7.ko
2431 insmod /lib/modules/`uname -r`/kernel/drivers/base/firmware_class.ko
2432 insmod /lib/modules/`uname -r`/kernel/drivers/net/wireless/wl12xx/wl1271.ko
2433 insmod /lib/modules/`uname -r`/kernel/drivers/net/wireless/wl12xx/wl1271_sdio.ko
2435 ifconfig wlan0 hw ether 00:22:33:44:55:66
2437 cat /sys/kernel/debug/mmc2/ios
2440 #insmod /lib/modules/`uname -r`/kernel/drivers/usb/gadget/g_ether.ko
2442 iw event > /var/log/iwevents &
2443 wpa_supplicant -f/var/log/wpa_supplicant.log -Dnl80211 -iwlan0 -c/etc/wpa_supplicant.conf -B
2444 python /usr/share/peripherals-test-autom/dut.py -v
2449 sudo /sbin/modprobe /lib/modules/2.6.32-23-server/kernel/drivers/usb/gadget/g_ether.ko
2450 sudo /sbin/ifconfig usb1 192.168.7.1 netmask 255.255.255.0 up
2451 sudo /sbin/route add -host 192.168.7.2 dev usb1
2453 pushd /usr/share/peripherals-test-autom
2454 sudo /usr/bin/python host.py -v -f /usr/share/peripherals-test-autom/tests/WLAN_FuTe_RelSet/001_ifup_down -a 192.168.2.7 &
2455 sudo /usr/bin/python host.py -v -f /usr/share/peripherals-test-autom/tests/WLAN_FuTe_RelSet/003_associate -a 192.168.2.7 &
2458 Results are in /tmp/evil-wlan
2459 Possible to create html file:
2460 process_results.py /tmp/evil-wlan > testrun-results.html
2463 005. BringUp Zoom2 - Quattro w/ mac802.11 driver {{{
2467 http://mcsdocs.isr.asp.ti.com:81/WLAN/index.php?dir=MCS_WLAN_Docs/System%20Integration/Wilink%20Projects/Wilink%207/wilink%207.1/init/
2469 Bringup Zoom2 w/ external Quattro chip.
2471 extrenal sdio adapter - PCB-038101
2472 motherboard - PCB-036701
2473 Quattro external board - PCB-036701
2474 Add power supply 6V to Quattro external board
2478 git checkout 1271_func
2479 git branch 1271_quattro
2480 git checkout 1271_quattro
2481 Apply Quattro patches:
2482 git apply /work/ti/zoom2/quattro/0001-1283-add-support-build-only-not-tested-yet.patch
2483 git apply /work/ti/zoom2/patches/quattro/0001-Add-support-for-falling-edge-as-well.patch
2484 and fix in arch/arm/mach-omap2/board-zoom-wlan.c :
2485 #define OMAP_ZOOM_WLAN_PMENA_GPIO (157)
2486 #define OMAP_ZOOM_WLAN_IRQ_GPIO (162)
2488 make oldconfig add support for 1283 SDIO
2489 make menuconfig - uncheck support for 1271
2490 Copy fw to <rootfs>/lib/firmware/wl1281-fw.bin (YES 1281)
2491 cp ./Fw1283r1c_sta_cortex.bin /work/zoom2/nfsroot/lib/firmware/wl1281-fw.bin
2492 Prepare NVS file: cd ~/ti/zoom2/wl1271-v2/generate_fw
2493 copy data in wilink6_nvs.h under name wilink6_nvs[]...
2494 run `./go_generate' which creates ./wl1271-nvs.bin
2495 cp ./wl1271-nvs.bin /work/zoom2/nfsroot/lib/firmware/wl1281-nvs.bin
2497 make uImage modules -j10
2498 cp ./arch/arm/boot/uImage /work/tftpboot/quattro/
2499 make modules_install INSTALL_MOD_PATH=${NFSROOT}
2502 /etc/osa/bin/sd_card_helper /dev/sdc
2503 cp /work/apps/zoom2/MLO /media/boot/
2504 cp /work/apps/zoom2/u-boot.bin /media/boot/
2505 cp ./wireless-testing/arch/arm/boot/uImage /media/boot/
2508 Investigation on USE_ACTIVE_HIGH {{{
2509 There is patch 0001-Add-support-for-falling-edge-as-well.patch
2520 |-> wl1271_plat_probe()
2521 |-> set_irq_type() - RISING or FALLING
2523 wl1271_op_add_interface()
2526 |-> wl1271_boot_write_irq_polarity()
2527 | |-> set reg OCP_REG_POLARITY to 0 if rising
2529 |-> wl1271_boot_enable_interrupts()
2530 |-> wl1271_enable_interrupts()
2531 |-> wl1271_write32() - w to ACX_REG_INTERRUPT_MASK
2532 |-> wl1271_write32() - w to HI_CFG if falling 0x00000080
2534 19aug2010 from Asaf Carmeli
2535 There isn't same way to configure FW in Trio n Quattro to enable interrupt
2536 rising or falling. We should also appropriate configure host gpio.
2538 Need to change this behaviour, update Quattro init document
2539 What will happened after wakeup w/ such configuration?
2543 006. Update Nokia testsuite (new ver 0.0.9, 0.0.11) {{{
2545 --- Setup configuration {{{
2547 eth=172.16.1.7 ---> eth2=172.16.1.10
2549 wlan eth1=192.168.1.100
2551 +---------------------+
2553 eth=192.168.1.1 eth=192.168.1.2
2554 00:25:9c:c9:59:98 00:25:9c:57:19:64
2557 00:25:9c:c9:59:9b 00:25:9c:57:19:67 5GHz
2558 00:25:9c:c9:59:9a 00:25:9c:57:19:65 2.4GHz
2560 The testsuite splited in 2 parts: client on Targer side and server on PC.
2561 The client side listening for connection from the server. They communicate
2564 Supported APs: WRT54GL, WRT610n
2566 Getting new source n build:
2567 pushd /work/ti/nokia_testing/peripherals-wlan-tests
2569 pushd ./peripherals-test-framework
2570 dpkg-buildpackage -rfakeroot
2571 Install server side:
2572 popd && sudo /usr/bin/dpkg -i peripherals-test-autom-server_0.0.11_all.deb
2574 sudo /usr/bin/dpkg -r peripherals-test-autom-server
2575 Add packages to client side:
2576 pushd /work/zoom2/1271_nfs
2577 dpkg -x ~/iptables_1.4.9-1_armel.deb .
2578 dpkg -x ~/wireless-tools_30~pre9-3ubuntu4_armel.deb .
2579 dpkg -x ~/libiw30_30~pre9-3ubuntu4_armel.deb .
2580 Demands iw >= 0.9.20
2583 Networking support->Network options->Network packet filtering framework->
2584 Core Netfilter Config->Netfilter Xtables support
2585 Networking support->Network options->Network packet filtering framework->
2586 IP Netfilter Config-> *
2587 Install client side: ???
2588 make uImage modules -j10
2589 cp ./arch/arm/boot/uImage /work/tftpboot/trio/
2590 make modules_install INSTALL_MOD_PATH=${NFSROOT}
2594 python /usr/share/peripherals-test-autom/dut.py -v
2596 pushd /usr/share/peripherals-test-autom
2597 sudo /usr/bin/python host.py -v -d /usr/share/peripherals-test-autom/tests/WLAN_FuTe_RelSet -a 172.16.1.9 &
2599 Getting testresults:
2600 python /usr/bin/process_results.py /tmp/evil-wlan > /work/ti/nokia_testing/testrun-results-01sep2010.html
2603 1. Tests use `iwconfig' instead of `iw'. Are there plans to switch? Yes (Tuomas)
2606 1. Unable to remove deb package (IT)
2607 2. After new install, can't run tests (IT)
2608 3. Unable to build client side (Tuomas)
2611 007. Enable 802.11a on Zoom2 Trio external {{{
2614 TODO: check for support of 802a in mac802, operate it (scan), to understand the cmd flow
2617 external Adapter SDIO - PCB-038101
2618 motherboard - PCB-036701
2619 Trio 1273 board - PCB-033501
2621 On motherboard LD4 (red) should be ON from the power on.
2622 On motherboard LD5 (green) should be OFF always.
2625 BringUp Zoom2 w/ external Trio (1273): {{{
2626 git checkout 1271_func
2628 git checkout 1273_ext
2630 Change in arch/arm/mach-omap2/board-zoom-peripherals.c :
2631 #define OMAP_ZOOM_WLAN_PMENA_GPIO (157)
2632 .board_ref_clock = 1
2634 config kernel to support 1271+sdio
2635 make uImage modules -j10
2636 cp ./arch/arm/boot/uImage /work/tftpboot/1273e/
2637 make modules_install INSTALL_MOD_PATH=${NFSROOT}
2641 #define WL1271_80211A_ENABLED
2643 in drivers/net/wireless/wl12xx/wl1271_main.c delete checking for NVS file size
2645 if (fw->size != sizeof(struct wl1271_nvs_file) &&
2646 (fw->size != WL1271_INI_LEGACY_NVS_FILE_SIZE)) {
2649 1. hardcoded macro WL1271_80211A_ENABLED in wl1271.h - Done
2650 2. The ChipID gives only 7 or 8 from 1271/1281. The 1 or 3 taken from INI file.
2651 3. Sometimes not connected w/ errors:
2652 wlan0 (phy #0): failed to connect, status: 1: Unspecified failure
2658 echo 8 > /proc/sys/kernel/printk
2659 #mount -t debugfs none /sys/kernel/debug
2660 mount -t debugfs debugfs /debug
2661 insmod /lib/modules/`uname -r`/kernel/net/wireless/cfg80211.ko
2662 insmod /lib/modules/`uname -r`/kernel/net/mac80211/mac80211.ko
2663 insmod /lib/modules/`uname -r`/kernel/lib/crc7.ko
2664 insmod /lib/modules/`uname -r`/kernel/drivers/base/firmware_class.ko
2665 insmod /lib/modules/`uname -r`/kernel/drivers/net/wireless/wl12xx/wl1271.ko
2666 insmod /lib/modules/`uname -r`/kernel/drivers/net/wireless/wl12xx/wl1271_sdio.ko
2668 ifconfig wlan0 hw ether 00:22:33:90:64:31
2670 iw wlan0 connect peripherals-conn-5ghz
2672 iperf -c 192.168.1.100 -i1
2676 Send patch to switch support 11a by kernel config as experimental.
2678 Send patch to community. NACKed by Luca, cause have runtime recognition.
2681 008. Prepare P1 release {{{
2684 git clone git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx.git
2685 copy .config from my wireless-testing
2686 Added patches: pm_lenient_, sdio_runtime v2, 11n v1, pkt_aggregation v3,
2688 git apply --reject ./patches/sdio_runtime/v2/...
2689 make uImage modules -j10
2690 cp ./arch/arm/boot/uImage /work/tftpboot/1273e/
2691 make modules_install INSTALL_MOD_PATH=${NFSROOT}
2693 pushd /work/zoom2/1273e
2694 tar cxf rootfs-06oct.tar.bz2 ./*
2697 make CFLAGS=-DCONFIG_LIBNL20 LIBS=-lnl-genl NLLIBNAME=libnl-2.0
2700 git clone git://git.kernel.org/pub/scm/libs/netlink/libnl.git
2703 ./configure --prefix=/work/zoom2/1273e CC=arm-none-linux-gnueabi-gcc --host=arm-linux LD=arm-none-linux-gnueabi-ld
2704 make && make install
2707 git clone http://git.sipsolutions.net/iw.git
2708 make CC=arm-none-linux-gnueabi-gcc NLLIBNAME=libnl-2.0 CFLAGS="-DCONFIG_LIBNL20 -I/work/zoom2/nfsroot/include" LIBS="-lnl-genl -lnl -L/work/zoom2/nfsroot/lib" NL2FOUND=Y
2709 make CC=arm-none-linux-gnueabi-gcc NLLIBNAME=libnl-2.0 CFLAGS="-DCONFIG_LIBNL20 -I/work/zoom2/nfsroot/include" LIBS="-lnl-genl -lnl -L/work/zoom2/nfsroot/lib" NL2FOUND=Y PREFIX=/work/zoom2/1273e/usr install
2712 git clone git://w1.fi/srv/git/hostap.git
2715 wpa_cli -p /var/run/wpa_supplicant -iwlan0 scan_results
2717 The binaries placed at
2718 g:\\wlan\mac802.11\driver\version_tree\p1-05oct2010\
2722 rootfs-05oct2010.tar
2723 Also added source archive at
2724 g:\\wlan\mac802.11\driver\version_tree\p1-05oct2010\source\wl12xx-06oct2010.tar.gz
2726 STATUS: released p1-06oct2010 w/ mac802.11 tracing, chariot endpoint, dynamic debugging n set_nvs utility.
2728 009. ref_clock cosmetic patch {{{
2731 cd /work/ti/wl12xx && mkdir patches/misc
2732 git format-patch -s -o patches/misc -1 --subject-prefix="PATCH"
2733 scripts/checkpatch.pl patches/misc/*
2734 git send-email --suppress-cc=self --suppress-cc=sob --annotate \
2735 --from "Gery Kahn <geryk@ti.com>" --to "<linux-wireless@vger.kernel.org>" \
2736 --cc "Luciano Coelho <luciano.coelho@nokia.com>" patches/misc/
2738 The patch send. Send v2.
2740 ACKed by Luca at 08oct2010
2743 010. Tracing n dynamic debug {{{
2746 To enable event tracing for testing purposes.
2748 http://wireless.kernel.org/en/developers/Documentation/mac80211/tracing
2753 Kernel Hacking -> Tracers -> Kernel function tracer
2754 MAC80211_DRIVER_API_TRACER=y
2755 Network support -> Wireless -> Select mac80211 debugging features ->
2760 mount -t debugfs debugfs /debug
2762 echo 1 > /debug/tracing/events/mac80211/enable
2763 cat /debug/tracing/trace
2767 Kernel Hacking -> Enable dynamic printk() support
2772 011. Support P1 release {{{
2774 1. Add mod param ref-clock
2775 Added module param ref_clk
2776 Added to debugfs: /debug/wl1271/ref_clk
2778 2. Added option to read MAC from
2779 /sys/class/ieee80211/phy1/macaddress
2780 This is place for permanent MAC addr.
2782 3. How to get FW statistics?
2783 Found FW statistics in fw src/public_infoele.h which need to compare w/
2784 driver code in _acx.h
2785 There are nbr of stat groups:
2802 4. How to get driver statistics?
2805 5. How to FW recovery by driver?
2806 wl1271_recovery_work() (x_main.c)
2808 6. Ability to config Single/Dual board
2810 7. Ability to config Long/Short/Auto/Active PS
2812 ------------------------------------------
2813 git format-patch -s -o patches/misc -1 --subject-prefix="PATCH"
2814 scripts/checkpatch.pl patches/misc/*
2815 git send-email --suppress-cc=self --suppress-cc=sob --annotate \
2816 --from "Gery Kahn <geryk@ti.com>" --to "<mcs-mac80211@list.ti.com>" \
2817 --cc "Luciano Coelho <luciano.coelho@nokia.com>" patches/fw_statistics
2818 ------------------------------------------
2820 Status (11oct2010) - there 2 patches w/ 1,2,3 released for local mlist.
2821 The 4,5,6,7 delayed w/ Ohad
2824 012. Prepare release P1.1 {{{
2828 git checkout rel-p1.1
2829 Added patches: pm_lenient_, sdio_runtime v2, 11n v4, pkt_aggregation v3,
2830 ba_initiator v2, tx opts v3
2832 git tag release-p1.1
2835 013. bug #80228,80332 - BT-Coex {{{
2838 While Wl Rx there is problem in Bt Rx/Tx
2840 Check if driver has SoftGemini?
2841 There are default cfg params in _main.c
2842 struct conf_drv_settings default_conf ...
2844 NLPC code source {{{
2845 wl1271_probe() (_sdio.c)
2847 |-> wl1271_alloc_hw()
2848 |-> set sg_enabled = true
2851 wl1271_op_add_interface()
2853 |-> wl1271_hw_init()
2855 |-> wl1271_init_pta()
2856 |-> wl1271_acx_sg_cfg() (_acx.c)
2859 |_> wl1271_acx_sg_enable() (_acx.c)
2861 |-> wl1271_cmd_configure( ACX_SG_ENABLE )
2866 wl1271_sysfs_store_bt_coex_state() (_main.c)
2868 wl1271_sysfs_show_bt_coex_state() (_main.c)
2871 TWD_SetParam() (TWD/TWDriver/TWDriverCtrl.c)
2872 case TWD_SG_CONFIG_PARAM_ID:
2874 The params are in TWD/FirmwareApi/public_infoele.h:
2876 The begining cfg at platform/os/common/src/osRgstry.c
2880 Gemini cfg params {{{
2884 NFS sample interval 400
2887 Auto scan prob-req 170
2888 Active scan duration factor HV3 50
2890 Beacon miss percent 60
2894 WLAN_PS_BT_ACL_MASTER_MIN_BR 10
2895 WLAN_PS_BT_ACL_MASTER_MAX_BR 30
2896 WLAN_PS_MAX_BT_ACL_MASTER_BR 8
2897 WLAN_PS_BT_ACL_SLAVE_MIN_BR 20
2898 WLAN_PS_BT_ACL_SLAVE_MAX_BR 50
2899 WLAN_PS_MAX_BT_ACL_SLAVE_BR 8
2900 WLAN_PS_BT_ACL_MASTER_MIN_EDR 7
2901 WLAN_PS_BT_ACL_MASTER_MAX_EDR 25
2902 WLAN_PS_MAX_BT_ACL_MASTER_EDR 20
2903 WLAN_PS_BT_ACL_SLAVE_MIN_EDR 8
2904 WLAN_PS_BT_ACL_SLAVE_MAX_EDR 40
2905 WLAN_PS_MAX_BT_ACL_SLAVE_EDR 20
2912 WLAN_ACTIVE_BT_ACL_MASTER_MIN_EDR 7
2913 WLAN_ACTIVE_BT_ACL_MASTER_MAX_EDR 15
2914 WLAN_ACTIVE_MAX_BT_ACL_MASTER_EDR
2915 WLAN_ACTIVE_BT_ACL_SLAVE_MIN_EDR
2916 WLAN_ACTIVE_BT_ACL_SLAVE_MAX_EDR
2917 WLAN_ACTIVE_MAX_BT_ACL_SLAVE_EDR
2918 WLAN_ACTIVE_BT_ACL_MIN_BR
2919 WLAN_ACTIVE_BT_ACL_MAX_BR
2920 WLAN_ACTIVE_MAX_BT_ACL_BR
2922 PASSIVE_SCAN_DURATION_FACTOR_HV3
2923 PASSIVE_SCAN_DURATION_FACTOR_A2DP
2924 PASSIVE_SCAN_BT_TIME
2925 PASSIVE_SCAN_WLAN_TIME
2928 Active scan duration factor A2DP 100
2938 16oct2010 moved to firmware
2940 014. Create PLT utility {{{
2943 Create utility provides ability for procedures TxBip (calibration) and TxCont.
2944 In addition, ability to create full NVS (NVS + INI) file and option to read
2945 the original INI file from WiLink prj.
2947 Symbian calibration {{{
2948 from ClearCase WiLink6.1_DR_0_Symbian
2950 PltSm() from platforms/os/s60/WVSS/src/wha/TIWha.cpp
2951 Look for macro PLT_TESTER
2956 | |-> TIWha::PltSm()
2959 TEST_CMD_CHANNEL_TUNE w/ channel 7, band 0
2960 TEST_CMD_RX_STAT_RESET
2961 TEST_CMD_RX_STAT_START
2962 TEST_CMD_RX_STAT_GET
2963 TEST_CMD_RX_STAT_STOP
2968 TEST_CMD_UPDATE_PD_REFERENCE_POINT
2970 POWER_SAVE_802_11_SUCCESS
2972 WiLink calibration {{{
2973 The ioctl SIOCIWFIRSTPRIV comes.
2974 cmdInterpret_convertAndExecute() (platforms/os/linux/src/CmdInterpretWext.c)
2976 generic callback for WEXT cmds
2977 wlanDrvWext_Handler() (platforms/os/linux/src/WlanDrvWext.c)
2980 | wlanDrvIf_LoadFiles()
2983 drvMain_SetDefaults() (stad/src/Ctrl_Interface/DrvMain.c)
2984 |-> osInitTable_IniFile() (platforms/os/linux/src/osRgstry_parser.c)
2986 | |-> regFillInitTable() (platforms/os/common/src/osRgstry.c)
2988 |-> TWD_SetDefaults() (TWD/TWDriver/TWDriver.c)
2991 Utility updates NVS file, show SW/FW/HW versions
2992 WL1271_TM_CMD_NVS_PUSH
2994 Current NVS+INI file has only 2.4GHz. Need to add 2nd band (5GHz).
2996 There is prj called generate_fw which produces 2 files (fw n nvs+ini):
2997 wl1271-fw.bin wl1271-nvs.bin
2998 Open wilink6_nvs.h n add 5GHz params in sections
3000 set_nvs phy0 set nvs /lib/firmware/wl1271-nvs.bin
3002 set_nvs phy0 set calib tx
3005 make LIBNL=/work/zoom2/1273e CROSS_COMPILE=arm-none-linux-gnueabi-
3007 Build wlan_cu from WiLink prj {{{
3009 Download WiLink from MCP_2.x_1
3012 pushd <WiLink>/CUDK/
3013 make TI_HOST_OS=ANDROID NLCP_SUPPORT=y STATIC_LIB=n BUILD_SUPPL=n
3015 pushd <WiLink>/CUDK/configurationutility
3016 make TI_SUPP_LIB_DIR=wpa_suppl/wpa_supplicant TI_HOST_OS=ANDROID NLCP_SUPPORT=y STATIC_LIB=n BUILD_SUPPL=n
3018 WiLink cfg utility (wlan_cu) - TxBip {{{
3020 MAC address from /sys/class/net/wlan0/address
3022 --- Get Device status
3023 Console_GetDeviceStatus() (CUDK/configurationutility/src/console.c)
3024 |-> CuCmd_GetDeviceStatus() (CUDK/configurationutility/src/cu_cmd.c)
3025 |-> CuCommon_GetU32(... , DRIVER_STATUS_PARAM, ...)
3026 |-> IPC_STA_Private_Send()
3028 --- Set power save mode
3029 CUDK/configurationutility/src/ticon.c
3030 TiCon_Init_Console_Menu()
3031 |-> Console_AddToken(...,"set_Power_mode", CuCmd_SetPowerMode, ...)
3032 |-> CuCmd_SetPowerMode() (CUDK/configurationutility/src/cu_cmd.c)
3033 |-> CuCommon_SetBuffer( ..., TIWLN_802_11_POWER_MODE_SET, ...)
3034 | CUDK/configurationutility/src/cu_common.c
3035 |-> IPC_STA_Private_Send()
3037 The flow of Tx Bip procedure for single band:
3039 TiCon_Init_Console_Menu() (CUDK/configurationutility/src/ticon.c)
3040 |-> Console_Start() (CUDK/configurationutility/src/console.c)
3041 |-> Console_ParseString()
3043 TEST_CMD_CHANNEL_TUNE ( / t r h 0 7 )
3044 CuCmd_RadioDebug_ChannelTune() (CUDK/configurationutility/src/cu_cmd.c)
3045 |-> Check if power mode is active:
3046 | CuCommon_GetBuffer(..., TIWLN_802_11_POWER_MODE_GET, ...)
3047 |-> CuCommon_Radio_Test()
3049 TEST_CMD_UPDATE_PD_REFERENCE_POINT ( / t b b 375 128 0 )
3050 CuCmd_BIP_BufferCalReferencePoint() (CUDK/configurationutility/src/cu_cmd.c)
3051 |-> CuCommon_Radio_Test()
3053 TEST_CMD_P2G_CAL ( / t b t 1 0 0 0 0 0 0 0 )
3054 CuCmd_BIP_StartBIP()
3057 struct wl1271_cmd_cal_channel_tune struct TTestCmd
3058 struct wl1271_cmd_header header; TestCmdID_e testCmdId;
3059 __le16 id; int8 padding[3];
3060 __le16 status; union testCmd_u
3061 u8 data[0]; TTestCmdChannel Channel;
3062 struct wl1271_cmd_test_header test; uint8 iBand;
3063 u8 id; uint8 iChannel;
3064 u8 padding[3]; int16 oRadioStatus;
3065 u8 band; TTestCmdP2GCal P2GCal
3066 u8 channel; uint32 oNVSVersion;
3067 __le16 radio_status; TNvsStruct oNvsStruct;
3068 struct wl1271_cmd_cal_update_ref_point uint16 Length;
3069 struct wl1271_cmd_header header; uint8 Buffer[MAX_TLV_LENGTH];
3070 struct wl1271_cmd_test_header test; uint8 Type;
3071 __le32 ref_power; uint8 padding;
3072 __le32 ref_detector; int16 oRadioStatus;
3073 u8 sub_band; uint8 iSubBandMask;
3074 u8 padding[3]; uint8 Padding;
3076 struct wl1271_cmd_cal_p2g
3077 struct wl1271_cmd_header header;
3081 struct wl1271_cmd_test_header test;
3085 u8 buf[MAX_TLV_LENGTH];
3087 __le16 radio_status;
3088 u8 nvs_version[MAX_NVS_VERSION_LENGTH];
3092 WiLink cfg utility (wlan_cu) - TxCont {{{
3094 MAC address from /sys/class/net/wlan0/address
3096 --- Get Device status
3097 Console_GetDeviceStatus() (CUDK/configurationutility/src/console.c)
3098 |-> CuCmd_GetDeviceStatus() (CUDK/configurationutility/src/cu_cmd.c)
3099 |-> CuCommon_GetU32(... , DRIVER_STATUS_PARAM, ...)
3100 |-> IPC_STA_Private_Send()
3102 TEST_CMD_CHANNEL_TUNE ( / t r h 0 7 )
3104 --- Start Tx continues test (FCC)
3105 TEST_CMD_FCC ( / t r t n 2000 1 100 0 5000 0 3 0 0 0 0 0 1 0 11:22:33:44:55:66 )
3106 delay rate size amount power seed pkt_mode dcf gi preamble type
3107 scrambler clpc seq_nbr_mode mac
3108 CUDK/configurationutility/src/ticon.c
3109 TiCon_Init_Console_Menu()
3110 |-> Console_AddToken(...,"coNtinues", CuCmd_RadioDebug_StartContinuousTx, ...)
3111 |-> CuCmd_RadioDebug_StartContinuousTx()
3112 | (CUDK/configurationutility/src/cu_cmd.c)
3113 |-> read MAC address
3114 |-> CuCommon_Radio_Test() () - TEST_CMD_FCC
3115 |-> IPC_STA_Private_Send(..., TWD_RADIO_TEST_PARAM, ...)
3117 --- Stop Tx continues test (FCC)
3118 TEST_CMD_STOP_TX ( / t r t s )
3121 #define MAC_ADDR_LEN 6
3123 struct wl1271_cmd_pkt_params {
3124 struct wl1271_cmd_header header;
3126 struct wl1271_cmd_test_header test;
3128 __le16 radio_status;
3144 u8 src_mac[MAC_ADDR_LEN];
3145 u8 dst_mac[MAC_ADDR_LEN];
3146 } __attribute__((packed));
3153 by Ohad to start converting wlan_cu from WiLink prj.
3155 done wlan_cu build of native WiLink prj
3157 found in commit ab2807efcfd2dd646a2ca8d71585e26cda3fc0c1 from 08jul2010 funcs:
3158 static int wl1271_cmd_cal_channel_tune(struct wl1271 *wl)
3159 static int wl1271_cmd_cal_update_ref_point(struct wl1271 *wl)
3160 static int wl1271_cmd_cal_p2g(struct wl1271 *wl)
3161 static int wl1271_cmd_cal(struct wl1271 *wl)
3164 1. incompatible pointer type - Done
3166 1. TEST_CMD_CHANNEL_TUNE - TODO check if active before send cmd
3168 There is NVS file after TxBip w/o INI part
3169 Create patch of changes in struct wl1271_cmd_cal_p2g n send to local mailing list
3171 After further discussion w/ Luca new patch created to remove all unused structures from wl1271_cmd.h
3173 Support SeaRay - NB72 from CCI {{{
3176 The CCI is Taiwan company builds platform for Nokia, based on Qualcomm board
3177 w/ 1271, single band, TQS. Using MeeGo product.
3181 Sangi Shi does upgrade from 2.6.32 to 2.6.35. Wants full kernel src.
3182 Needs PLT utility till 27oct2010. Send him NVS binary for single.
3184 Send email to Sangi about Luca's git
3186 Send PLT utility in current status to Sangi. Accepted as successful.
3188 Send whole src package of PLT to Yuval.
3190 015. BringUp Beagleboard + wl1271 {{{
3192 There is daughter card BeagleToy with
3193 1271 TQS S 2.6, PG 2.6
3195 Prepare serial cable {{{
3202 db9 connector 10pin connector
3215 ./patches/beagleboard/\[PATCH\]\ omap\ \ beagle\ \ add\ support\ for\ wl1271\ on\ the\ board\ file.eml
3218 console=ttyO2,115200n8
3220 Change in /etc/inittab
3223 Got patch and .config
3226 make omap2plus_defconfig (from 2.6.37-rcX)
3230 Rootfs (Ubuntu 10.04)
3231 wget http://rcn-ee.net/deb/rootfs/lucid/ubuntu-10.04.1-r2-minimal-armel.tar.7z
3232 sudo apt-get install p7zip-full
3233 7za x ubuntu-10.04.1-r2-minimal-armel.tar.7z
3234 tar xf ubuntu-10.04.1-r2-minimal-armel.tar
3235 cd ubuntu-10.04.1-r2-minimal-armel
3236 ./setup_sdcard.sh --mmc /dev/sdX --uboot beagle --swap_file 100 --use-default-user
3238 Apply patch from Ido
3239 cp arch/arm/configs/omap2plus_defconfig .config
3241 REGULATOR_FIXED_VOLTAGE=y
3248 016. Error msgs w/ new NVS file {{{
3250 There is error message after loading NVS.
3251 wl1271: ERROR Unsupported RX rate from HW: 20 - band (1)
3252 Not happened if NVS Radio params is all 0.
3255 struct wl1271_cmd_scan
3256 struct wl1271_cmd_header
3259 u8 data[0] -------------- 4
3260 struct basic_scan_params
3261 __le32 rx_config_options 4
3262 __le32 rx_filter_options 4
3263 __le16 scan_options 2
3270 u8 ssid[IW_ESSID_MAX_SIZE] 32
3274 u8 padding2 1 _____ 56 ----- 60
3275 struct basic_scan_channel_params
3276 __le32 min_duration 4
3277 __le32 max_duration 4
3280 u8 early_termination 1
3284 u8 activity_detected 1
3285 u8 pad 1 _____ 20 ----- 80
3287 Where from error comes? {{{
3289 |-> wl1271_rx_handle_data() (_fx.c)
3290 |-> wl1271_rx_status() (_rx.c)
3291 |-> wl1271_rate_to_idx() (_main.c)
3293 Where from the structure of rates per band gets info? {{{
3294 static const u8 *wl1271_band_rate_to_idx (_main.c)
3296 struct wl1271_nvs_file (drivers/net/wireless/wl12xx/wl1271_ini.h) {{{
3298 struct wl1271_ini_general_params
3301 u8 clk_valid_on_wakeup 1
3303 u8 dual_mode_select 1
3304 u8 tx_bip_fem_auto_detect 1
3305 u8 tx_bip_fem_manufacturer 1
3306 u8 general_settings 1
3312 struct wl1271_ini_band_params_2
3314 struct wl1271_ini_fem_params_2
3316 struct wl1271_ini_fem_params_2
3318 struct wl1271_ini_band_params_5
3319 u8 rx_trace_insertion_loss 7
3321 u8 rx_rssi_process_compens 15
3323 struct wl1271_ini_fem_params_5
3324 __le16 tx_bip_ref_pd_voltage 14
3325 u8 tx_bip_ref_power 7
3326 u8 tx_bip_ref_offset 7
3327 u8 tx_per_rate_pwr_limits_normal 6
3328 u8 tx_per_rate_pwr_limits_degraded 6
3329 u8 tx_per_rate_pwr_limits_extreme 6
3330 u8 tx_per_chan_pwr_limits_ofdm 35
3331 u8 tx_pd_vs_rate_offsets 6
3333 u8 rx_fem_insertion_loss 7
3334 u8 degraded_low_to_normal_thr 1
3335 u8 normal_to_degraded_high_thr 1
3337 struct wl1271_ini_fem_params_5
3343 The scan which done for all 11a range, included Japan channels 183,187,7
3344 The packets arrived as results came with default rate of 2Mb, but it should be
3345 6Mb (11a is OFDM and min rate is 6Mb). Such rate for the 11a non-supported.
3347 1. Need sniffer for Japan in order to get those packets w/ 2Mb and see them
3348 2. May be is there bug, why to scan Japan region at all? Should be registration
3350 Freezed by Ohad decision.
3352 017. Fix support for 11a {{{
3354 Checking Luca's git from 28nov2010, the 11a doesn't work.
3355 After the Luca's patch 573c67cf819d52d2e12adf75a9a8cfbd216190a3 there is
3356 wl1271_reg_notifier() which disables channels based on regulatory domain.
3357 Such check happened before the drv gets dual_band flag from NVS.
3360 02dec2010 Luca getting into the issue
3361 03dec2010 by Luca: disable 11a channels when wl->enable_11a is known
3365 192.168.1.1 b/g/n 00:25:9c:c9:59:9a
3366 192.168.1.2 n 00:25:9c:57:19:66
3368 test power off, n->g
3369 Took 3sec to reassoc
3371 test power off, g->n
3373 test power off, n->g (w/o fast_reauth)
3375 test power off, n->g (w/o ap_scan, fast_reauth)
3380 Low RSSI trigget not exists
3382 Bug in Developed state.
3387 RSSI doesn't update.
3389 018. Build L23 (Poky) {{{
3391 Open account in dirac.dal.design.ti.com
3393 mkview_linked omapsw_a0387671_test
3395 mkview -tag omapsw_a0387671_test -tcomment 'Created by mkview_linked at Mon Dec 20 12:19:53 2010.' -host wtsdccase01.dal.design.ti.com -hpath /clearcase/vw311/a0387671/omapsw/omapsw_a0387671_test.vws -gpath /clearcase/vw311/a0387671/omapsw/omapsw_a0387671_test.vws /clearcase/vw311/a0387671/omapsw/omapsw_a0387671_test.vws
3396 cleartool: Warning: Storage pathname "/clearcase/vw311/a0387671/omapsw" may not reside on host "wtsdccase01.dal.design.ti.com".
3398 Host-local path: wtsdccase01.dal.design.ti.com:/clearcase/vw311/a0387671/omapsw/omapsw_a0387671_test.vws
3399 Global path: /clearcase/vw311/a0387671/omapsw/omapsw_a0387671_test.vws
3400 It has the following rights:
3401 User : a0387671 : rwx
3402 Group: generic : r-x
3405 Where is cleartool? /usr/atria/bin/cleartool
3406 run `../meta-texasinstruments/scripts/ccfetch-installer.sh'
3408 Installing v2.1.4 ccfetch scripts
3410 But first, I have a couple questions:
3411 Enter local bin directory (must be in $PATH): [/home/a0387671/bin]
3412 Enter remote hostname: [dirac.dal.design.ti.com]
3413 Enter remote username: [a0387671]
3414 Enter remote viewname: [omapsw_a0387671_poky_temp] omapsw_a0387671_test
3415 Enter remote home directory path: [/home/a0387671]
3416 Enter remote bin directory (must be in $PATH on dirac.dal.design.ti.com): [/home/a0387671/bin]
3417 Enter path to cleartool: [] /usr/atria/bin/cleartool
3419 local bin directory : /home/a0387671/bin
3420 remote hostname : dirac.dal.design.ti.com
3421 remote username : a0387671
3422 remote viewname : omapsw_a0387671_test
3423 remote home directory : /home/a0387671
3424 remote bin directory : /home/a0387671/bin
3425 path to cleartool : /usr/atria/bin/cleartool
3428 Found identity id_rsa.. should I use this? (Only say 'Y'es if it has an empty passphrase)
3430 Using existing identity id_rsa
3432 Now I will copy your public key to dirac.dal.design.ti.com. Enter password for a0387671@dirac.dal.design.ti.com
3434 a0387671@dirac.dal.design.ti.com's password:
3435 a0387671@dirac.dal.design.ti.com's password:
3436 a0387671@dirac.dal.design.ti.com's password:
3439 And now finally, I have some files to install:
3440 * installing cfetchcc-get.sh
3441 * installing cfetchdirac.sh
3442 * generating cfetchcc.conf
3443 * installing sfetchcc-get.sh remotely
3444 sfetchcc-get.sh 100% 4088 4.0KB/s 00:00
3445 * installing sfetchcc-mktar.sh remotely
3446 sfetchcc-mktar.sh 100% 1151 1.1KB/s 00:00
3447 * generating sfetchcc.conf remotely
3448 sfetchcc.conf 100% 1262 1.2KB/s 00:00
3452 bitbake -a omap-image-sato 2>&1 | tee omap-image-sato.log
3454 bitbake -a omap-image-minimal 2>&1 | tee omap-image-minimal.log
3457 019. Recreate PLT utility {{{
3459 Make PLT utility as standalone, open source tool w/ follow capabilities:
3460 TxBip, TxCont, Rx??? , create NVS w/ Radio param section, reading INI file.
3463 set_nvs wlan0 plt power_mode <on|off>
3464 set_nvs wlan0 plt tune_channel <band> <channel>
3465 set_nvs wlan0 plt ref_point <voltage> <power> <subband>
3466 set_nvs wlan0 plt calibrate <0|1> * 8
3469 set_nvs wlan0 plt tune_channel <band> <channel>
3470 set_nvs wlan0 plt tx_cont <delay> <rate> <size> <amount> <power> <seed> \
3471 <pkt mode> <DC on/off> <gi> <preamble> <type> <scramble> <clpc> \
3472 <seq nbr mode> <mac>
3473 ( 2000 1 100 0 5000 0 3 0 0 0 0 0 1 0 00:22:33:90:64:31 )
3474 set_nvs wlan0 plt tx_stop
3477 set_nvs wlan0 plt start_rx_statcs
3478 set_nvs wlan0 plt stop_rx_statcs
3479 set_nvs wlan0 plt reset_rx_statcs
3480 set_nvs wlan0 plt get_rx_statcs
3483 - 1. To cancel dependency on the previous NVS file while producing new one
3484 Currently dependency comming from drv
3485 x 2. Fix src_mac in TxCont - FW not uses src_mac parameter, but takes MAC
3486 from 0x305470 - 0x30546c
3487 x 3. Fix AveSNR n AveRSSI in RxStatcs
3488 - 4. Add license - waiting for Oz
3489 x 5. To make RxStat procedure in short way also
3490 6. Make the utility to read INI file in order to change radio parameters
3492 Kernel cfg NL80211_TESTMODE=y
3494 x 8. Run `scripts/checkpatch.pl -f ' on source
3495 x 9. Send the utility like patches to TI's mlist (06dec2010)
3496 /work/prjs/scripts/git/add_prj.sh
3498 git format-patch -s -o patches/ -12 --subject-prefix="PATCH" --cover-letter
3499 git send-email --suppress-cc=self --suppress-cc=sob --annotate --from "Gery Kahn <geryk@ti.com>" --to "<mcs-mac80211@list.ti.com>" ./patches/
3501 Release of TI's PLT utility based on driver wl12xx
3503 This is release of TI's PLT utility provides solutions for production
3504 procedures, like create NVS file, get Rx statistics, etc.
3505 Read README file for the full functionality list,
3506 how to build the utility and how to use it.
3508 020. Calibrator INI files {{{
3511 a. Same NVS+INI for MCP2.5 and M6?
3512 b. Same NVS+INI for AP and STA?
3513 c. Same NVS+INI for 127x n 128x?
3516 from \\dilfs14\wlan\WLAN\WiLink 6.2 AP\Firmware\Version_Tree\FW_6.2.0.0.XX
3517 under FW_6.2.0.0.36_EFUSE_PG3.31_REMOVE
3519 INI files WL6 - those are files for trio
3525 INI files WL7 - those are files for quattro
3533 from \\dilfs14\wlan\WLAN\WiLink_6.0\Firmware\Version_Tree\FW_6.1.0.XX
3534 under FW_6.1.0.XX\FW_6.1.0.0.343_xxxx
3535 INI files WL6 - those are files for trio
3543 from \\dilfs14\wlan\WLAN\MCP 2.x\Firmware\Version_Tree\FW_7.1.2.0.XX
3544 under FW_7.1.2.0.32_PG_IDENTIFICATION
3546 INI files WL6 - those are files for trio
3552 INI files WL7 - those are files for quattro
3559 Currently delivered 2 firmware binaries: 6.1.0.0.343 and 6.2.0.0.30
3561 Put all ini files in calibrator project:
3563 access_point\ - files from 6.2.0.0.31 (trio only)
3564 station\ - files from 6.1.0.0.343 (trio only)
3565 development - files from 7.1.2.0.32 (both trio and quattro)
3570 021. BringUp BeagleBoard {{{
3572 flow w building MLO n uboot doesn't work {{{
3573 http://code.google.com/p/beagleboard/wiki/BeagleSoftCompile
3575 git clone http://git.gitorious.org/beagleboard-validation/x-load.git
3577 Make sure in include/configs/omap3530beagle.h
3578 #define CONFIG_MMC 1
3579 make CROSS_COMPILE=arm-none-linux-gnueabi- distclean
3580 make CROSS_COMPILE=arm-none-linux-gnueabi- omap3530beagle_config
3581 make CROSS_COMPILE=arm-none-linux-gnueabi-
3582 Created file x-load.bin rename to MLO
3584 git clone http://git.gitorious.org/beagleboard-validation/u-boot.git
3586 Make sure in include/configs/omap3_beagle.h :
3587 #define CONFIG_BOOTCOMMAND "\0"
3588 make CROSS_COMPILE=arm-none-linux-gnueabi- distclean
3589 make CROSS_COMPILE=arm-none-linux-gnueabi- omap3_beagle_config
3590 make CROSS_COMPILE=arm-none-linux-gnueabi-
3593 download MLO n u-boot.bin from:
3594 http://www.angstrom-distribution.org/demo/beagleboard/
3600 --- Change u-boot env:
3601 console=ttyO2,115200n8
3604 Created project at http://git.gitorious.org/beagletoy/beagletoy.git
3605 w/ MLO, uboot, kernel, rootfs, Luca's patches and REAME.
3607 The GIT removed due to legal issues and everything placed at
3608 \\dilfs14\wlan\WLAN\NLCP\...
3610 022. Overclocking Zoom3 to 1GHz {{{
3612 from Documentation/cpu-freq/user-guide.txt
3613 and Documentation/arm/OMAP/omap_pm
3616 CONFIG_CPU_FREQ_DEBUG
3617 CONFIG_CPU_FREQ_STAT
3618 CONFIG_CPU_FREQ_STAT_DETAILS
3619 CONFIG_CPU_FREQ_GOV_POWERSAVE
3620 CONFIG_CPU_FREQ_GOV_USERSPACE
3621 CONFIG_CPU_FREQ_GOV_ONDEMAND
3622 CONFIG_CPU_FREQ_GOV_CONSERVATIVE
3625 CONFIG_PM_ADVANCED_DEBUG
3627 from OMAP ml found Thara Gopinath which delivered DVFS
3628 git clone git://dev.omapzoom.org/pub/scm/thara/omap-dvfs.git
3630 To get omap-dvfs git branch pm-dvfs to my branch pm-dvfs:
3631 git checkout -b pm-dvfs
3632 git reset --hard master (where master is the branch from wl12xx that you want to use)
3633 git remote add omap-dvfs git://dev.omapzoom.org/pub/scm/thara/omap-dvfs.git
3635 git pull omap-dvfs pm-dvfs
3637 To get git omap-dvfs branch pm-improved-dvfs to my branch pm-dvfs:
3638 git pull omap-dvfs pm-improved-dvfs
3641 error: Untracked working tree file
3645 --- To remove suspend/resume prints
3647 --- To stop suspend/resume availability
3650 change in arch/arm/mach-omap2/opp3xxx_data.c
3652 /sys/devices/system/cpu/cpu0/cpufreq/
3654 16jan2011 Send as patch to mcs ml.
3655 17jan2011 - Rebuild version based on
3656 wl12xx a70937e03fe5e7e6478500426a03677dd25262b1 with
3657 DVFS, mcp2.5, 11n, quattro
3659 023. Make different builds for TCP Rx TP {{{
3662 Change manualy at .config
3663 CONFIG_PM_RUNTIME is not set
3665 --- Build w/ mcp2.5 DVFS 11n Quattro win_size
3666 for 26MHz and 38.4MHz
3668 --- Build w/ mcp2.5 DVFS 11n Quattro win_size
3669 for 26MHz and 38.4MHz
3672 024. PLT to support mcp2.5 n Quattro {{{
3679 tx_cont 2000 1 100 0 5000 0 3 0 0 0 0 0 1 0 08:00:28:90:64:31
3683 tune_channel <band> <channel>
3687 Create reference - +
3692 |-> nvs_fill_nvs_part()
3693 |-> nvs_fill_radio_prms
3697 Open fw bug 86495 for TxCont, fw bug 86517 for RxStat, updated README,
3698 fix buffer size bug, add dump in INI parsing
3699 Send NVS mcp2.5 files to Yaki - waiting for answer
3702 bug 86495 - Shahar P. found that driver doesn't send cmd ACX_MEM_CFG
3703 Found that we doesn't send this cmd. The start of PLT differs from normal
3704 start. Check needed.
3706 26jan Sent patch to local ml
3707 git commit drivers/net/wireless/wl12xx/main.c -m "wl12xx: Fixes pl..."
3708 ./scripts/checkpatch.pl ./patches/plt/0001-wl12xx-Fixes-plt-initialization-according-FW-boot-pr.patch
3709 git send-email --suppress-cc=self --suppress-cc=sob --from "Gery Kahn <geryk@ti.com>" --to "<mcs-mac80211@list.ti.com>" patches/plt/0001-wl12xx-Fixes-plt-initialization-acc..
3712 Release calibrator for MCP2.5
3713 Stop working on Quattro support till Quattro will be supported.
3715 025. Prepare build for Beagleboard mcp2.5 for sanity {{{
3718 git clone git://gitorious.org/beagleboard-validation/scripts.git
3721 git clone git://git.denx.de/u-boot.git
3723 git remote add beagleboard-validation git://gitorious.org/beagleboard-validation/u-boot.git
3725 git checkout -b koen-beagle-2010.12 beagleboard-validation/koen/beagle-2010.12
3727 make omap3_beagle_config
3730 Rebuild libnl, iw, wpa_supplicant, openssl-1
3732 Kernel added: mcp2.5v3, bb, performance series of 2011-02-07
3734 - Sent version to Ilanit for sanity
3737 a5624323866c06156ca548b8515d9347fdd5188e
3738 bd36cc573efb4cef09daadd7668b430bfda9f2af
3739 02301aa68d8da4fc37ff69afe53083e8ce97fe4c
3740 c3b2ae4726e8d0b7a787f70b538aa2ec636c35d0
3741 5611308de1f0d465fbfca41732b81681b6fe599c
3743 The 1GHz for BeagleBoard based on
3744 http://dominion.thruhere.net/git/cgit.cgi/linux-omap/log/?h=koen/beagle-next
3745 git pull omap-dvfs pm-improved-dvfs
3746 #apply ./patches/dvfs/5d40d42330547a6ef04bab224bcaaca21c79df39.patch
3747 #apply ./patches/dvfs/701930fa4f63e9838b367eca5ff8d8ed49ef1cb6.patch
3750 026. Calibrator for Quattro (1283) {{{
3752 Based on Shahar's patches from 2011-02-06
3754 Fixes in calibrator INI parser.
3757 Sent build for Ilanit to test.
3760 1. To check why to copy 5GHz params if no support for 11a
3761 wl128x_cmd_radio_parms() (cmd.c)
3762 2. To check order of plt init
3764 027. Build sanity test for Quattro {{{
3767 wl12xx tag wl12xx-2011-02-08
3768 Apply performance patches (Ido patches/performance/2011-02-13)
3769 Add Quattro patches (Shahar 2011-02-08)
3773 028. Build R3 for Beagleboard {{{
3775 Apply performance patches (Ido patches/performance/2011-02-13)
3776 Add Quattro patches (Shahar 2011-02-08) + fix from Arik
3779 Align-chip-interrupt-pacing-setting
3783 Add Ido's Fix kernel panic in Tx
3786 http://dominion.thruhere.net/git/cgit.cgi/linux-omap/?h=koen/beagle-next-wip
3787 git://dominion.thruhere.net/var/cache/git/linux-omap.git
3789 The flow of release:
3791 git checkout -b wl12xx-2011-02-08-R3-bb
3792 git remote add koen-omap git://dominion.thruhere.net/var/cache/git/linux-omap.git
3794 Create branch to track koen-omap/koen/beagle-next
3795 git branch koen-omap-fork koen-omap/koen/beagle-next
3796 git checkout koen-omap-fork
3797 git format-patch -s -o ./patches/beagleboard/koen.kooi/ 52aefa299da0c025c4e521f2a40a89c01aad5a17..e3948bda11a3a0d938500ffbc7ef43603909cc15
3798 git apply --reject ./patches/beagleboard/koen.kooi/
3799 0004-omap-Beagle-detect-new-xM
3800 0005-ARM-OMAP-beagleboard-Add-infrastructure-to-do-fixups.patch
3801 0006-ARM-OMAP-beagleboard-pre-export-GPIOs-to-userspace-w.patch
3802 0007-modedb.c-add-proper-720p60-mode.patch
3803 0008-mmc-don-t-display-single-block-read-console-messages.patch
3804 0009-MTD-silence-ecc-errors-on-mtdblock0.patch
3805 0011-ARM-OMAP-add-omap_rev_-macros.patch
3806 0012-OMAP-DSS2-enable-hsclk-in-dsi_pll_init-for-OMAP36XX.patch
3807 0013-omap3-beagleboard-add-WIP-support-for-beagleboardtoy.patch
3808 0014-drivers-net-smsc911x-return-ENODEV-if-device-is-not-.patch
3809 0015-drivers-input-touchscreen-ads7846-return-ENODEV-if-d.patch
3810 0016-ASoC-enable-audio-capture-by-default-for-twl4030.patch
3811 0017-MFD-enable-madc-clock.patch
3812 0018-MFD-add-twl4030-madc-driver.patch
3813 0019-ARM-OMAP-Add-twl4030-madc-support-to-Overo.patch
3814 0020-ARM-OMAP-Add-twl4030-madc-support-to-Beagle.patch
3815 0021-OMAP-DSS2-Add-support-for-Samsung-LTE430WQ-F0C-panel.patch
3816 0022-OMAP-DSS2-Add-support-for-LG-Philips-LB035Q02-panel.patch
3817 0023-OMAP-DSS2-add-bootarg-for-selecting-svideo-or-compos.patch
3818 0024-ARM-OMAP2-mmc-twl4030-move-clock-input-selection-pri.patch
3819 0025-RTC-add-support-for-backup-battery-recharge.patch
3820 0026-ARM-OMAP-automatically-set-musb-mode-in-platform-dat.patch
3821 0027-OMAP-DSS2-check-for-both-cpu-type-and-revision-rathe.patch
3822 0028-OMAP-DSS2-Add-DSS2-support-for-Overo.patch
3823 0029-OMAP3-PM-Adding-T2-enabling-of-smartreflex.patch
3824 0030-OMAP-CPUfreq-ensure-driver-initializes-after-cpufreq.patch
3825 0031-OMAP-CPUfreq-ensure-policy-is-fully-initialized.patch
3826 0032-OMAP3-PM-CPUFreq-driver-for-OMAP3.patch
3827 0033-OMAP-PM-CPUFREQ-Fix-conditional-compilation.patch
3828 0034-OMAP-Introduce-a-user-list-for-each-voltage-domain-i.patch
3829 0035-OMAP-Introduce-API-in-the-OPP-layer-to-find-the-opp-.patch
3830 0036-OMAP-Introduce-API-to-register-a-device-with-a-volta.patch
3831 0037-OMAP-Introduce-device-specific-set-rate-and-get-rate.patch
3832 0038-OMAP-Voltage-layer-changes-to-support-DVFS.patch
3833 0039-OMAP-Introduce-dependent-voltage-domain-support.patch
3834 0040-OMAP-Introduce-device-scale.patch
3835 0041-OMAP-Disable-smartreflex-across-DVFS.patch
3836 0042-OMAP3-Introduce-custom-set-rate-and-get-rate-APIs-fo.patch
3837 0043-OMAP3-Update-cpufreq-driver-to-use-the-new-set_rate-.patch
3838 0044-OMAP3-Introduce-voltage-domain-info-in-the-hwmod-str.patch
3839 0045-OMAP3-Add-voltage-dependency-table-for-VDD1.patch
3840 0046-omap3-4-opp-make-omapx_opp_init-non-static.patch
3841 0047-OMAP3-beagle-xm-enable-upto-1GHz-OPP.patch
3842 0048-omap3-Add-basic-support-for-720MHz-part.patch
3843 0049-Add-defines-to-set-config-options-in-GPMC-per-CS-con.patch
3844 0050-Add-functions-to-dma.c-to-set-address-and-length-for.patch
3845 0051-usrp-embedded-Add-driver-for-USRP-Embedded-FPGA-inte.patch
3846 0058-drivers-media-radio-wl128x-FM-Driver-common-header-f.patch
3847 0059-drivers-media-radio-wl128x-FM-Driver-V4L2-sources.patch
3848 0060-drivers-media-radio-wl128x-FM-Driver-Common-sources.patch
3849 0061-drivers-media-radio-wl128x-FM-driver-RX-sources.patch
3850 0062-drivers-media-radio-wl128x-FM-driver-TX-sources.patch
3851 0063-drivers-media-radio-wl128x-Kconfig-Makefile-for-wl12.patch
3852 0064-drivers-media-radio-Update-Kconfig-and-Makefile-for-.patch
3853 0065-drivers-misc-ti-st-change-protocol-parse-logic.patch
3854 0066-Bluetooth-btwilink-driver.patch
3855 git mergetool --tool=meld
3858 029. Build Panda Angstrom {{{
3861 git clone git://git.denx.de/u-boot.git
3863 git remote add omapzoom git://dev.omapzoom.org/pub/scm/bootloader/u-boot.git
3865 git branch omapzoom-omap4_dev omapzoom/omap4_dev
3866 git checkout omapzoom-omap4_dev
3869 Change in include/configs/omap4430panda.h
3870 #define CONFIG_BOOTARGS "nfsroot=172.16.1.11:/opt/rootfs/panda rootdelay=2" \
3871 " console=ttyO2,115200n8 mem=463M ip=172.16.1.8" \
3872 " init=/sbin/init earlyprintk"
3873 #define CONFIG_BOOTCOMMAND "mmcinit 0 ; fatload mmc 0:1 0x80300000 uImage ; bootm 0x80300000"
3876 make omap4430panda_config
3879 git clone git://dev.omapzoom.org/pub/scm/bootloader/x-loader.git
3881 git checkout -b omap4_dev origin/omap4_dev
3882 make omap4430panda_config
3884 cp x-load.bin.ift MLO
3886 wl12xx kernel - apply patches from
3887 ./patches/panda/2.6.38-rc6/
3888 [PATCH v2 1_2] regulator: twl: add clk32kg to twl-regulator
3889 [PATCH v2 2_2] OMAP4: add clk32kg data to omap4panda and blaze board file
3891 [PATCH v2 1_5] OMAP2420: hwmod data: Add HSMMC
3892 [PATCH v2 2_5] OMAP2430: hwmod data: Add HSMMC
3893 [PATCH v2 3_5] OMAP3: hwmod data: Add HSMMC
3894 [PATCH v2 4_5] OMAP4: hwmod data: Add HSMMC
3895 [PATCH v2 5_5] OMAP: devices: Modify HSMMC device to adapt to hwmod framework
3897 [PATCH 1_5] omap: panda: wlan board muxing
3898 [PATCH 2_5] omap: select REGULATOR_FIXED_VOLTAGE by default for panda and sdp4430
3899 [PATCH 3_5] omap: panda: add fixed regulator device for wlan
3900 [PATCH 4_5] omap: panda: add mmc5_wl1271 device support
3901 [PATCH 5_5] OMAP: hsmmc: Enable MMC4 and MMC5 on OMAP4 platforms
3903 Rebase on tag wl12xx-2011-02-23
3905 Main kernel (not used) {{{
3906 git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
3908 make omap2plus_defconfig
3911 cp -f ./arch/arm/boot/uImage /tftpboot/panda/
3912 make modules_install INSTALL_MOD_PATH=${NFSROOT}
3915 030. Enable bluetooth on Panda {{{
3919 To enable the TI_ST driver and the ST_BT driver select the following
3920 configurations for the kernel:
3921 CONFIG_RFKILL=y (Networking Support -> RF switch subsystem support)
3922 CONFIG_MISC_DEVICES=y (Device Drivers)
3923 CONFIG_TI_ST=m (under Device Drivers->Misc Devices->Texas Instruments shared transport line discipline)
3924 CONFIG_STAGING=y (under Device Drivers)
3925 CONFIG_STAGING_EXCLUDE_BUILD=n (under Device Drivers->Staging drivers)
3926 CONFIG_ST_BT=m (under Device Drivers->Staging drivers->Texas Instruments shared transport line discipline)
3928 Add to arch/arm/mach-omap2/board-omap4panda.c
3930 /* wl127x BT, FM, GPS connectivity chip */
3931 static int gpios[] = {46, -1, -1};
3932 static struct platform_device wl127x_device = {
3935 .dev.platform_data = &gpios,
3938 static struct platform_device *panda_devices[] __initdata = {
3946 insmod /lib/modules/`uname -r`/kernel/net/bluetooth/bluetooth.ko
3947 ./uim /dev/ttyO1 3686400 none 22 &
3950 hcitool dev # gives you the device's bd address
3951 hcitool scan # scans for nearby bluetooth devices
3954 031. Calibrator 1-step procedure {{{
3956 To calibrate with INI file and path where to put NVS file at 1-step procedure.
3957 Create ref NVS, copy to proper location, calibrate, create new NVS and copy it
3959 Implementation: make shell script which calls calibrator, rmmod, insmod, etc.
3960 Also to check if NVS already exists, notify and back it up.
3963 032. Add random valid MAC to calibrated NVS {{{
3965 The idea to make NVS with random and valid MAC address, so the
3966 calibrated solution will work out-of-the-box.
3968 Change in script ./go.sh
3969 After calibration, change MAC address in NVS before copy it.
3972 openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'
3975 033. Close bug about calibration for AP mode {{{
3977 The bug 88547 : not possible to use NVS w/ AP created w/ STA.
3979 The Ap firmware upgraded to 6.2.0.0.46 which has alignment to use
3980 same NVS INI structure as STA firmware.
3982 034. Disable external antenna on Panda n BeagleToy {{{
3985 Both boards has same LSR package (TiWi R1) w/ external antenna.
3986 The connector of RF cable doesn't switch-off the ext ant.
3987 Have to remove resistor R35 on BeagleToy (R20 on Panda) in order disbale ext
3991 035. Build n boot Android on Blaze {{{
3993 Build n prepare rootfs {{{
3996 Repo : git://git.omapzoom.org/repo/x-loader.git
3998 Config : omap4430sdp_config
4000 git checkout -b omap4_dev origin/omap4_dev
4002 make omap4430sdp_config
4006 git clone git://git.omapzoom.org/repo/x-loader.git x-loader
4008 git checkout 8de4ac4408224f8cec7aa8493301483fe7aa324c
4012 Repo : git://git.omapzoom.org/repo/u-boot.git
4014 Config : omap4430sdp_config
4016 git clone git://git.omapzoom.org/repo/u-boot.git
4018 git checkout -b omap4_dev origin/omap4_dev
4019 make omap4430sdp_config
4023 Repo : git://git.omapzoom.org/kernel/omap.git
4024 Branch : p-android-omap-2.6.35
4025 Config : android_4430_defconfig
4027 git clone git://git.omapzoom.org/kernel/omap.git
4029 git checkout -b p-android-omap-2.6.35 origin/p-android-omap-2.6.35
4030 make android_4430_defconfig
4034 #repo init -u git://git.omapzoom.org/repo/android/platform/omapmanifest.git -b gingerbread
4036 git clone git://git.omapzoom.org/platform/omapmanifest.git
4038 git reset --hard RLS27-GB-ENG-1_Gingerbread
4039 export MANIFEST=`pwd`
4041 mkdir -p L27-GB/mydroid ; cd L27-GB/mydroid
4042 export MYDROID=`pwd`
4043 repo init -u $MANIFEST
4047 source build/envsetup.sh
4050 ============================================
4051 PLATFORM_VERSION_CODENAME=REL
4052 PLATFORM_VERSION=2.3.1
4053 TARGET_PRODUCT=blaze
4054 TARGET_BUILD_VARIANT=eng
4055 TARGET_SIMULATOR=false
4056 TARGET_BUILD_TYPE=release
4061 HOST_BUILD_TYPE=release
4062 BUILD_ID=GINGERBREAD
4063 ============================================
4065 make -j8 2>&1 |tee $MYDROID/logs/android_make.out
4067 from Arik's email (2011-03-03)
4068 download blaze_kpatches_v4.tar.bz2 - kernel patches
4070 cd ~/ti/android/omap
4071 git am ../<path to patches>/*
4072 cp ~/ti/blaze/blaze-0.2/kernel/kernel_config .config
4075 Apply patches to projects:
4076 cd L27-GB/mydroid/build
4077 patch -p1 < ../../../../blaze/blaze-0.2/android/patches/build/*.patch
4078 cd L27-GB/mydroid/device/ti/blaze
4079 patch -p1 < ~/ti/blaze/blaze-0.2/android/patches/device.ti.blaze/*.patch
4080 cd L27-GB/mydroid/external/hostapd
4081 patch -p1 < ~/ti/blaze/blaze-0.2/android/patches/external.hostapd/*.patch
4082 cd L27-GB/mydroid/frameworks/base
4083 patch -p1 < ~/ti/blaze/blaze-0.2/android/patches/frameworks.base/*.patch
4084 The 1st patch already applied (2011-03-07)
4085 cd L27-GB/mydroid/hardware/libhardware_legacy
4086 patch -p1 < ~/ti/blaze/blaze-0.2/android/patches/hardware.libhardware_legacy/*.patch
4087 cd L27-GB/mydroid/system/core
4088 patch -p1 < ~/ti/blaze/blaze-0.2/android/patches/system.core/*.patch
4089 cd L27-GB/mydroid/system/netd
4090 patch -p1 < ~/ti/blaze/blaze-0.2/android/patches/system.netd/*.patch
4094 tar jxf <path>/blaze-0.2/android/packages/packages.tar.bz2
4096 download http://wizery.com/arik/compat4.tar.bz2 - compat wireless
4097 cd ~/ti/android/L27-GB/mydroid/hardware/wlan/
4098 tar jxf <path>/compat4.tar.bz2
4100 Changes in setenv.sh
4101 TOOLCHAIN_PATH=/opt/arm-2010q1/bin
4102 KERNEL_PATH=/home/gxk/ti/android/omap
4106 Copy fw n NVS files to L27-GB/mydroid/hardware/wlan/fw
4108 Setting proper device:
4110 cp ./device/ti/blaze/buildspec.mk.default buildspec.mk
4112 cd ~/ti/android/L27-GB/mydroid/
4115 Add calibrator to Android {{{
4116 cd L27-GB/mydroid/external
4123 http://omapedia.org/wiki/L27.INC1.GB-ENG-1_OMAP4_GingerBread_ES2_Release_Notes
4125 The full procedure doesn't work ?????
4128 cp -Rfp ../L27-GB/mydroid/out/target/product/blaze/root/* .
4129 cp -Rfp ../L27-GB/mydroid/out/target/product/blaze/system/ .
4130 cp -Rfp ../L27-GB/mydroid/out/target/product/blaze/data/ .
4131 cp ../L27-GB/mydroid/device/ti/blaze/init.omap4430.rc ./init.rc
4133 The procedure based on Arik's rootfs
4134 Untar Arik's rootfs n copy as is to SD
4136 cp ./out/target/product/blaze/system/lib/modules/* <SD>/system/lib/modules/
4137 cp ../../omap/drivers/staging/ti-st/*.ko <SD>/
4138 cp <path_fw>/wl128x-fw*.bin <SD>/system/etc/firmware/
4141 sudo chmod -R 777 /media/rootfs
4149 setenv bootargs 'console=ttyO2,115200n8 mem=463M root=/dev/mmcblk1p2 rw rootdelay=2 init=/init vram="32M" omapfb.vram="0:24M" no_console_suspend=1 ip=172.16.1.7:172.16.1.11::255.255.255.0::eth0:down'
4150 setenv bootcmd 'mmcinit 0;fatload mmc 0 0x80000000 uimage; bootm 80000000'
4153 echo manual_lock > /sys/power/wake_lock
4154 echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
4155 echo 1 > /sys/devices/system/cpu/cpu1/online
4156 echo performance > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
4158 Settings -> Applications -> Development -> Stay awake
4162 036. Build Panda with new fs {{{
4165 Create build for Panda based wl12xx-2011-03-03 + Guy's patches + Guy's new
4169 Apply patches from patches/panda/2011-02-23
4170 [PATCH v2 1_2] regulator: twl: add clk32kg to twl-regulator
4171 [PATCH v2 2_2] OMAP4: add clk32kg data to omap4panda and blaze board file
4173 [PATCH v2 1_5] OMAP2420: hwmod data: Add HSMMC
4174 [PATCH v2 2_5] OMAP2430: hwmod data: Add HSMMC
4175 [PATCH v2 3_5] OMAP3: hwmod data: Add HSMMC
4176 [PATCH v2 4_5] OMAP4: hwmod data: Add HSMMC
4177 [PATCH v2 5_5] OMAP: devices: Modify HSMMC device to adapt to hwmod framework
4179 [PATCH 1_5] omap: panda: wlan board muxing
4180 [PATCH 2_5] omap: select REGULATOR_FIXED_VOLTAGE by default for panda and sdp4430
4181 [PATCH 3_5] omap: panda: add fixed regulator device for wlan
4182 [PATCH 4_5] omap: panda: add mmc5_wl1271 device support
4183 [PATCH 5_5] OMAP: hsmmc: Enable MMC4 and MMC5 on OMAP4 platforms
4185 Apply follow patches from Guy's tar 2011-03-08
4186 0001-wl12xx-add-support-for-rx-streaming.patch
4187 0002-wl12xx-add-automatic-rx-streaming-support.patch
4188 0003-wl12xx-add-rx_streaming-debugfs-entry.patch
4189 0004-Revert-wl12xx-disable-auto-arp.patch
4190 0005-wl12xx-update-bet_max_consecutive.patch
4191 0006-Add-support-for-11n-Rx-STBC-one-spatial-stream.patch
4192 0007-mac80211-Stop-BA-session-event-from-device.patch
4193 0008-wl12xx-Stop-BA-session-event-from-device.patch
4194 0012-wl12xx-add-BT-coexistance-for-AP.patch
4195 0013-wl12xx-set-the-actual-tid-instead-of-the-ac.patch
4196 0014-wl12xx-configure-rate_set-when-working-in-ibss-mode.patch
4199 Build Guy's filesystem: {{{
4200 untar rootfs-zoom3-uber-r3-10mar11.tar.bz2
4203 1. Cfg system to not load wl12xx files
4204 Comment follows line in /etc/udev/rules.d/local.rules
4205 SUBSYSTEM=="net", ACTION=="add" RUN+="/etc/udev/scripts/network.sh"
4206 SUBSYSTEM=="net", ACTION=="remove" RUN+="/etc/udev/scripts/network.sh"
4207 ACTION=="add", DEVPATH=="/devices/*", ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe
4209 3. Remove link in /etc/rc5.d/ about avahi-deamon
4210 4. comment in etc/udev/rules.d/80-drivers.rules like
4211 DRIVER!="?*", ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe -b $env{MODALIAS}"
4215 cp telnetd ./libexec
4217 cp etc/inetd.conf ./etc/
4219 Copy bash to bin/bash
4222 Remove lib/udev/rules.d/75-persistent-net-generator.rules
4223 Remove file etc/udev/rules.d/70-persistent-net.rules
4224 Changed back scripts: start-sta.sh, start-sta-supp.sh, start-supp.sh
4229 037. Build Blaze Android {{{
4231 Get Arik's compat v5 and apply
4232 Get latest Guy's patches and apply them
4233 Get Arik's filesystem
4235 Change filesystem as required by testing:
4236 from AviBerkovich email:
4237 ! copy to / follows: cli.sh, start-sta-supp.sh n chmod 777 them
4238 ! mkdir /data/busybox
4239 ! copy busybox binary to /system/bin
4240 ! copy script mcp_create_busybox_symlink /data/busybox n run it there
4242 ! add "/system/busybox" as the first directory in the PATH export
4243 ! change this line: "service console /system/bin/sh"
4244 to "service console /system/busybox/sh"
4245 ! service myeth0 /system/bin/ifconfig eth0 20.1.1.20 netmask 255.255.255.0 up
4249 ! service mytelnetd /data/busybox/telnetd -l sh
4253 ! change below 'service console /system/bin/sh'
4257 ! comment out 'mount yaffs2 mtd@system /system ro remount
4259 ! comment out 'mount rootfs rootfs / ro remount'
4261 ! after 'on property:persist.service.adb.enable=1' add line
4262 setprop service.adb.tcp.prop 5555
4265 cd MYDROID/hardware/wlan/compat
4268 Copy modules from compat:
4269 cp MYDROID/hardware/wlan/compat/compat/*.ko MYDROID/out/target/product/blaze/system/lib/modules/
4270 cp MYDROID/hardware/wlan/compat/drivers/net/wireless/wl12xx/*.ko MYDROID/out/target/product/blaze/system/lib/modules/
4271 cp MYDROID/hardware/wlan/compat/net/mac80211/*.ko MYDROID/out/target/product/blaze/system/lib/modules/
4274 cp -Rfp ../L27-GB/mydroid/out/target/product/blaze/root/* .
4275 cp -Rfp ../L27-GB/mydroid/out/target/product/blaze/system/ .
4276 cp -Rfp ../L27-GB/mydroid/out/target/product/blaze/data/ .
4277 cp ../L27-GB/mydroid/device/ti/blaze/init.omap4430.rc ./init.rc
4279 Copy go.sh n calibrator in /
4284 cp regulatory.bin ./lib/crda
4285 mkdir ./system/etc/wireless-regdb/pubkeys
4286 cp linville.key.pub.pem ./system/etc/wireless-regdb/pubkeys/
4287 ln -s ./system/etc etc
4290 Copy wl128x-fw.bin to ./system/etc/firmware/
4291 Copy wl1271-nvs.bin ./system/etc/firmware/
4294 038. Prepare filesystem with userspace apps {{{
4296 The reason to prepare wpa_s and others that have to remove my fix roaming patch
4300 libnl from tarball libnl-2.0
4301 iw commit cc12e895302aa7dc82229f12b21e61c52fba80f6
4302 openssl from tarball openssl-1.0.0d
4304 hostap commit b8fb017272ed4794339978c9fbc0e74571a44728
4305 Add patches to wpa_supplicant
4306 0001-Add-command-to-wpa_cli-to-print-roam-candidates.patch
4307 0002-bgscan_learn-Update-the-initial-value-of-time-interv.patch
4308 0003-crypto-Add-crypto-support-relevant-for-WAPI.patch
4309 0005-common-Add-definitions-for-WAPI-supports.patch
4310 0006-WAPI-functions.patch
4311 0007-drivers-WAPI-support-for-the-nl80211-driver.patch
4312 0008-wpa_supplicant-WAPI-support-in-the-supplicant.patch
4313 0009-wpa_supplicant-WAPI-support-in-the-CLI-and-the-confi.patch
4314 0010-bgscan-fix-print-roam-candidates-command.patch
4318 --- Additional changes:
4319 Disable dbus deamon: rm -rf etc/rc5.d/S02dbus-1
4320 Install libnl from offcial libnl-2.0
4322 Change hostname in etc/hostname to zoom3
4325 Connection w/ wpa_s WPA PSK
4327 039. Debug AP problem {{{
4332 echo -n 'module wl12xx +p' > /sys/kernel/debug/dynamic_debug/control
4335 040. Add netlatency to Blaze Android build {{{
4338 git reset --hard RLS27-GB-ENG-1_Gingerbread
4339 export MANIFEST=`pwd`
4341 export MYDROID=`pwd`
4342 source build/envsetup.sh
4343 mkdir -p ./external/netlatency
4344 cp netlatency.c ./external/netlatency/
4345 Add Android.mk to ./external/netlatency/
4348 041. Build Panda with fix for mmc5 master clock {{{
4351 get wl12xx from 2011-03-18
4353 Add patch to set MMC5 master clock to 24MHz
4354 patches/panda/fix_mmc5_master_clock/0001-Fix-master-clock-for-MMC3-5-to-48.patch
4356 Tested on Panda w/ RF cable and external antenna
4358 Panda w/o patch to fix mmc5 master clock
4362 + patch to fix mmc5 master clock
4366 + patch - mmc hs sdio capabilites
4371 Gave SD card to Ariela - Answer: It is 24MHz!!!
4374 042. Check filesystem package for testing requirements {{{
4376 Missing ftp, netlatency
4378 found previously placed Chariot endpoint at /wlan/temp
4379 cp ./netlatency /opt/rootfs/z3e/usr/sbin/
4382 043. Compare fw 7.1.3.50.55 vs 7.1.3.50.58 {{{
4385 diff -pbBwuN --exclude *.cmd --exclude *.1 --exclude *.keep 7.1.3.50.55/src/ 7.1.3.50.58/src > diff-55-58.txt
4387 New cmd: ACX_DISABLE_BROADCASTS - defines whether to enable broadcasts and multicast Rx
4390 044. Build Blaze Android based release RLS27.11.1 - r3ed3 {{{
4395 git checkout -b p-android-omap-2.6.35 origin/p-android-omap-2.6.35
4396 git checkout d4a101815d4957438915193785cefcaf5ea8cd33 - not good
4397 git checkout ff0b9680
4398 git am ../../blaze/blaze-0.3/kernel_new/*
4399 cp ../../blaze/blaze-0.3/kernel/kernel_config
4401 Kernel Hacking -> Tracers -> Kernel function tracer
4402 make -j8 uImage modules
4405 git clone git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx.git
4406 git clone git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/compat.git
4407 git clone git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/compat-wireless-2.6.git
4408 cd compat-wireless-2.6
4409 export GIT_COMPAT_TREE=/home/gxk/ti/compat
4410 export GIT_TREE=/home/gxk/ti/wl12xx
4412 rm -rf ./patches/11-dv-pm-ops.patch
4413 rm -rf ./patches/16-bluetooth.patch
4414 rm -rf ./patches/35-fix-makefile-includes.patch
4416 ./script/admin-refresh.sh
4417 ./scripts/driver-select wl12xx
4419 Apply patches for release
4420 cd compat-wireless-2.6
4421 cp .gitignore from kernel
4423 git commit -a -m "Initial"
4424 git am /opt/apps/releases/r3-ed2.2/kernel/*
4425 Skip 3 patches (7, 8, 9), by git am --skip
4426 Apply remove SDIO Ido's patch:
4427 git am ~/ti/blaze/blaze-0.3/0001-...claiming-of-the-SDI.patch
4429 make CONFIG_DEBUG_SECTION_MISMATCH=y KLIB=~/ti/android/omap KLIB_BUILD=~/ti/android/omap
4434 export MANIFEST=`pwd`
4435 git reset --hard RLS27.11.1_Gingerbread
4436 cd ../ && mkdir -p 27.11.1/mydroid; cd 27.11.1/mydroid
4437 export MYDROID=`pwd`
4438 repo init -u $MANIFEST
4440 repo forall -c git checkout -b vanilla
4442 git checkout -b wl12xx
4443 git am <path_to_patch>
4446 Appply patches from blaze-0.3/android/patches
4449 cp -r ~/ti/blaze/blaze-0.3/android/packages/external/* ./external/
4450 cp -r ~/ti/blaze/blaze-0.3/android/packages/hardware/* ./hardware/
4451 cd ./external && git clone ti-utils
4452 mkdir -p ./external/netlatency
4453 cp netlatency.c ./external/netlatency/
4454 Add Android.mk to ./external/netlatency/
4456 cp ./device/ti/blaze/buildspec.mk.default buildspec.mk
4463 mkdir myfs.27.11.1; cd myfs.27.11.1
4464 cp -Rfp ../27.11.1/mydroid/out/target/product/blaze/root/* .
4465 cp -Rfp ../27.11.1/mydroid/out/target/product/blaze/system/ .
4466 cp -Rfp ../27.11.1/mydroid/out/target/product/blaze/data/ .
4468 Copy modules from compat:
4469 mkdir ./system/lib/modules
4470 pushd to compat-wireless-2.6
4471 find . -name "*.ko" -exec cp -f {} MYDROID/system/lib/modules/ \;
4475 copy to / follows: cli.sh, start-sta-supp.sh n chmod 777 them
4477 copy busybox binary to /system/bin
4478 copy script mcp_create_busybox_symlink /data/busybox n run it there
4479 mkdir ./bin && cd ./bin && ln -s /system/bin/busybox sh
4480 cp ../L27-GB/mydroid/device/ti/blaze/init.omap4430.rc ./init.rc
4481 Copy wl128x-fw.bin to ./system/etc/firmware/
4482 Copy wl1271-nvs.bin ./system/etc/firmware/
4483 cp TIInst_10.6.15.bts
4484 cp <omap_kernel>/drivers/staging/ti-st/*.ko /
4486 cp ./hardware/wlan/initial_regdom/initial_regdom.sh ./system/bin
4490 bootcmd=mmcinit 0; fatload mmc 0 0x81c00000 uImage; bootm 0x81c00000
4491 bootargs=console=ttyO2,115200n8 root=/dev/mmcblk1p2 rw rootdelay=1 mem=456M@0x80000000 mem=512M@0xA0000000 init=/init vram="10M" omapfb.vram="0:4M" ip=172.16.1.7:172.16.1.254::255.255.255.0::eth0:down
4494 045. Calibrator for Android {{{
4497 Add NVS path in plt.h with macro ANDROID
4500 adb shell insmod /system/lib/modules/wl12xx_sdio.ko
4501 adb push /home/gxk/ti/user/ti-utils/ini_files/128x/TQS_D_1.7.ini /system/data/TQS_D_1.7.ini
4503 adb shell rmmod /system/lib/modules/wl12xx_sdio.ko
4506 046. Build Blaze Android based release - r3ed3.1-rc1 {{{
4511 git checkout -b p-android-omap-2.6.35 origin/p-android-omap-2.6.35
4512 git checkout ff0b9680
4513 git am ../../blaze/blaze-0.3/kernel_new/*
4518 Ap disable beacon filter
4521 cp ../../blaze/blaze-0.3/kernel/kernel_config
4523 Kernel Hacking -> Tracers -> Kernel function tracer
4524 make -j8 uImage modules
4527 git clone git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx.git
4529 git clone git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/compat.git
4530 git clone git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/compat-wireless-2.6.git (commit id f7606f5923e8297)
4531 cd compat-wireless-2.6
4532 export GIT_COMPAT_TREE=/home/gxk/ti/compat
4533 export GIT_TREE=/home/gxk/ti/wl12xx
4535 rm -rf ./patches/11-dv-pm-ops.patch
4536 rm -rf ./patches/16-bluetooth.patch
4537 rm -rf ./patches/35-fix-makefile-includes.patch
4539 ./script/admin-refresh.sh
4540 ./scripts/driver-select wl12xx
4542 Apply patches for release
4543 cd compat-wireless-2.6
4544 cp .gitignore from kernel
4546 git commit -a -m "Initial"
4547 git am /opt/apps/releases/r3-ed2.2/kernel/*
4548 Skip 3 patches (7, 8, 9), by git am --skip
4549 Apply remove SDIO Ido's patch:
4550 git am ~/ti/blaze/blaze-0.3/0001-...claiming-of-the-SDI.patch
4552 make CONFIG_DEBUG_SECTION_MISMATCH=y KLIB=~/ti/android/omap KLIB_BUILD=~/ti/android/omap
4557 export MANIFEST=`pwd`
4558 git reset --hard RLS27.11.1_Gingerbread
4559 cd ../ && mkdir -p 27.11.1/mydroid; cd 27.11.1/mydroid
4560 export MYDROID=`pwd`
4561 repo init -u $MANIFEST
4564 Apply patches to user apps from ti/blaze/r3-ed3/android/patches :
4565 repo forall -c git checkout -b vanilla
4567 git checkout -b wl12xx
4568 git am <path_to_patch>
4571 Appply patches from blaze-0.3/android/patches
4574 cp -r ~/ti/blaze/blaze-0.3/android/packages/external/* ./external/
4575 cp -r ~/ti/blaze/blaze-0.3/android/packages/hardware/* ./hardware/
4576 cd ./external && git clone ti-utils
4578 cp ./device/ti/blaze/buildspec.mk.default buildspec.mk
4583 Changes in Arik's packages:
4585 mkdir <myfs>/system/etc/firmware/ti-connectivity
4586 copy STA n AP firmwares to <myfs>/system/etc/firmware/ti-connectivity
4587 wl128x-fw.bin, wl128x-fw-ap.bin
4589 Copy ./hardware/wlan/initial_regdom/initial_regdom.sh ./system/bin
4591 Add to exernal/hostap/hostapd.conf follows:
4592 tx_queue_data2_aifs = 2
4593 tx_queue_data2_cwmin = 15
4594 tx_queue_data2_cwmax = 63
4595 tx_queue_data2_burst = 0
4597 Additions for testing:
4598 mkdir -p ./external/netlatency
4599 cp netlatency.c ./external/netlatency/
4600 Add Android.mk to ./external/netlatency/
4602 mkdir -p ./external/iperf
4604 mkdir -p ./external/testcmd
4606 Add busybox binaries:
4607 copy to / follows: cli.sh, start-sta-supp.sh
4609 copy busybox binary to /system/bin
4610 copy script mcp_create_busybox_symlink /data/busybox n run it there
4611 mkdir ./bin && cd ./bin && ln -s /system/bin/busybox sh
4615 mkdir myfs.r3ed3.1; cd myfs.r3ed3.1
4616 cp -Rfp ../27.11.1/mydroid/out/target/product/blaze/root/* .
4617 cp -Rfp ../27.11.1/mydroid/out/target/product/blaze/system/ .
4618 cp -Rfp ../27.11.1/mydroid/out/target/product/blaze/data/ .
4620 Copy modules from compat:
4621 mkdir ./system/lib/modules
4622 pushd to compat-wireless-2.6
4623 find . -name "*.ko" -exec cp -f {} MYDROID/system/lib/modules/ \;
4626 Copy modules from kernel (fm_drv.ko, gps_drv.ko, st_drv.ko, bt_drv.ko):
4628 find ./drivers/staging -name "*.ko" -exec cp -v {} <path to myfs> \;
4630 Copy TQS_D_1.7.ini to /data/
4632 Copy iperf ./system/bin/
4635 cp ../L27-GB/mydroid/device/ti/blaze/init.omap4430.rc ./init.rc
4642 bootcmd=mmcinit 0; fatload mmc 0 0x81c00000 uImage; bootm 0x81c00000
4643 bootargs=console=ttyO2,115200n8 root=/dev/mmcblk1p2 rw rootdelay=1 mem=456M@0x80000000 mem=512M@0xA0000000 init=/init vram="10M" omapfb.vram="0:4M" ip=172.16.1.7:172.16.1.254::255.255.255.0::eth0:down
4646 047. R3ED3.1-RC1 Android - Release notes, build instructions {{{
4651 This is 1st release of NLCP group for Android on Blaze platform.
4653 - R3ED3.1-RC1 Android -
4655 It based on OMAP Android release 27.11.1 (Gingerbread) with additions for
4656 TI's wireless driver (wl12xx) and TI's bluetooth.
4658 The release uses firmware version 7.1.4.50.63 (for station) and
4659 7.2.0.0.47 (for AP). The bluetooth solution based on initialization
4660 script version 10.6.15
4663 The build instructions of the release can be found in document:
4664 "R3ED3.1-RC1 Android build instructions"
4666 Main features supported in the release:
4671 Known issues in the release:
4672 - All security modes connection needs to be run with wpa_supplicant
4673 without “-d” option.
4674 - WiFi WMM certification should be run with NLCP ASD
4675 - Auto FEM detection is not used for the NVS preparing
4676 - WiFi WPA2: APUT with mixed mode STAs transmits lower TP than WiFi requires
4677 - Stability: TCP RX traffic failed after 6:40h 2 recovery occur
4678 - 802.11N: Rx TCP sessions with simultaneous VI and BE traffic fails
4680 - SG: APUT QuattroL Multicast Tx Traffic Stops right after start sending
4685 \\dilfs02\wlan\WLAN\NLCP\Driver\Version_Tree\r3-ed3.1-03apr11\docs
4687 \\dilfs02\wlan\WLAN\NLCP\Driver\Version_Tree\r3-ed3.1-03apr11\images
4689 \\dilfs02\wlan\WLAN\NLCP\Driver\Version_Tree\r3-ed3.1-03apr11\patches
4691 \\dilfs02\wlan\WLAN\NLCP\Driver\Version_Tree\r3-ed3.1-03apr11\test_results
4694 R3ED3.1-RC1 Android build instructions {{{
4696 --- Prepare the project:
4697 Create directory for the project:
4698 mkdir android-wl12xx && cd android-wl12xx
4699 export WL12XX_PRJ=`pwd`
4701 Download r3ed3.1-rc1.tar.bz2 and follow below instructions:
4702 Open tar file: tar jxf r3ed3.1-rc1.tar.bz2
4704 android - collection of patches and packages for Android AFS
4705 kernel - collection of patches for kernel
4706 wl12xx - collection of patches for wl12xx driver
4707 from compat-wireless-2.6
4710 --- Building kernel:
4711 git clone git://git.omapzoom.org/kernel/omap.git
4713 git checkout ff0b9680
4714 cp ../r3ed3.1-rc1/kernel/kernel_config .config
4715 Apply kernel patches:
4716 git am ../r3ed3.1-rc1/kernel/*patch
4720 There is kernel image which you can use: ./arch/arm/boot/uImage
4721 Copy it to the SD card boot partition.
4724 --- Building wl12xx driver:
4725 Make sure that your current directory is android-wl12xx
4726 (see Prepare the project)
4728 git clone git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx.git
4730 git reset --hard 392d496
4732 git clone git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/compat.git
4733 git clone git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/compat-wireless-2.6.git
4734 pushd compat-wireless-2.6
4735 git reset --hard f7606f5923e8297
4736 export GIT_COMPAT_TREE=<path>/android-wl12xx/compat
4737 export GIT_TREE=<path>/android-wl12xx/wl12xx
4738 rm -rf ./patches/11-dv-pm-ops.patch
4739 rm -rf ./patches/16-bluetooth.patch
4740 rm -rf ./patches/35-fix-makefile-includes.patch
4742 ./script/admin-refresh.sh
4743 ./scripts/driver-select wl12xx
4745 cp $WL12XX_PRJ/omap/.gitignore .
4747 git commit -a -m "Initial"
4748 Apply patches for release
4749 git am ../r3ed3.1-rc1/kernel/wl12xx/*patch
4750 Skip 3 patches (7, 8, 9), by git am --skip
4752 make KLIB=<path>/android-wl12xx/omap KLIB_BUILD=<path>/android-wl12xx/omap
4755 --- Building Android filesystem (AFS)
4756 Make sure that your current directory is android-wl12xx
4757 (see Prepare the project)
4759 git clone git://git.omapzoom.org/platform/omapmanifest.git
4761 git reset --hard RLS27.11.1_Gingerbread
4762 export MANIFEST=`pwd`
4763 popd && mkdir -p 27.11.1/mydroid; cd 27.11.1/mydroid
4764 export MYDROID=`pwd`
4765 repo init -u $MANIFEST
4768 Apply patches to Android applications:
4769 repo forall -c git checkout -b vanilla
4771 git am $WL12XX_PRJ/r3ed3.1-rc1/android/patches/build/*
4773 pushd device/ti/blaze
4774 git am $WL12XX_PRJ/r3ed3.1-rc1/android/patches/device.ti.blaze/*
4776 pushd external/hostapd
4777 git am $WL12XX_PRJ/r3ed3.1-rc1/android/patches/external.hostapd/*
4779 pushd external/openssl
4780 git am $WL12XX_PRJ/r3ed3.1-rc1/android/patches/external.openssl/*
4782 pushd external/wpa_supplicant_6
4783 git am $WL12XX_PRJ/r3ed3.1-rc1/android/patches/external.wpa_supplicant_6/*
4785 pushd framework/base
4786 git am $WL12XX_PRJ/r3ed3.1-rc1/android/patches/framework.base/*
4788 pushd hardware/libhardware_legacy
4789 git am $WL12XX_PRJ/r3ed3.1-rc1/android/patches/hardware.libhardware_legacy/*
4792 git am $WL12XX_PRJ/r3ed3.1-rc1/android/patches/system.core/*
4795 git am $WL12XX_PRJ/r3ed3.1-rc1/android/patches/system.netd/*
4798 Copy applications to complete wireless solution:
4799 cp -r $WL12XX_PRJ/r3ed3.1-rc1/android/packages/external/* ./external/
4800 cp -r $WL12XX_PRJ/r3ed3.1-rc1/android/packages/hardware/* ./hardware/
4802 cp ./device/ti/blaze/buildspec.mk.default buildspec.mk
4806 --- Preparing filesystem
4807 Make sure that your current directory is android-wl12xx
4808 (see Prepare the project)
4811 cp -Rfp $WL12XX_PRJ/27.11.1/mydroid/out/target/product/blaze/root/* .
4812 cp -Rfp $WL12XX_PRJ/27.11.1/mydroid/out/target/product/blaze/system/ .
4813 cp -Rfp $WL12XX_PRJ/27.11.1/mydroid/out/target/product/blaze/data/ .
4815 Copy modules from compat:
4816 mkdir ./system/lib/modules
4817 pushd $WL12XX_PRJ/compat-wireless-2.6
4818 find . -name "*.ko" -exec cp -f {} $WL12XX_PRJ/myfs/system/lib/modules/ \;
4821 Copy modules from kernel (fm_drv.ko, gps_drv.ko, st_drv.ko, bt_drv.ko):
4822 pushd $WL12XX_PRJ/omap
4823 find ./drivers/staging -name "*.ko" -exec cp -v {} $WL12XX_PRJ/myfs \;
4826 cp $WL12XX_PRJ/r3ed3.1-rc1/TQS_D_1.7.ini to ./data/
4828 Copy iperf ./system/bin/
4830 cp $WL12XX_PRJ/r3ed3.1-rc1/init.rc ./init.rc
4835 048. mcp3 alignment {{{
4836 2011-04-11 2011-04-13
4837 Get patches and fw from Eliad in wl12xx/patches/mcp3
4838 There is also firmware there (wl1271-fw-multirole-roc.bin).
4839 Have to copy firmware it to
4840 ./lib/firmware/ti-connectivity/wl127x-fw-multirole-roc.bin
4844 Produced build and SD card for Bella
4848 Rebuild everything with new patches
4851 git checkout -b mcp3-1a51c36
4852 git reset --hard 1a51c36
4853 git remote add wl12xx-next3 git://gitorious.org:wl12xx-next3/wl12xx-next3.git
4854 git push wl12xx-next3 mcp3-1a51c36
4857 git clone git://gitorious.org/wl12xx-next3/wl12xx-next3.git
4860 049. Build R3-RC2-Android {{{
4862 Build filesystem for Native Linux rootfs-2011-04-12-z3.tar.bz2
4863 build hostapd + ap_test.sh
4865 90977 - Missing Country data in AP beacon IE 7
4867 Add 2 lines to hostapd.conf or ap_test.sh
4871 iw reg set/get works, but no changes in AP beacon
4873 91039 - [Android] not saving wless profile
4875 Remove line which copies wpa_supplicant.conf form init.omap4430.rc
4876 Change in patches/device.ti.blaze/0001-build-configure-build-for-wl12xx-driver.patch
4881 Add hostapd.conf from Arik 2011-04-11 to
4884 Add certification files to system/etc/certs
4888 Copy busybox binary to /system/bin
4889 Copy script mcp_create_busybox_symlink /data/busybox n run it there
4891 service mytelnetd /data/busybox/telnetd -l sh
4897 Remove /data/busybox/{rmmod,insmod,modprobe,dhcprelay,udhcp*, syslogd, swapon, swapoff}
4900 050. Prepare Beagle to NFS boot n R3-RC2 {{{
4904 mkimage -A arm -T script -C none -n "My boot script" -d nfs_bb.script boot.scr
4908 echo ----------------------
4909 echo U-boot for Beagleboard
4910 echo ----------------------
4911 setenv console 'ttyO2,115200n8'
4913 setenv ipaddr 172.16.1.6
4914 setenv serverip 172.16.1.11
4915 setenv loadaddr '0x80300000'
4916 setenv bootfile 'bb/uImage'
4917 setenv netroot '/dev/nfs'
4918 setenv netargs 'setenv bootargs console=${console} root=${netroot} rw nfsroot=${serverip}:/opt/rootfs/beagle,nolock ip=${ipaddr} mpurate=${mpurate} buddy=${buddy} camera=${camera} vram=${vram} omapfb.mode=dvi:${dvimode} omapdss.def_disp=${defaultdisplay}'
4919 setenv bootcmd 'run netargs; mmc init 0 ; fatload mmc 0:1 ${loadaddr} uImage ; bootm ${loadaddr}'
4920 run netargs; mmc init 0 ; fatload mmc 0:1 ${loadaddr} uImage ; bootm ${loadaddr}
4922 Copy it to /media/boot/boot.scr
4926 git am ./patches/beagleboard/wl12xx-2011-02-08/0001-Add-Beagleboard-support.patch
4927 git am ./patches/r3/r3-rc2/kernel/*
4931 insmod /lib/modules/`uname -r`/kernel/net/bluetooth/bluetooth.ko
4934 051. Create rootfs for R3 {{{
4937 On wpa_supplicant comit id b8fb017272ed4794339978c9fbc0e74571a44728
4939 Comment in .config at CONFIG_WPS2
4940 Remove WAPI patches, so it will leave only those patches:
4941 0001-Add-command-to-wpa_cli-to-print-roam-candidates.patch
4942 0001-hostapd-fix-interfaces.iface-initialization.patch
4943 0002-bgscan_learn-Update-the-initial-value-of-time-interv.patch
4944 0004-Fix-LowRSSI-roaming.patch
4945 0010-bgscan-fix-print-roam-candidates-command.patch
4948 Released as rootfs-r3.tar.bz2
4950 052. Prepare build based Luca wl12xx-2011-04-29 {{{
4953 Kernel commit eb4fd2bb24343d6d0ffe10c05bf1e7dc01b32f13
4954 iw commit 18e05613cd050d4d72938f1a140b2cd20864290f
4955 hostap commit 0725cc7b7efc434910e89865c42eda7ce61bbf08
4958 053. Build latest R4 build 5 {{{
4960 kernel commit 2cd9da254ac45b26422f5254091a44 2011-04-11
4961 iw commit 18e05613cd050d4d72938f1a140b2cd20864290f 2011-05-01
4962 hostap commit 0725cc7b7efc434910e89865c42eda7ce61bbf08 2011-05-01
4964 based on Eliad patches from ./patches/mcp3/2011-05-01
4967 wl1271-fw-multirole-roc.bin
4968 wl128x-fw-multirole-roc.bin
4970 No support for 11n - waiting for fw version
4973 054. Prepare build based Luca wl12xx-2011-04-29-3 {{{
4976 Kernel commit 59fb9103cf037dfbc5ae4387edc441415b7eddf1
4977 iw commit 18e05613cd050d4d72938f1a140b2cd20864290f
4978 hostap commit 0725cc7b7efc434910e89865c42eda7ce61bbf08
4981 055. Fix Beagle NFS for 2.6.39-rcX {{{
4984 Fix comes from https://lkml.org/lkml/2011/4/14/45
4986 Created patch at patches/beagleboard/2.6.39-rc5/0001-Beagle-support.patch,
4987 where whole Beagle support included.
4991 056. Build latest R4 build 7 {{{
4993 kernel commit 2cd9da254ac45b26422f5254091a44 2011-04-11
4995 iw commit 18e05613cd050d4d72938f1a140b2cd20864290f 2011-05-01
4997 hostap commit 0725cc7b7efc434910e89865c42eda7ce61bbf08 2011-05-01
4998 0001-nl80211-consider-p2p-when-changing-vif-type.patch
4999 0002-nl80211-change-vif-type-to-P2P_CLI-upon-p2p-authenti.patch
5001 based on Eliad patches from ./patches/mcp3/2011-05-01
5004 wl1271-fw-multirole-roc.bin
5005 wl128x-fw-multirole-roc.bin
5010 057. FW Logger integration {{{
5011 2011-04-27 2011-05-04
5013 Apply Ido's patches from patches/fw_logger/2011-05-03/
5015 Boot the system. Connect.
5016 Open telnet and run:
5017 cat /sys/devices/platform/wl1271/fw_crashlog
5019 On console run: testcmd phy phy0 recover
5021 Should be hex dump on telnet terminal.
5024 Realesed as 7.1.5.50.58
5026 058. FEM Autodetection {{{
5028 Create NVS file based on 2 INIs to support auto FEM detection.
5030 Both IN files should be the same arch (wl127x or wl128x) and same dual band
5031 mode (single or dual).
5034 New command in go.sh:
5035 go.sh -c2 128x/TQS_S_... 128x/RFMD_S_...
5036 New command in calibrator:
5037 calibrator set ref_nvs2 128x/TQS_S_... 128x/RFMD_S_...
5038 calibrator set nvs_autofem 0|1 [nvs file]
5041 059. Build R3M1-RC2-Android {{{
5044 Added driver patches:
5046 copy STA n AP firmwares to <myfs>/system/etc/firmware/ti-connectivity
5047 wl128x-fw.bin, wl128x-fw-ap.bin
5052 Take AFS from r3-rc2
5054 060. Build R3M1-RC4-Android {{{
5057 wl12xx commit 9a4c2c1bae3e1c94d4598634c6f68153bf557c58 (tag wl12xx-2011-05-13)
5058 compat commit 3e6f997
5059 compat-wireless-2.6 commit 501c91f
5064 Add wl12xx patches (based on r3m1-rc2)
5096 0049 qos prioritization
5105 Handle QOS prioritization
5106 Avoid recovery while one is already in progres
5107 Add support for the FW crash log x4
5109 wl12xx: Stop BA session event
5110 mac80211: Stop BA session
5114 Take AFS from r3-rc2
5116 061. Prepare R4 on Blaze for 18xx {{{
5119 git remote add wizery ssh://geryk@wizery.com/pub/wl1271.git
5120 git checkout --track -b wizery-p2p_roc_11n wizery/p2p_roc_11n
5123 062. Build R4 RC2 {{{
5125 based on commit 278f02e152f84cb47a04d3e54da5e9922b79730c from wizery git
5129 063. Build R3M1-RC5-Android {{{
5132 omap kernel commit ff0b9680e4a2eeeb389f584acf8becf989ecb928
5133 compat commit d08656f
5134 compat-wireless-2.6 commit 6f4e670768943ec6f175435177be444f4fa84d6c
5135 wl12xx commit 842de05fe75d07bf4cfe35e5ecd89e57ece65d2c
5141 Create patches for wl12xx:
5142 -------------------------
5143 git remote add wizery ssh://geryk@wizery.com/pub/wl1271.git
5145 git checkout --track -b wizery-suspend_android wizery/suspend_android
5146 git format-patch -o patches/r3m1rc5 master
5147 commit c498a81a911e5f857020abdce63fd0d5c729a21f
5152 QOS prioritization [RFC v2]
5153 Add support for the FW crash [v3]
5154 Stop BA session [v2]
5158 Copy certs files from myfs.r3
5161 AFS at myfs.r3: ./system/etc/certs
5162 Take AFS from r3-rc2
5164 064. Build R4 RC2 Build 3 {{{
5166 based on commit 6d67e7681c8bd0ad957a8cadeca694606de8ed9d from wizery git
5170 065. Calibration for R4 (mcp3.x) {{{
5173 6d67e7681c8bd0ad957a8cadeca694606de8ed9d
5175 INI files taken from FW_7.1.2.0.XX\7.1.4.0.56
5178 Created patch to use PLT firmware when doing calibration.
5179 Sent t Eliad, pushed to wizery/p2p-roc-11n
5182 066. Add TxTone command to calibrator {{{
5185 New command TxTone which starting transmission of
5186 certain tone type (single tone or carrier feedthrough)
5189 The TxTone transmission procedure:
5191 calibrator wlan0 plt power_mode on
5193 Run TxTone transmission
5194 calibrator set plt_tx_tone <power> <tone type>
5198 2 - Carrier FeedThrough
5201 calibrator wlan0 plt tx_stop
5203 Get out from PLT mode
5204 calibrator wlan0 plt power_mode off
5206 !!! The power parameter not functional according to bug 78376
5208 2011-05-16 Sent to Yoni to test, cause there is no option to do it localy.
5211 067. Build R3M1-RC5-Build 3 {{{
5214 omap kernel commit ff0b9680e4a2eeeb389f584acf8becf989ecb928
5215 compat commit d08656f
5216 compat-wireless-2.6 commit 6f4e670768943ec6f175435177be444f4fa84d6c
5217 wl12xx commit 842de05fe75d07bf4cfe35e5ecd89e57ece65d2c
5223 Create patches for wl12xx:
5224 -------------------------
5225 git remote add wizery ssh://geryk@wizery.com/pub/wl1271.git
5227 git checkout --track -b wizery-suspend_android wizery/suspend_android
5228 git format-patch -o patches/r3m1rc5 master
5229 commit c498a81a911e5f857020abdce63fd0d5c729a21f
5234 2. Eliad patch "Do not drop packet while in resuming"
5235 3. Applied 3rd patch for system.netd
5238 Build R4-RC1 Android {{{
5242 I've put a package up at:
5243 http://wizery.com/arik/blaze-0.5.tar.bz2
5245 basically it contains the following changes from blaze-0.3:
5246 - a service addition to android/patches/device.ti.blaze/
5247 - a new p2p_supplicant package in android/packages/external containing
5248 a (slightly) modified wpa_supplicant 0.8.x
5249 - a new "p2p_supplicant.conf" under packages/hardware/wlan/wifi_conf/
5250 - a new "host scripts" folder in the root
5252 Note the release is console only, no GUI is presented when in p2p mode.
5254 The driver version I'm using is a compat based on the latest R4 code.
5256 git clone http://wizery.com/arik/git/compat.git -b mcp3
5258 - Use the p2p_start/p2p_stop scripts to toggle p2p mode. The device
5259 name and ip addr can be configured inside "p2p_start".
5260 - Use "p2p_find <x>" to search for devices for <x> seconds. The found
5261 devices are displayed at the end of the search. This command should be
5262 run on both sides for a valid find.
5263 - Use "p2p_connect <mac> pbc" to connect to the remote device in
5264 push-button mode. This command should be run on both sides to create a
5266 - Use p2p_cmd for more advanced p2p commands. See this URL for more info:
5267 http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/README-P2P;hb=refs/heads/master
5270 Compare android/packages between r4rc1 n r3m1rc5:
5272 ------------------------------------------------------
5273 external/crda a87eddb same
5274 external/hostap 4391c34 same
5275 external/iw 319fbad same
5276 external/libnl bbcb553 same
5277 external/netlatency + -
5278 external/testcmd + -
5279 external/ti-utils + -
5280 external/p2p_supplicant - +
5282 hardware/fw + same (BT fw in separate dir)
5283 hardware/initial_regdom same same
5284 hardware/wifi_conf + diff (+ p2p_supplicant.conf)
5285 hardware/wpa_supplicant_lib same same
5288 Compare android/patches between r4rc1 n r3m1rc5:
5290 ------------------------------------------------------
5292 device.ti.blaze 1 3 patches
5293 external.hostapd same same
5294 external.openssl same same
5295 external.wpa_supplicant_6 same same
5296 frameworks.base same same
5297 hardware.libhardware_legacy diff diff
5298 system.core same same
5299 system.netd same same
5302 Build omap kernel branch r4c1
5303 Build compat-wireless-2.6 from Arik's git (see email above)
5304 Prepare filesystem at ~/ti/android/27.11.1/mydroid-r4
5306 To android/packages/hardware/fw added mcp3 fw binaries and changed Android.mk
5309 Do not AFS with p2p_supplicant!!! After building AFS,
5310 pushd external/p2p_supplicant && mm
5313 068. Build R4 RC2 Build 4 {{{
5316 git checkout --track -b wizery-p2p_roc_11n-2011-05-31 wizery/p2p_roc_11n
5319 git reset --hard wizery/p2p_roc_11n
5321 based on commit 6762e3fde3d3cfcf2dadc5543eec8daaa3c8b9ac from wizery git
5323 wpa_supplicant and hostapd
5324 (branch 2011-05-31) ceb34f250af7a7082f18c1e0451dc7fbc0f000f3
5325 CONFIG_WPS2=y for both wpa_supplicant and hostapd
5329 069. Build R4 RC2 Build 5 {{{
5331 Create build with fixed AP and deliver the source code for Intel.
5333 git checkout --track -b wizery-p2p_roc_11n-2011-05-31 wizery/p2p_roc_11n
5335 git reset --hard wizery/p2p_roc_11n
5337 based on commit 99540c9c84948f01d372ae6f25140eb1101f53d8 from wizery git
5338 The wizery git rebased on Luca
5339 842de05fe75d07bf4cfe35e5ecd89e57ece65d2c (2011-05-20)
5341 Create all patches since Luca 2011-05-20:
5342 git format-patch -o ./patches/r4/rc2-b5 --subject-prefix="PATCH" 842de05fe75d07bf4cfe35e5ecd89e57ece65d2c
5344 wpa_supplicant and hostapd
5345 (branch 2011-05-31) ceb34f250af7a7082f18c1e0451dc7fbc0f000f3
5346 CONFIG_WPS2=y for both wpa_supplicant and hostapd
5352 070. Build R4 RC2 Build 6 {{{
5354 Create build with fixed AP and deliver the source code for Intel.
5356 git checkout --track -b wizery-p2p_roc_11n-2011-05-31 wizery/p2p_roc_11n
5358 git reset --hard wizery/p2p_roc_11n
5360 based on commit 74be328a07f6a747f470c58cca2fae7e975252b4 from wizery git
5361 The wizery git rebased on Luca
5362 842de05fe75d07bf4cfe35e5ecd89e57ece65d2c (2011-05-20)
5364 Create all patches since Luca 2011-05-20:
5365 git format-patch -o ./patches/r4/r4-rc2-b6/wl12xx --subject-prefix="PATCH" 842de05fe75d07bf4cfe35e5ecd89e57ece65d2c
5367 wpa_supplicant and hostapd
5368 (branch 2011-05-31) ceb34f250af7a7082f18c1e0451dc7fbc0f000f3
5369 CONFIG_WPS2=y for both wpa_supplicant and hostapd
5375 071. Build R3M1-RC5-Build 4 {{{
5377 from Ruthy's email {{{
5378 X wl12xx: Add Support for Low Power DRPw (LPD) Mode è Lower Power in AP mode
5380 X [v2] mac80211: leave dynamic PS when receiving data è Solves the 3 WiFi Bugs below
5381 1. MCS00093061: WiFi TGn: Low TP and no A-MSDU aggregation with Ralink AP using power save.
5382 2. MCS00093461: : WiFi WPA2: Lower RX multicast TP than WiFi requires with power_save on.
5383 3. MCS00093330: WiFi WPA2: Lower RX TP than WiFi requires with power_save on While 2 STAs are associated.
5385 X mac80211: fix rx->key NULL dereference during mic failure *EXPERIMENTAL*
5386 1. Solves Bug MCS00093190: WiFi WPA2/TGn: Kernel panic occurred after receiving the first bad mic packet with mix mode security.
5388 X Suspend/Resume patch for 11n ping not waking up the host è Not patch but fix in the e-mail attached here
5389 1. Solves Bug MCS00090855: Suspend/Resume : 11n ping is is not replied by the host
5391 X 0001-wl12xx-schedule-TX-packets-according-to-FW-occupancy.patch & 0002-wl12xx-Increase-low-high-TX-watermarks-EXPERIMENTAL.patch should solves:
5392 1. MCS00085607 :WiFi WMM-When the AP defined worse QoS parameters (AIFS) for the VI, the SUT still send VI more than BE
5395 omap kernel commit ff0b9680e4a2eeeb389f584acf8becf989ecb928
5396 compat commit d08656f
5397 compat-wireless-2.6 commit 6f4e670768943ec6f175435177be444f4fa84d6c
5398 wl12xx commit 842de05fe75d07bf4cfe35e5ecd89e57ece65d2c
5404 Create patches for wl12xx:
5405 -------------------------
5406 git remote add wizery ssh://geryk@wizery.com/pub/wl1271.git
5408 git checkout --track -b wizery-suspend_android wizery/suspend_android
5409 git format-patch -o patches/r3m1rc5 master
5410 commit c498a81a911e5f857020abdce63fd0d5c729a21f
5415 Stop BA session [v2]
5416 Add support for the FW logger [v3]
5417 Fix ping while resuming
5418 Fix dynamic PS when receiving [2]
5420 Support for LowPower DRPw [v4]
5421 Tx scheduler by FW occupancy
5429 072. Build R3M1-RC5-Build 5 {{{
5431 Same as R3M1-RC5 Build 4 +
5432 wl12xx patch "Temporarily revert "Change claiming of the SDIO bus"
5433 and support for COM6 (didn't check the COM6)
5435 omap kernel commit ff0b9680e4a2eeeb389f584acf8becf989ecb928
5436 compat commit d08656f
5437 compat-wireless-2.6 commit 6f4e670768943ec6f175435177be444f4fa84d6c
5438 wl12xx commit 842de05fe75d07bf4cfe35e5ecd89e57ece65d2c
5444 Create patches for wl12xx:
5445 -------------------------
5446 git remote add wizery ssh://geryk@wizery.com/pub/wl1271.git
5448 git checkout --track -b wizery-suspend_android wizery/suspend_android
5449 git format-patch -o patches/r3m1rc5 master
5450 commit c498a81a911e5f857020abdce63fd0d5c729a21f
5455 Stop BA session [v2]
5456 Add support for the FW logger [v3]
5457 Fix ping while resuming
5458 Fix dynamic PS when receiving [2]
5460 Support for LowPower DRPw [v4]
5461 Tx scheduler by FW occupancy
5469 072. Build R3M1-RC5-WAPI Build 1 {{{
5471 Based on R3M1-RC5 Build 5
5473 omap kernel commit ff0b9680e4a2eeeb389f584acf8becf989ecb928
5474 compat commit d08656f
5475 compat-wireless-2.6 commit 6f4e670768943ec6f175435177be444f4fa84d6c
5476 wl12xx commit 842de05fe75d07bf4cfe35e5ecd89e57ece65d2c
5482 Create patches for wl12xx:
5483 -------------------------
5484 git remote add wizery ssh://geryk@wizery.com/pub/wl1271.git
5486 git checkout --track -b wizery-suspend_android wizery/suspend_android
5487 git format-patch -o patches/r3m1rc5 master
5488 commit c498a81a911e5f857020abdce63fd0d5c729a21f
5490 Added patches to kernel:
5491 - Add WEXT GEM configuration option
5493 Added patch to compat-wireless:
5494 - Added GEM cipher support in wext interface
5497 - to external/wpa_supplicant_6
5506 072. Build R3M1-RC5-Build 6 {{{
5508 Same as R3M1-RC5 Build 5
5510 omap kernel commit ff0b9680e4a2eeeb389f584acf8becf989ecb928
5511 compat commit d08656f
5512 compat-wireless-2.6 commit 6f4e670768943ec6f175435177be444f4fa84d6c
5513 wl12xx commit 842de05fe75d07bf4cfe35e5ecd89e57ece65d2c
5519 Create patches for wl12xx:
5520 -------------------------
5521 git remote add wizery ssh://geryk@wizery.com/pub/wl1271.git
5523 git checkout --track -b wizery-suspend_android wizery/suspend_android
5524 git format-patch -o patches/r3m1rc5 master
5525 commit c498a81a911e5f857020abdce63fd0d5c729a21f
5528 Added new kernel patch:
5529 mmc fix division by zero in MMC core
5531 Added new wl12xx patches:
5540 073. Build R3M1-RC5-Build 7 {{{
5542 Same as R3M1-RC5 Build 6
5544 omap kernel commit ff0b9680e4a2eeeb389f584acf8becf989ecb928
5545 compat commit d08656f
5546 compat-wireless-2.6 commit 6f4e670768943ec6f175435177be444f4fa84d6c
5547 wl12xx commit 842de05fe75d07bf4cfe35e5ecd89e57ece65d2c
5553 Create patches for wl12xx:
5554 -------------------------
5555 git remote add wizery ssh://geryk@wizery.com/pub/wl1271.git
5557 git checkout --track -b wizery-suspend_android wizery/suspend_android
5558 git format-patch -o patches/r3m1rc5 master
5559 commit c498a81a911e5f857020abdce63fd0d5c729a21f
5562 Added new wl12xx patches:
5563 Change in claim SDIO patch
5565 Suspend/Resume patches:
5566 mac80211: add cancel_hw_scan() callback [v2]
5567 wl12xx: add stop_scan command
5568 wl12xx: implement cancel_hw_scan() callback [v2]
5570 mac80211: quiesce vif before suspending
5578 074. wl18xx NVS changes {{{
5581 1. Disable sending radio params from NVS to firmware
5582 2. Use of new codebase for reg address 0x00810000
5584 Phys addr: 0x00815548 - STA_ADDR_L - sta mac addr reg
5585 Phys addr: 0x00815544 - STA_ADDR_H - sta mac addr reg
5588 01 6d 54 M5 M4 M3 M2 01 71 54 M1 M0 00 00
5591 01 44 55 M5 M4 M3 M2 01 48 55 M1 M0 00 00
5593 wl1271_boot() (boot.c)
5594 |-> wl1271_load_firmware()
5595 |-> wl1271_boot_upload_nvs()
5597 075. Build R3M1-RC5-Build 8 {{{
5599 Same as R3M1-RC5 Build 7
5601 omap kernel commit ff0b9680e4a2eeeb389f584acf8becf989ecb928
5602 compat commit d08656f
5603 compat-wireless-2.6 commit 6f4e670768943ec6f175435177be444f4fa84d6c
5604 wl12xx commit 842de05fe75d07bf4cfe35e5ecd89e57ece65d2c
5610 Create patches for wl12xx:
5611 -------------------------
5612 git remote add wizery ssh://geryk@wizery.com/pub/wl1271.git
5614 git checkout --track -b wizery-suspend_android wizery/suspend_android
5615 git format-patch -o patches/r3m1rc5 master
5616 commit c498a81a911e5f857020abdce63fd0d5c729a21f
5620 1 - wl12xx schedule TX packets according to FW occupancy == 0025 build 7
5621 2 - mac80211 send pending Tx packets in a round robin = new
5622 3 - wl12xx increase low high Tx watermark == 0026 build 7
5623 4 - wl12xx implement Tx watermark per AC = new
5626 fix mac80211 WMM starvation
5637 076. Build R3M1-RC5-Build 9 {{{
5639 Same as R3M1-RC5 Build 8
5641 omap kernel commit ff0b9680e4a2eeeb389f584acf8becf989ecb928
5642 compat commit d08656f
5643 compat-wireless-2.6 commit 6f4e670768943ec6f175435177be444f4fa84d6c
5644 wl12xx commit 842de05fe75d07bf4cfe35e5ecd89e57ece65d2c
5650 Create patches for wl12xx:
5651 -------------------------
5652 git remote add wizery ssh://geryk@wizery.com/pub/wl1271.git
5654 git checkout --track -b wizery-suspend_android wizery/suspend_android
5655 git format-patch -o patches/r3m1rc5 master
5656 commit c498a81a911e5f857020abdce63fd0d5c729a21f
5660 new firmware 7.1.5.50.73
5667 077. wl18xx - Add stuff to debugfs {{{
5670 Here are the list of ini parameters to add for the WL8 project:
5671 RecoveryEnable # 0 -Disabled 1- Enabled
5673 ! TxAggregationPktsLimit # Disable Tx pkts aggregation (degrades TP)
5674 ! RxAggregationPktsLimit
5675 ! TxCompleteThreshold
5676 ! RxInterruptThreshold -
5681 .packet_detection_threshold - ACX_PD_THRESHOLD
5682 .irq_pkt_threshold - ACX_RX_CONFIG_OPT - nbr of pkts when to irq
5683 .irq_timeout - ACX_RX_CONFIG_OPT - tout when to irq
5684 .irq_blk_threshold - ACX_RX_CONFIG_OPT - nbr of mem blks when to irq
5685 .queue_type - ACX_RX_CONFIG_OPT
5688 0001-wl18xx-Make-Rx-and-Tx-interrupt-pacing-configurable.patch
5689 0001-wl18xx-Add-ability-to-cfg-the-Tx-aggr-pkts-limit.patch
5690 0001-wl18xx-Add-ability-to-cfg-Rx-aggr-pkts-limit.patch
5694 078. Build R3M1-RC5-Build 1x {{{
5696 To test WMM tests 5.2.27, 5.2.30, 5.2.32
5698 omap kernel commit ff0b9680e4a2eeeb389f584acf8becf989ecb928
5699 compat commit d08656f
5700 compat-wireless-2.6 commit 6f4e670768943ec6f175435177be444f4fa84d6c
5701 wl12xx commit 842de05fe75d07bf4cfe35e5ecd89e57ece65d2c
5707 Create patches for wl12xx:
5708 -------------------------
5709 git remote add wizery ssh://geryk@wizery.com/pub/wl1271.git
5711 git checkout --track -b wizery-suspend_android wizery/suspend_android
5712 git format-patch -o patches/r3m1rc5 master
5713 commit c498a81a911e5f857020abdce63fd0d5c729a21f
5715 --- Build 10 based on build 9 {{{
5719 0020 wl12xx Support routing FW logs to the host
5720 0021 wl12xx Allow disabling the bus FW Logger
5722 0024 Add support for Low Power DRPw
5724 0027 Temporary revert Change claiming of the SDIO
5725 0033 Add claim patch
5727 Changed STA fw to 7.1.4.50.63
5735 Add support for Low Power DRPw
5737 STA fw to 7.1.4.50.63
5746 0020 wl12xx Support routing FW logs to the host
5747 0021 wl12xx Allow disabling the bus FW Logger
5749 Changed STA fw to 7.1.4.50.73
5759 Add support for Low Power DRPw
5761 0020 wl12xx Support routing FW logs to the host
5762 0021 wl12xx Allow disabling the bus FW Logger
5764 Change STA fw to 7.1.4.50.73
5773 Changed STA fw to 7.1.4.50.73
5784 0024 Add support for Low Power DRPw
5786 0027 Temporary revert Change claiming of the SDIO
5787 0033 Add claim patch
5789 Changed STA fw to 7.1.4.50.73_S
5797 5.2.27 5.2.30 5.2.32
5824 2011-06-21 Found problem at testing setup. Retest of b9 gives pass on all
5826 The build 9 released as final.
5833 Added wl12xx Stop BA session (missed in b9)
5835 Changed STA fw to 7.1.5.50.74
5841 2011-06-30 The build 16 is the release. All tests passed.
5844 079. wl18xx - Change frag_threshold to be configurable {{{
5846 To make Tx frag threshold configurable from debugfs
5848 The parameter fragmentation threshold defines for fw how to fragment packets.
5850 The default value is IEEE80211_MAX_FRAG_THRESHOLD, which is
5851 2352 (include/linux/ieee80211.h)
5854 wl1271_acx_frag_threshold()
5859 2011-06-29 Patch sent
5861 080. ti-utils - update firmware and create new branch for r4 {{{
5863 Update fw binaries n INI files to 7.1.5.50.74
5865 Create new branch for R4:
5866 git push origin origin:refs/heads/r4-master
5867 git checkout --track -b r4-master origin/r4-master
5868 git push origin r4-master
5870 Updated firmware for R4 to 7.3.1.0.66 and INI files according.
5873 081. Native Linux on Blaze boot from NFS {{{
5875 Native Linux based wl12xx-2011-06-27
5879 Apply patches from ./patches/blaze/v3.0-rc4
5880 0001-Revert-mfd-Add-omap-usbhs-runtime-PM-support.patch
5881 0002-Fix-omap44xx-i2c-fix.patch
5882 patches/blaze/v3.0-rc4/0003-omap-blaze-add-mmc5-wl1283-device-support.patch
5886 setenv ethaddr '08:00:28:01:55:51'
5887 setenv loadaddr 0x80000000
5888 setenv bootargs 'console=ttyO2,115200n8 mem=512M noinitrd root=/dev/nfs rw nfsroot=172.16.1.11:/opt/rootfs/blaze,tcp,rsize=4096,wsize=4096 ip=172.16.1.7:172.16.1.254::255.255.255.0::eth0:down'
5889 setenv mmcboot 'mmcinit 0; fatload mmc 0 ${loadaddr} uImage; bootm ${loadaddr}'
5890 setenv bootfile 'blaze/uImage'
5891 setenv netboot 'tftp ${loadaddr} ${bootfile}; bootm ${loadaddr}'
5892 setenv bootcmd 'run netboot'
5894 Use kernel config .config-v3.0-rc4-blaze
5898 082. Calibration - To move from MCP to NVS (Sharp) {{{
5900 Create procedure to move calibrated NVS from MCP to NVS
5902 Got NVS file from Sharp created on MCP based on muRata radio INI file.
5903 ~/ti/support/sharp/nvs1273_0021E87268AE.bin - calibrarted NVS from MCP
5904 ~/ti/support/sharp/muRata_NVS_INI_110705.zip - the muRata's INI file
5907 ./calibrator set upd_nvs <path to ini> <path to nvs>
5908 The NVS parameter can point to MCP NVS file (shorter).
5915 The firmware crash with TxCont command when 3rd parameter (Size of data field
5916 in MPDU) is > 1800. Works fine till 1750.
5918 2011-07-11 Sent email to Ilan Z.
5919 Decided that is low priority.
5923 The power parameter of TxTone command doesn't influences the output.
5924 Also found bugs with same problem: 78376, 58310
5926 2011-07-11 Sent email to Yaki
5927 According to Yaki, Known issue, wont fix.
5929 085. Rename go.sh to wl12xx-tool.sh {{{
5931 There are number of features added to it:
5932 1. Ability to set MAC address in NVS
5933 2. Rework to run under Android with busybox
5934 3. Fix resetting of dynamic debug
5935 4. Start using modprobe
5937 All those changes currently placed in branch r4-master
5939 088. Support NVS ver 2.1 {{{
5941 The NVS ver 2.1 designed for different TxBip sequence.
5942 There is need for new command (TEST_CMD_SET_NVS_VERSION) before the TxBip. Also
5943 the NVS version in the NVS file should be 2.1
5945 Porblem: the command TEST_CMD_SET_NVS_VERSION value depends on arch (127|8x)
5946 Need new way to find which chip arch from user space.
5947 Solution: patch to export chip.id from sysfs
5948 (/sys/devices/platform/wl1271/chip_id)
5949 Getting HW version and FW version from ioctl {{{
5953 |-> cmd = ETHTOOL_GDRVINFO
5954 |-> send_ioctl SIOCETHTOOL and gets drvinfo.regdump_len
5955 |-> cmd = ETHTOOL_GREGSa and len = drvinfo.regdump_len
5956 |-> send_ioctl SIOCETHTOOL
5959 ethtool_get_drvinfo() (net/core/ethtool.c)
5960 |-> calls device ops->get_drvinfo which fills struct ethtool_drvinfo info
5961 | cfg80211_get_drvinfo() (net/wireless/ethtool.c)
5962 | copy fw_version,driver name, kernel ver, fw version n bus info from
5963 | wiphy to struct ethtool_drvinfo
5965 |-> calls device ops->get_regs_len and returns to user info.regdump_len
5966 cfg80211_get_regs_len() (net/wireless/ethtool.c) which always returns 0
5968 ethtool_get_regs() (net/core/ethtool.c)
5969 |-> copy from user struct ethtool_regs regs
5970 |-> ethtool_get_regs() (net/core/ethtool.c) get register length
5971 |-> cfg80211_get_regs() (net/wireless/ethtool.c)
5972 allocate mem for registers according to length given by user or
5973 by cfg80211_get_regs()
5976 in PLT mode misses to copy hw_version from wiphy to struct ethtool_regs
5979 2011-07-14 Sent 2 patches
5980 0001-wl12xx-Fix-for-PG-version-and-sysfs-files.patch
5981 0002-wl12xx-Export-chip-id-to-sysfs.patch
5983 Got comment from Kalle Valo that there is ioctl (from ethtool) which
5984 brings HW version to userspace already
5986 Sent answer that ioctl is heavy broken...
5988 Kalle sent fix for ethtool datapath. Send again my 1st patch with additional
5989 fix - to copy chip id in wipht in PLT mode
5990 Sent new patch instead of previous 2:
5991 0001-wl12xx-fixes-for-hw_pg_ver-and-chip-id-reporting.patch
5992 2011-08-01 Sent patch to ti-utils, 1 patch to Eliad's wl12xx and 1 patch
5993 to Ido for Android kernel
5996 089. Use WL12XX_TUNE n WL12XX_TUNE for tx_cont and tune_channel {{{
5998 from Dinesh: repeated call for tx_cont causes firmware crash.
6000 Solution: Update HowtoProduction doc to mandatory use of tx_stop after each
6002 Also add use of WL12XX_TUNE n WL12XX_TUNE for tx_cont and tune_channel
6004 2011-08-11 Upstreamed to r4-master
6007 Change NVS filename {{{
6009 To change NVS file name from wl1271-nvs.bin to wl127x-nvs.bin and
6012 Solution: Patch to the driver, change of ti-utils to be able to use new
6015 git commit -a -m "Change NVS filename to wl[7|8]x-nvs.bin"
6016 git format-patch -s -1 -o ../patches/ti-utils/ --subject-prefix="PATCH"
6017 ../../wl12xx/scripts/checkpatch.pl ../patches/ti-utils/0001-Change-NVS-filename-to-wl-7-8-x-nvs.bin.patch
6019 2011-08-15 Upstream calibrator changes. Sent driver patch to local ml
6022 0xx. Bug 95319 - get list of candidates for roaming {{{
6023 previous Bug 88549 - Howto get list of candidates {{{
6025 wpa_cli -p /var/run/wpa_supplicant -iwlan0 bgscan print
6027 git send-email --suppress-cc=self --suppress-cc=sob --annotate --from "Gery Kahn <geryk@ti.com>" --to "<hostap@lists.shmoo.com>" --cc "Jouni Malinen <j@w1.fi>" ../../patches/hostap/roaming_2011-03-03/0001-bgscan-Update-the-initial-value-of-time-interval-for.patch
6029 2011-03-06 sent to mcs ml
6030 0001-Add-command-to-wpa_cli-to-print-roam-candidates.patch
6032 hostap@lists.shmoo.com
6036 Prepare internal v2:
6037 Introduce new bgscan operation list_candidates()
6041 Add wpa_cli command for list of roaming candidates
6046 wpa_cli -p /var/run/wpa_supplicant -iwlan0 list_candidates
6048 git commit -a -m "Add wpa_cli command to show roaming candidates"
6049 git format-patch -o ../patches/hostap/print_candidates/ -1 --subject-prefix="PATCH" -s
6050 ../../wl12xx/scripts/checkpatch.pl ../patches/hostap/print_candidates/0001-Add-wpa_cli-command-to-show-roaming-candidates.patch
6053 2011-07-26 Sent new patch to internal ml
6054 0001-bgscan_learn-Provide-roaming-candidate-list-with-cli.patch
6056 2011-07-27 Seems not good. The bgscan functionality should be encaosulated
6057 in bgscan code. Rework, to introduce new function list_candidates()
6060 2011-07-28 Sent 2 patches with re-work to local ml and hostap ml
6061 0000-cover-letter.patch
6062 0001-New-bgscan-operation-for-list-of-candidates.patch
6063 0002-Add-wpa_cli-command-for-list-of-roaming-candidates.patch
6065 2011-08-01 After email from Sam Lefler, rewrite the patch
6067 2011-08-04 New patch sent localy.
6069 * Copyright (c) 2011, Texas Instruments
6070 * ssid.h - Remove line
6071 wpa_dbg(wpa_s, MSG_INFO, "No RSN_IE");
6072 - Change MSG_INFO to MSG_DEBUG
6074 2011-08-07 Sent patch to hostap ml v2
6078 0xx. Set RSSI event to type LEVEL at first {{{
6080 wl1271_irq() (main.c) - from fw
6081 |-> wl1271_event_handle()
6082 |-> wl1271_event_process() (event.c)
6083 |-> wl1271_event_rssi_trigger()
6085 wl1271_op_bss_info_changed() == .bss_info_changed (struct ieee80211_ops)
6086 |-> wl1271_bss_info_changed_sta()
6087 |-> wl1271_acx_rssi_snr_trigger() (acx.c)
6089 git commit -a -m "Set rssi event to type level only once"
6090 git format-patch -o ./patches/rssi_event/ -1 -s --subject-prefix="PATCH v3"
6091 ./scripts/checkpatch.pl patches/rssi_event/0001-Set-rssi-event-to-type-level-only-once.patch
6092 git send-email --suppress-cc=self --suppress-cc=sob --annotate --from "Gery Kahn <geryk@ti.com>" --to "<mcs-mac80211@list.ti.com>" --cc "Luciano Coelho <coelho@ti.com>" patches/rssi_event/0001-Set-rssi-event-to-type-level-only-once.patch
6094 2011-08-09 Sent internal patch
6095 2011-08-10 Sent internal patch v2
6096 2011-08-11 Sent internal v3 - Simplify logic y sending the rssi_type as
6097 argumentto wl12xx_acx_rssi_snr_trigger()
6098 2011-08-14 Sent internal v4 - Init the rssi_* at *_alloc_hw() and
6099 *_op_remove_interface(); add comments; add WARN_ON on fail of trigger
6103 0xx. Remove driver in PLT mode {{{
6107 root@blazik:~# ./wl12xx-tool.sh -b 7
6108 ------------ ------------
6110 ---===<<<((( WELCOME )))>>>===---
6112 ------------ ------------
6114 +++ Mount the debugfs on /sys/kernel/debug
6115 +++ Reload mac80211 framework
6116 [ 98.035095] cfg80211: Calling CRDA to update world regulatory domain
6117 +++ Load wl12xx driver
6118 [ 103.625671] cfg80211: World regulatory domain updated:
6119 [ 103.631103] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
6120 [ 103.639923] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
6121 [ 103.648254] cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
6122 [ 103.656616] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
6123 [ 103.664947] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
6124 [ 103.673278] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
6125 [ 106.050201] wl1271_sdio mmc2:0001:2: wlan0: Features changed: 0x00004800 -> 0x00004000
6126 [ 106.062622] wl1271: loaded
6127 root@blazik:~# [ 135.532501] wl1271: power up
6128 [ 136.463470] wl1271: firmware booted in PLT mode (PLT 7.3.0.0.77)
6129 [ 3446.048797] wl1271: power down
6131 [ 3446.052154] =====================================
6132 [ 3446.058654] [ BUG: bad unlock balance detected! ]
6133 [ 3446.063598] -------------------------------------
6134 [ 3446.068511] rmmod/1206 is trying to release lock (&wl->mutex) at:
6135 [ 3446.075012] [<bf0aa48c>] __wl1271_plt_stop+0x64/0xa0 [wl12xx]
6136 [ 3446.081024] but there are no more locks to release!
6138 [ 3446.086151] other info that might help us debug this:
6139 [ 3446.093017] 2 locks held by rmmod/1206:
6140 [ 3446.097045] #0: (&__lockdep_no_validate__){+.+.+.}, at: [<c0283ee8>] driver_detach+0x68/0xb4
6141 [ 3446.106109] #1: (&__lockdep_no_validate__){+.+.+.}, at: [<c0283ef8>] driver_detach+0x78/0xb4
6143 [ 3446.115173] stack backtrace:
6144 [ 3446.119781] [<c0055028>] (unwind_backtrace+0x0/0x120) from [<c00b450c>] (print_unlock_inbalance_bug+0x98/0xc8)
6145 [ 3446.130310] [<c00b450c>] (print_unlock_inbalance_bug+0x98/0xc8) from [<c00b6398>] (lock_release+0x1c4/0x1f8)
6146 [ 3446.140624] [<c00b6398>] (lock_release+0x1c4/0x1f8) from [<c03eaf04>] (__mutex_unlock_slowpath+0xe8/0x160)
6147 [ 3446.150817] [<c03eaf04>] (__mutex_unlock_slowpath+0xe8/0x160) from [<bf0aa48c>] (__wl1271_plt_stop+0x64/0xa0 [wl12xx])
6148 [ 3446.162109] [<bf0aa48c>] (__wl1271_plt_stop+0x64/0xa0 [wl12xx]) from [<bf0ac400>] (wl1271_unregister_hw+0x18/0x38 [wl12xx])
6149 [ 3446.173858] [<bf0ac400>] (wl1271_unregister_hw+0x18/0x38 [wl12xx]) from [<bf0e55b8>] (wl1271_remove+0x30/0x70 [wl12xx_sdio])
6150 [ 3446.185638] [<bf0e55b8>] (wl1271_remove+0x30/0x70 [wl12xx_sdio]) from [<c0321ccc>] (sdio_bus_remove+0x40/0x124)
6151 [ 3446.196258] [<c0321ccc>] (sdio_bus_remove+0x40/0x124) from [<c0283e34>] (__device_release_driver+0x84/0xd0)
6152 [ 3446.206512] [<c0283e34>] (__device_release_driver+0x84/0xd0) from [<c0283f0c>] (driver_detach+0x8c/0xb4)
6153 [ 3446.216461] [<c0283f0c>] (driver_detach+0x8c/0xb4) from [<c02830d0>] (bus_remove_driver+0xb4/0xe4)
6154 [ 3446.225891] [<c02830d0>] (bus_remove_driver+0xb4/0xe4) from [<c00bdd50>] (sys_delete_module+0x1d8/0x250)
6155 [ 3446.235839] [<c00bdd50>] (sys_delete_module+0x1d8/0x250) from [<c004e740>] (ret_fast_syscall+0x0/0x3c)
6160 Change wl1271_unregister_hw() to
6162 if (wl->state == WL1271_STATE_PLT) {
6163 mutex_lock(&wl->mutex);
6164 __wl1271_plt_stop(wl);
6165 mutex_unlock(&wl->mutex);
6168 2011-08-15 Sent patch to internal ml
6171 Power on the device to read chip id {{{
6174 2011-08-15 Sent RFC to internal ml
6176 git commit -a -m "Power on the device on probe"
6177 git format-patch -o ./patches/power_on/ -1 -s --subject-prefix="RFC"
6178 ./scripts/checkpatch.pl patches/power_on/0001-Power-on-the-device-on-probe.patch
6182 ieee80211_authenticate()
6183 |-> ieee80211_disassoc_only() - set diassoc w/o sending pkt
6186 .assoc = ieee80211_assoc() (struct cfg80211_ops)
6187 |_> ieee80211_mgd_assoc() (net/mac80211/mlme.c)
6188 |_> ieee80211_add_work()
6189 |_> ieee80211_queue_work()
6191 ieee80211_associate()
6192 |-> ieee80211_send_assoc()
6197 08nov2010 2011-07-06
6201 Roaming is reconnecting to another AP with the same ESS and the same
6205 The bgscan is wpa_supplicant feature to execute scanning to ...
6206 The parametes of bgscan algorithm are provided by configuration.
6208 The bgscan initialized while wpa_supplicant gets association event
6209 (wpa_supplicant_event_assoc()), based on parameters from wpa_supplicant
6210 config file. It deinitialized if disassociation event arrives.
6212 There is bgscan update, while wpa_supplicant event EVENT_SIGNAL_CHANGE. The
6213 event informs if the RSSI above the threshold.
6214 If signal is below the threshold set the system to do scanning with shorter
6215 interval. If last scan happened less then 1 sec before do immediate scan.
6216 If signal is above the threshold set the system to do scanning with longer
6219 | below | above | A. Set interval to short and if was scanned more
6220 ---------------------| then 1 sec before, immediate scan
6221 short| C | B | B. Set interval to long
6222 ---------------------|
6223 long | A | | C. If was scanned more then 10 sec before,
6224 ---------------------/ immediate scan
6226 It initiates scanning every timeout, which value depends on signal strength.
6229 Current (15dec2010) there are 2 types of bgscan algos: simple and learn.
6230 Only 1 kind of bgscan can be used, based on wpa_supplicant configuration.
6231 The default hyst for both algos is 4.
6233 Simple (bgscan_simple)
6234 Has 3 parameters: short time interval, signal threshold, and long time interval
6235 (from conf file: simple:30:-45:300).
6236 While signal strength is below the threshold - to do scanning with short time
6237 interval. While signal strength is above the threshold - to do scanning with
6240 Learn (bgscan_learn)
6241 Has 4 parameters: short time interval, signal threshold, long time interval
6248 Initialization of bgscan happened while the state of wpa_supplicant changed
6251 wpa_supplicant_set_state() (wpa_supplicant/wpa_supplicant.c)
6253 wpa_supplicant_start_bgscan()
6254 |-? wpa_s->current_ssid->bgscan
6256 In opposite, the deinitialization of bgscan happened while the state of
6257 wpa_supplicant changed from WPA_COMPLETED to another.
6259 wpa_supplicant_set_state() (wpa_supplicant/wpa_supplicant.c)
6261 wpa_supplicant_stop_bgscan()
6264 The init step calls for ini func of bgscan module. Which modules to use defined
6265 in config file parameter named bgscan.
6266 Desribing of bgscan_learn module.
6268 Get configuration parameters - short n long interval, signal threshold.
6269 Load previously collected list of candidates.
6270 Collect supported freqs.
6271 Set timeout with handler
6273 --- Init of bgscan at association (init)
6276 process_event() (hostap/src/drivers/driver_nl80211.c)
6277 |-? mlme_event() - if NL80211_CMD_ASSOCIATE
6278 | |-> mlme_event_assoc()
6279 | |-> wpa_supplicant_event() - on event EVENT_ASSOC
6280 | |-> wpa_supplicant_event_assoc() (hostap/wpa_supplicant/events.c)
6281 | |-> wpa_supplicant_set_state() on WPA_COMPLETED
6282 | | (wpa_supplicant/wpa_supplicant.c)
6283 | |-> bgscan_learn_deinit()
6284 | |-> bgscan_learn_init()
6285 | |-> .signal_monitor = nl80211_signal_monitor()
6286 | | (src/drivers/driver_nl80211.c)
6287 | |-> send to drv NL80211_CMD_SET_CQM
6288 |-? mlme_event_connect() - NL80211_CMD_CONNECT
6289 | |-> wpa_supplicant_event() - on event EVENT_ASSOC
6290 |-? mlme_event_join_ibss() - NL80211_CMD_JOIN_IBSS
6291 | |-> wpa_supplicant_event() - on event EVENT_ASSOC
6293 --- Scanning results (notify_scan):
6295 wpa_driver_nl80211_scan_timeout()
6297 process_event() NL80211_CMD_NEW_SCAN_RESULTS or NL80211_CMD_SCAN_ABORTED
6298 |-> send_scan_event()
6300 |-> wpa_supplicant_event(EVENT_SCAN_RESULTS)
6301 | |-> mlme_event_assoc()
6302 | |-> wpa_supplicant_event() - on event EVENT_SCAN_RESULTS
6303 | (hostap/wpa_supplicant/events.c)
6304 | |-> wpa_supplicant_event_scan_results()
6305 | |-> _wpa_supplicant_event_scan_results()
6306 | |-> wpa_supplicant_notify_scanning()
6307 | |-> wpa_supplicant_get_scan_results()
6308 | | |-> wpa_drv_get_scan_results2()
6309 | | |-> wpa_bss_update_start()
6310 | | |-> wpa_bss_update_scan_res()
6311 | | | Add or update bss list entry with scan res info
6312 | | |_> wpa_bss_update_end()
6313 | |-> bgscan_notify_scan()
6315 | |-> wpa_supplicant_pick_network()
6316 | | select 1st bss from known network which
6317 | | |-> wpa_supplicant_select_bss()
6318 | | | |-> wpa_scan_res_match()
6319 | | | | find most prior network for scanned bss
6320 | | | |_> wpa_bss_get()
6321 | | | find bss from bss list by ssid, bssid
6322 | |-> wpa_supplicant_need_to_roam()
6323 | | if connected AP not in scan_res => roam to selected bss
6324 | | if selected bss is the configured one => roam to it
6325 | | compare selected bss vs connected and roam
6326 | start |-> wpa_supplicant_connect() (events.c)
6327 | | |-> wpa_supplicant_associate()
6328 | | |-> sme_authenticate()
6330 | |-> wpa_supplicant_rsn_preauth_scan_results()
6332 --- Signal change (notify_signal_change)
6334 process_event() (src/drivers/driver_nl80211.c) on NL80211_CMD_NOTIFY_CQM
6335 |-> nl80211_cqm_event()
6336 |-> wpa_supplicant_event() EVENT_SIGNAL_CHANGE (wpa_supplicant/events.c)
6337 |-> bgscan_notify_signal_change()
6338 |-? if short==long or signal_thld==0 return
6339 |-> depends on signal change, reset timer to short or long interval
6341 --- Beacon loss - N/A
6344 Started by calling wpa_supplicant_connect()
6345 |-> wpa_supplicant_associate()
6346 |-> sme_authenticate() (wpa_supplicant/sme.c)
6347 |-> wpa_drv_authenticate()
6348 |-> wpa_driver_nl80211_authenticate()
6351 wpa_supplicant_event(EVENT_AUTH)
6352 |-> sme_event_auth( )
6355 |-> wpa_drv_associate()
6356 |-> wpa_driver_nl80211_associate()
6359 --- wpa_supplicant eloops
6361 eloop_cancel_timeout()
6363 eloop_register_timeout()
6368 The bgscan can be used if wpa_supplicant compiled with the options
6372 --- Usage n configuration {{{
6373 The wpa_supplicant.conf prms:
6374 bgscan=<module>:<module param>
6376 bgscan="simple:30:-45:300"
6378 bgscan="learn:30:-45:300:/etc/bgscan_learn.txt"
6380 wpa_cli -p /var/run/wpa_supplicant -iwlan0 scan_results
6383 --- Load drv, fw, app {{{
6386 wl1271_op_add_interface()
6387 |-> wl1271_hw_init()
6389 |-> wl1271_acx_rssi_snr_avg_weights()
6390 | ACX_RSSI_SNR_WEIGHTS - rssi beacon, rssi data, snr beacon, snr data
6393 WriteInfoEle() (infoele.c)
6394 |-> RoamingTriggersSetTriggerWeights() (roaming_trigger.c)
6401 mac80211_config_ops = {
6402 .assoc = ieee80211_assoc() (net/mac80211/cfg.c)
6403 ieee80211_mgd_assoc() (net/mac80211/mlme.c)
6404 ieee80211_assoc_done()
6405 |-> ieee80211_assoc_success()
6406 |-> ieee80211_set_associated()
6407 |-> ieee80211_bss_info_change_notify() - BSS_CHANGED_CQM
6408 |-> drv_bss_info_changed()
6409 |-> bss_info_changed = wl1271_op_bss_info_changed()
6410 | (drivers/net/wireless/wl12xx/main.c)
6412 | |-> wl1271_acx_rssi_snr_trigger()
6413 | (drivers/net/wireless/wl12xx/acx.c)
6414 | idx=0, dir=bidi, pacing
6415 | metric=rssi_bcn, type=edge
6418 process_event() (hostap/src/drivers/driver_nl80211.c)
6419 |-? mlme_event() - if NL80211_CMD_ASSOCIATE
6420 | |-> mlme_event_assoc()
6421 | |-> wpa_supplicant_event() - on event EVENT_ASSOC
6422 | |-> wpa_supplicant_event_assoc() (hostap/wpa_supplicant/events.c)
6423 | |-> bgscan_learn_deinit()
6424 | |-> bgscan_learn_init()
6425 | |-> .signal_monitor = nl80211_signal_monitor()
6426 | | (src/drivers/driver_nl80211.c)
6427 | |-> send to drv NL80211_CMD_SET_CQM
6428 |-? mlme_event_connect() - NL80211_CMD_CONNECT
6429 | |-> wpa_supplicant_event() - on event EVENT_ASSOC
6430 |-? mlme_event_join_ibss() - NL80211_CMD_JOIN_IBSS
6431 | |-> wpa_supplicant_event() - on event EVENT_ASSOC
6433 DRV: see configuration mac802.11 layer
6436 there is struct RssiSnrTriggerCfg_t updated by cmd ACX_RSSI_SNR_TRIGGER.
6437 The cmd can set a rule (up to 8) for fw. Fields of struct:
6439 pacing - delay (0-60000ms) between triggers
6440 metric - Look for Beacon|Data whre RSSI|SNR - obly 1 option
6441 type - edge (one time) or level (every time)
6442 direction - low, high, bidi
6443 hystersis - range (0-255dB) around thold
6444 index - rule nbr (0-7)
6445 enable - activate the rule (1-act,2-dis)
6449 --- Configuration {{{
6451 Set RSSI thold n hyst from iw (iw dev xxx cqm rssi <thold|off> [hyst]):
6452 (4exam - (set thold -90 +-2) - iw wlan0 cqm rssi -90 2
6453 cqm - connection quality monitor
6455 send NL80211_CMD_SET_CQM
6457 iw_cqm_rssi() (iw/cqm.c)
6460 struct genl_ops nl80211_ops[] (net/wireless/nl80211.c)
6461 .cmd = NL80211_CMD_SET_CQM,
6462 .doit = nl80211_set_cqm
6464 |-> nl80211_set_cqm_rssi()
6465 |-> ieee80211_set_cqm_rssi_config() == set_cqm_rssi_config
6466 | (net/mac80211/cfg.c)
6467 |-? ieee80211_bss_info_change_notify() - if not assoc
6468 | (net/mac80211/main.c)
6469 | | called w/ BSS_CHANGED_CQM
6471 |_> drv_bss_info_changed() (net/mac80211/driver-ops.h)
6472 wl12xx : |-> bss_info_changed() == wl1271_op_bss_info_changed()
6473 | (drivers/net/wireless/wl12xx/main.c)
6474 |-> wl1271_acx_rssi_snr_trigger()
6475 | (drivers/net/wireless/wl12xx/acx.c)
6476 | idx=0, dir=bidi, pacing
6477 | metric=rssi_bcn, type=edge
6480 wpa_supplicant_deauthenticate() (wpa_supplicant/wpa_supplicant.c)
6481 sme_event_assoc_reject() (wpa_supplicant/sme.c)
6482 sme_event_disassoc()
6483 |-> wpa_drv_deauthenticate()
6484 wpa_driver_nl80211_ops =
6485 .deauthenticate = wpa_driver_nl80211_deauthenticate()
6486 |-> wpa_driver_nl80211_mlme()
6487 | (...,NL80211_CMD_DEAUTHENTICATE,...)
6489 nl80211_deauthenticate
6490 cfg80211_mlme_deauth()
6491 __cfg80211_mlme_deauth()
6495 Driver gets event (BSS_LOSE_EVENT_ID) from fw and
6497 FW: After missinig nbr of beacons (configurable threshold) from AP, set timer
6498 (configured by drv at assoc). Send prob-req w PS disabled. If timeout and no
6499 resp, event BSS_LOSE_EVENT_ID to drv.
6502 (cfg)driver cfg the fw by cmd (ACX_CONN_MONIT_PARAMS) w 2 params thold n
6504 It does cfg at boot (wl1271_plt_init()|wl1271_op_add_interface()) w disable
6505 values (0xffffffff). Also if associated status changed. If become disassoc,
6506 cfg w disable params or if become assoc cfg w thold=10 and timeout=100.
6507 (run)Gets event BSS_LOSE_EVENT_ID and does connection loss flow (send multicast
6512 TSFOutOfSyncSendProbeReq()
6514 Set BSS Loss, TSF sync params:
6515 SetConnectionMonitoringParams()
6518 wl1271_op_add_interface()
6520 wl1271_op_bss_info_changed() wl1271_plt_init() wl1271_hw_init()
6521 |-> wl1271_acx_conn_monit_params()
6522 |-> wl1271_cmd_configure(..., ACX_CONN_MONIT_PARAMS,...)
6528 Roaming: SUT sends unnecessary Null Data packets while roaming to another AP
6530 Measure trace for roaming datapath
6533 first you need to unset CONFIG_OMAP_32K_TIMER in your .config (otherwise the timer is not accurate enough) then, install trace-cmd (not entirely necessary, but it's much easier to use) then this is what I was using to trace some functions (those in -l "") while pinging:
6534 trace-cmd record -p function_graph -l "ieee80211_subif_start_xmit" -l "wl1271_tx_work" -l "wl1271_tx_complete" -l "ieee80211_tx_status" -o ~/trace.dat ping 192.168.0.1 -c 1 -s 1432 ; trace-cmd report
6536 wl1271_cmd_role_enable
6537 wl1271_cmd_role_disable
6538 wl1271_cmd_role_start_dev
6539 wl1271_cmd_role_stop_dev
6540 wl1271_cmd_role_start_sta
6541 wl1271_cmd_role_stop_sta
6543 trace-cmd record -p function_graph -l "wl1271_cmd_role_enable" -l "wl1271_cmd_role_disable" -l "wl1271_cmd_role_start_dev" -l "wl1271_cmd_role_stop_dev" -l "wl1271_cmd_role_start_sta" -l "wl1271_cmd_role_stop_sta" -o /tmp/trace.dat
6548 Before sent BSSLoss event fw sends 10 prob/req to disconnected AP and >200
6549 NullData pkts to the AP.
6554 iw wlan0 connect abcd11
6555 Switch radio off on the connected AP.
6558 1 ProbReq to the AP + 9 retries
6559 1 NullData to the Ap + >200 retries
6560 1 Action to the AP + 9 retries
6563 The ProbeReqs send because of timeout period
6568 currBss_registerBssLossEvent() (stad/src/Sta_Management/currBss.c)
6569 |-> currBSS_BssLossThresholdCrossed()
6570 |-> EvHandlerSendEvent() - call to userspace
6571 |_> currBSS_reportRoamingEvent()
6572 |_> sme_Restart() (stad/src/Connection_Managment/sme.c)
6573 |_> sme_SmEvent( SME_SM_EVENT_DISCONNECT, )
6581 d wl12xx: fixes for hw_pg_ver and chip id reporting
6582 2011-07-18 sent upstream. applied.
6584 hostap: Get roaming candidates from cli
6585 2011-07-28 sent upstream
6587 r4 wl12xx: force to fetch firmware after change mode
6588 2011-07-20 sent internal, accepted in wizery2 3cc9eeee9
6593 1. Support new FEMs: SKW and RFMD Dual
6594 2. Change `echo -e' in `printf' in go.sh
6595 4. Support NVS version 2.1 ( as you said only for RFMD support)
6598 1. Add CONFIG_WPS2 to wpa_supplicabt for R4
6599 2. Add hostapd.conf and change ap_test.sh
6601 apt-get install rootstock
6602 https://wiki.ubuntu.com/ARM/RootfsFromScratch
6603 apt-get remove --purge network-manager
6605 sudo rootstock -f panda4me -l nlcp --serial ttyO2 --imagesize 500M
6606 sudo rootstock -f panda4me -l nlcp -p nlcp --serial ttyO2 --imagesize 1G --dist maverick
6607 sudo rootstock --fqdn omap --imagesize 2G --dist maverick --serial ttyO2 --login ubuntu --password temppwd --seed btrfs-tools,devmem2,i2c-tools,nano,pastebinit,uboot-envtools,uboot-mkimage,usbutils,wget,wireless-tools,wpasupplicant --script fixup.sh --components "main universe multiverse" --kernel-image http://rcn-ee.net/deb/maverick/v2.6.38-rc7-d3/linux-image-2.6.38-rc7-d3_1.0maverick_armel.deb
6611 1. Change file path in drivers/misc/ti-st/st_kim.c
6614 1. DFS - read doc, sched meeting
6615 2. To keep running Nokia's testsuite.
6616 New guy is Tuukka Hursti (ext-tuukka.hursti@nokia.com). His manager is
6618 3. use of MAC address according to PG3+
6619 4. Check whether tx_compl_threshold needs to be different for each chip
6620 * The reference driver uses 4 for Trio and 3 for Quattro, but
6621 this is probably more dependent on the platform than on the chip
6625 1. 88513 - Sends probes before connecting to chosen AP Danil
6626 2. 88549 - Howto get list of candidates Galina
6627 3. 88548 - Unexpected behaviour of bgscan Galina
6628 3. Complete Low RSSI roaming solution for Alex to retest & prepare patch
6629 for submission (even use Luca time to review with him even if
6630 wpa_supplicant patch)
6631 4. Max Tx Retries Roaming trigger to be based on Low RSSI logic for roaming
6632 5. bug 86130 - Add get BGSCAN candidates
6633 6. 80617 - pre-auth for roaming
6635 8. roaming triggers: RSSI, Tx rertries
6637 a1. Check fail to reauth while roaming
6638 a2. check if triggered w/o bgscan
6639 a3. how to get RSSI high at the beginning
6640 a4. Which Signal dBm comes w/ RSSI event
6641 9. 85566 - Roaming: wrong Probe Requests after BSS loss
6649 Code flows n theory {{{
6651 Beacon loss event {{{
6653 wl1271_event_process() (event.c)
6655 |_> ieee80211_connection_loss() (net/mac80211/mlme.c)
6656 |-> ieee80211_beacon_connection_loss_work()
6657 |-> __ieee80211_connection_loss()
6658 |-> ieee80211_set_disassoc()
6659 |-> ieee80211_recalc_idle()
6660 |_> ieee80211_send_deauth_disassoc( IEEE80211_STYPE_DEAUTH, )
6661 |-> cfg80211_send_deauth() (net/wireless/mlme.c)
6662 | |-> __cfg80211_send_deauth()
6663 | |-> nl80211_send_deauth() (net/wireless/nl80211.c)
6664 | |-> nl80211_send_mlme_event
6665 | | send NL80211_CMD_DEAUTHENTICATE
6666 | |-> nl80211_deauthenticate()
6667 | |-> cfg80211_mlme_deauth()
6668 | | |-> __cfg80211_mlme_deauth()
6669 | |-> ieee80211_deauth()
6670 | |_> ieee80211_mgd_deauth()
6671 | (net/mac80211/mlme.c)
6672 | |-> ieee80211_set_disassoc
6673 |_> ieee80211_tx_skb()
6677 --- Scanning from wpa_supplicant {{{
6680 process_event() (hostap/src/drivers/driver_nl80211.c)
6681 NL80211_CMD_NEW_SCAN_RESULTS
6682 |-> eloop_cancel_timeout()
6683 |-> send_scan_event()
6684 |-> wpa_supplicant_event() (hostap/wpa_supplicant/events.c)
6685 | EVENT_SCAN_RESULTS
6686 | |-> wpa_supplicant_event_scan_results()
6687 | |-> _wpa_supplicant_event_scan_results()
6688 | | |-> wpa_supplicant_notify_scanning() - DBus API
6689 | | |-> wpa_supplicant_get_scan_results() (wpa_supplicant/scan.c)
6690 | | | |-> wpa_drv_get_scan_results2()
6691 | | | | |-> wpa_driver_nl80211_get_scan_results()
6692 | | | | | |-> nl80211_get_scan_results()
6693 | | | | | | NL80211_CMD_GET_SCAN
6694 | | | | | | |-> send_and_recv_msgs()
6695 | | | | | | | |-> send_and_recv()
6696 | | | | | | | | call w/ handler bss_info_handler
6697 | | | | | | | | where fill struct nl80211_bss_info_arg
6699 | | |_? if prev failed - wpa_supplicant_req_new_scan()
6700 | | |_? scan_res_handler() ???
6701 | | |-> wpas_notify_scan_results()
6702 | | |-> wpas_notify_scan_done() - DBus API
6703 | | |-> bgscan_notify_scan()
6704 | | |-> wpa_supplicant_rsn_preauth_scan_results()
6705 | | |-> wpa_supplicant_pick_network()
6706 | | |-? if new AP selected
6707 | | | |-> wpa_supplicant_need_to_roam
6708 | | | |-> wpa_supplicant_connect()
6709 | | | | |-> wpa_supplicant_associate()
6710 | | | | | (hostap/wpa_supplicant/wpa_supplicant.c)
6711 | | | | | |-> sme_authenticate()
6712 | | | | | | (hostap/wpa_supplicant/sme.c)
6714 --- Authentication from wpa_supplicant timeout {{{
6716 process_event() (hostap/src/drivers/driver_nl80211.c)
6717 | (NL80211_CMD_AUTHENTICATE)
6718 |-> mlme_event() (src/drivers/driver_nl80211.c)
6719 |-> mlme_timeout_event()
6720 | |_> wpa_supplicant_event() (wpa_supplicant/events.c)
6721 | (..., EVENT_AUTH_TIMED_OUT, ...)
6722 | |_> sme_event_auth_timed_out()
6723 | |_> wpas_connection_failed()
6724 | (wpa_supplicant/wpa_supplicant.c)
6726 | |_> wpa_supplicant_req_scan()
6728 --- Deauth from wpa_supplicant {{{
6730 wpa_supplicant_deauthenticate() (hostap/wpa_supplicant/wpa_supplicant.c)
6731 |-> wpa_drv_deauthenticate()
6732 | |-> wpa_driver_nl80211_deauthenticate()
6733 | | |-> wpa_driver_nl80211_mlme()
6734 | | | NL80211_CMD_DEAUTHENTICATE - send w/ callback
6735 | | | |-> send_and_recv_msgs()
6737 | |_> wpa_supplicant_clear_connection()
6740 |_> wpa_supplicant_clear_connection()
6742 driver gets NL80211_CMD_DEAUTHENTICATE
6743 nl80211_deauthenticate() (net/wireless/nl80211.c)
6744 |-> cfg80211_mlme_deauth() (net/wireless/mlme.c)
6745 |-> __cfg80211_mlme_deauth()
6746 |-> call ops->deauth = ieee80211_deauth() (net/mac/cfg.c)
6747 |-> ieee80211_mgd_deauth()
6748 |-> ieee80211_send_deauth_disassoc()
6749 |-> cfg80211_send_deauth()
6750 | |_> __cfg80211_send_deauth() (net/wireless/mlme.c)
6751 | |-> nl80211_send_deauth() (net/wireless/nl80211.c)
6752 | | |_> nl80211_send_mlme_event()
6753 | | NL80211_CMD_DEAUTHENTICATE
6754 | |-> __cfg80211_disconnected()
6755 | |-> nl80211_send_disconnected()
6756 | NL80211_CMD_DISCONNECT
6758 --- Compare PLT start to add interface {{{
6760 During normal add interface
6761 wl1271_op_add_interface() (main.c)
6763 |-> wl1271_chip_wakeup()
6765 |-> wl1271_hw_init()
6766 |-> wl1271_cmd_general_parms()
6767 |-> wl1271_cmd_radio_parms()
6768 |-> wl1271_chip_specific_init()
6769 |-> wl1271_sta_hw_init() (init.c)
6770 | |-> wl1271_cmd_ext_radio_parms()
6771 | |-> wl1271_acx_config_ps() ??? cfg PS ie
6772 | |-> wl1271_sta_init_templates_config()
6773 | |-> wl1271_acx_group_address_tbl() ??? cfg multicast addr
6774 | |-> wl1271_acx_conn_monit_params()
6775 | |-> wl1271_init_beacon_filter() ??? here dis beacon fltr
6776 | |-> wl1271_acx_fm_coex()
6778 | |-> wl1271_init_pta() - Bluetooth WLAN coex
6779 | |-> wl1271_init_beacon_broadcast() ???
6780 | |-> wl1271_acx_sleep_auth() - cfg PS to ELP
6781 | |-> wl1271_acx_rssi_snr_avg_weights() ???
6782 | |-> wl1271_acx_sta_rate_policies() ???
6783 | |_> wl1271_acx_sta_mem_cfg() ??? Need
6784 |-> wl1271_acx_init_mem_config()
6785 |-> wl1271_init_rx_config() ???
6786 |-> wl1271_init_phy_config()
6787 |-> wl1271_acx_dco_itrim_params()
6788 |-> wl1271_acx_tx_config_options() ???
6789 |-> wl1271_acx_init_rx_interrupt() ???
6790 |-> wl1271_init_energy_detection()
6791 |-> wl1271_acx_frag_threshold()
6792 |-> wl1271_acx_ac_cfg() - default TID/AC cfg
6793 |-> wl1271_acx_tid_cfg() - default TID/AC cfg
6794 |-> wl1271_cmd_data_path()
6795 |-> wl1271_acx_feature_cfg() ???
6796 |-> wl1271_acx_pm_config() - cfg PM
6797 |-> wl1271_sta_hw_init_post_mem() ???
6798 |_> wl1271_set_ba_policies
6801 wl1271_tm_cmd_set_plt_mode() (testmode.c)
6802 |-> wl1271_plt_start()
6804 |-> wl1271_chip_wakeup()
6806 |-> wl1271_plt_init()
6807 1 |-> wl1271_cmd_general_parms()
6808 2 |-> wl1271_cmd_radio_parms()
6809 3 |-> wl1271_cmd_ext_radio_parms()
6810 4 |-> ACX_CONFIG_PS ???
6811 5 |-> wl1271_sta_init_templates_config()
6812 6 |-> DOT11_GROUP_ADDRESS_TBL ???
6813 15 |-> wl1271_acx_init_mem_config()
6814 17 |-> wl1271_init_phy_config()
6815 18 |-> wl1271_acx_dco_itrim_params()
6816 7 |-> wl1271_acx_conn_monit_params()
6817 8 |-> ACX_BEACON_FILTER_OPT, ACX_BEACON_FILTER_TABLE ???
6818 9 |-> wl1271_init_pta() - Bluetooth WLAN coex
6819 10 |-> ACX_BCN_DTIM_OPTIONS ???
6820 12 |-> ACX_RSSI_SNR_WEIGHTS ???
6821 13 |-> ACX_RATE_POLICY ???
6822 14 |-> ACX_MEM_CFG !!!
6824 21 |-> wl1271_init_energy_detection()
6825 22 |-> wl1271_acx_frag_threshold()
6826 23 |-> wl1271_acx_ac_cfg() - default TID/AC cfg
6827 24 |-> wl1271_acx_tid_cfg() - default TID/AC cfg
6828 25 |-> wl1271_cmd_data_path()
6829 11 |-> wl1271_acx_sleep_auth()
6830 27 |_> wl1271_acx_pm_config()
6832 How wl12xx loads radio parameters {{{
6834 wl1271_op_add_interface()
6835 |-> wl1271_hw_init()
6836 |-> wl1271_cmd_general_parms() - TEST_CMD_INI_FILE_GENERAL_PARAM
6837 | send struct wl1271_ini_general_params = 9 + 48
6838 | send struct wl1271_ini_general_params_wl128x = 13 + 64
6839 | and nbr of dbg params = 20
6841 |-> wl1271_cmd_radio_parms() - TEST_CMD_INI_FILE_RADIO_PARAM
6842 | send struct wl1271_radio_parms_cmd
6843 | struct wl1271_ini_band_params_2 = 17
6844 | struct wl1271_ini_fem_params_2 =
6845 | struct wl1271_ini_band_params_5
6846 | struct wl1271_ini_fem_params_5
6847 | send struct wl1271_radio_parms_cmd_wl128x
6848 | struct wl1271_ini_band_params_2 = 30
6849 | struct wl1271_ini_fem_params_2 =
6850 | struct wl1271_ini_band_params_5
6851 | struct wl1271_ini_fem_params_5
6852 | fem_vendor_and_options
6853 |-> wl1271_sta_hw_init()
6854 Q |-> wl1271_cmd_ext_radio_parms() - TEST_CMD_INI_FILE_RF_EXTENDED_PARAM
6855 | send struct wl1271_ext_radio_parms_cmd = 28
6856 | tx_per_channel_power_compensation_2 = 7
6857 | tx_per_channel_power_compensation_5 = 18
6860 --- Rx streaming {{{
6862 The feature supposed to increase tp during TCP Tx in PS-legacy.
6865 Before entering in PS mode, to set firmware with TID and time interval.
6867 when in ps mode, and @timeout msecs have passed since last tx, it issues
6868 trigger packets (QoS-null/PS-Poll according to the ac type) in const
6869 intervals (in order to reduce rx time).
6871 power save triggered by BT-Coex event {{{
6872 wl1271_event_process()
6873 |-? SOFT_GEMINI_SENSE_EVENT_ID
6874 |-? sense value is 1 - ieee80211_disable_dyn_ps()
6875 |-? otherwise - ieee80211_enable_dyn_ps()
6880 --- The DummyJoin - wl1271_dummy_join()
6882 wl1271_sta_handle_idle()
6883 |-? if not idle => inc session counter and
6886 wl1271_bss_info_changed_sta()
6887 |-> if status changed to disassociated and
6890 wl1271_dummy_join() (main.c)
6891 |-> wl1271_configure_filters() - cfg Rx config to accept
6892 |-> set bssid to 0b:ad:de:ad:be:ef
6893 |-> wl1271_cmd_join()
6895 --- The Join - wl1271_join()
6897 wl1271_op_config() (main.c)
6899 wl1271_join() (main.c)
6902 wl1271_bss_info_changed_sta()
6904 if changed BSS_CHANGED_BSSID,
6906 --- The command join - wl1271_cmd_join()
6910 |-> wl1271_cmd_join()
6912 struct ieee80211_ops wl1271_ops =
6913 .bss_info_changed = wl1271_op_bss_info_changed()
6914 |-> wl1271_bss_info_changed_sta()
6915 |-? if ibss and BSS_CHANGED_BEACON_INT or BSS_CHANGED_BEACON
6916 | BSS_CHANGED_BEACON_ENABLED
6918 |-> wl1271_cmd_join()
6925 from net/mac80211/ieee80211_i.h in struct ieee80211_local field
6926 unsigned int uapsd_max_sp_len;
6927 The init for uapsd_max_sp_len to IEEE80211_DEFAULT_MAX_SP_LEN (0) happened in
6928 ieee80211_alloc_hw() (net/mac80211/main.c)
6930 wpa_s bgscan learn {{{
6932 --- bgscan Initialization
6935 --- bgscan notification
6936 process_event() event NL80211_CMD_NOTIFY_CQM
6937 |-> nl80211_cqm_event() (hostap/src/drivers/driver_nl80211.c)
6938 |-> wpa_supplicant_event() event EVENT_SIGNAL_CHANGE
6939 |-> bgscan_notify_signal_change()
6942 --- bgscan scan results
6943 ieee80211_sta_scan_timer() (hostap/wpa_supplicant/mlme.c)
6944 |-> wpa_supplicant_event() event EVENT_SCAN_RESULTS
6945 |-> wpa_supplicant_event_scan_results()
6946 |-> _wpa_supplicant_event_scan_results()
6947 |-> bgscan_notify_scan()
6950 bgscan_notify_beacon_loss()
6955 wpas_connection_failed()
6956 |-> wpa_blacklist_add()
6959 wpa_supplicant_req_auth_timeout() - sched timeout for athen
6960 |-> eloop_cancel_timeout()
6961 |_> eloop_register_timeout() -
6962 |_? wpa_supplicant_timeout() -
6963 |-> wpa_blacklist_add()
6967 [R4] Loading PLT firmware {{{
6970 |-> wl1271_chip_wakeup()
6972 | |-> wl1271_fetch_firmware()
6975 |-> wl1271_plt_init()
6983 http://mcsdocs.isr.asp.ti.com:81/WLAN/index.php?dir=MCS_WLAN_Docs/Architecture/WiLink%20Products/Feature%20Specs/&file=Scan%20FS.doc
6988 There are 2 types of scan: active & passive.
6989 Active while STA sends probes, passive by listening for beacons.
6991 Today (11nov2010) fw accepts 2 types of scanning:
6992 periodic - can be active/passive, when disconnected, does scan after time
6994 one shot scan - when connected (split scan, means during traffic - some scan, some traffic), can be
7009 drivers/net/wireless/wl12xx/scan.c
7011 |-> wl1271_scan_stm()
7012 | |-> wl1271_scan_send()
7014 wl1271_scan_complete_work()
7017 CommandParser() (commands.c)
7018 |-> CMD_CONNECTION_SCAN_CFG (commands.c)
7019 | |-> ConnectionScan_ConfigParams() (process_connection_scan.c)
7020 |-> CMD_START_PERIODIC_SCAN (commands.c)
7021 | |-> PeriodicScan_Start() (periodic_scan.c)
7022 |-> CMD_STOP_PERIODIC_SCAN (commands.c)
7023 | |-> PeriodicScan_Stop()
7026 ConnectionScanCB_t connectionScanCB;
7030 CMD_CONNECTION_SCAN_SSID_CFG
7034 * uint32 cycleIntervals[CONN_SCAN_MAX_NUM_OF_CYCLES_INTERVALS]; /* Intervals between each scan cycle */
7035 * int8 rssiThreshold; /* RSSI threshold */
7036 * int8 snrThreshold; /* SNR threshold */
7037 * uint8 maxNumOfCycles; /* number of cycles to run */
7038 * uint8 reportThreshold; /* Report after N results are received */
7039 * uint8 terminateOnReport; /* Terminate after report */
7040 * uint8 resultsTag; /* Tag for filtered scan results */
7041 * ScanBssType_e bssType; /* BSS type to filter (0 - Infra, 1 - IBSS, 2 - Any) */
7042 ScanSsidFilterType_e ssidFilterType; /* SSID filter Type (0 - Any, 1 - specified in command, 2 - use SSID list) */
7043 uint8 ssidLength; /* SSID Length (if ssidType is specified in command) */
7044 uint8 ssid[32]; /* SSID (if ssidType is specified in command) */
7045 * uint8 numProbe; /* Number of probe requests to transmit per (hidden) SSID per channel */
7047 uint8 numOfPassive[CONN_SCAN_MAX_BAND];
7048 uint8 numOfActive[CONN_SCAN_MAX_BAND];
7051 ConnScanChannelInfo_t channelList[CONN_SCAN_MAX_CHANNELS_ALL_BANDS];
7052 } ConnScanParameters_t;
7059 (22:54:24) Luca256: yes, I've been using the sched scan while disconnected for quite some time now
7060 (22:56:04) Luca256: one other req that would be very important to have, is wildcard SSID support
7061 (22:56:10) Luca256: or prefix SSID
7062 (22:56:22) Luca256: now we can set up 8 SSIDs for auto-scanning and filtering
7063 (22:56:58) Luca256: but in some cases, like hotspot or in the future p2p, we may want to scan all SSIDs that start with a certain string
7064 (22:57:26) Luca256: like "HOTSPOT-" would find "HOTSPOT-1", "HOTSPOT-2", "HOTSPOT-3" and so on
7065 (22:57:51) Luca256: also, it would probably be good to split the filtering from the active scanning
7066 (22:58:21) Luca256: afair, if you want to filter, the firmware will send probe_reqs to those specific SSIDs
7067 (22:58:34) Luca256: they are two different things and should be separated
7068 (22:59:28) Luca256: anyways, I'll send an email stating all these findings I have already and then we can discuss further
7069 (23:06:05) gxk1: and who said "I don't really have any requirements". Cool. So u want schedule passive scan?
7070 (23:07:17) gxk1: this way we can implement wildcard SSID scan support
7071 (23:35:50) gxk1: It was pleasure to talk to you. Hope everything is Ok.
7072 (23:44:18) Luca256: hehe, yeah, I didn't have any reqs, but when I start talking about it, a lot comes to my mind :)
7073 (23:44:54) Luca256: and, about the "passive scan", it's not necessarily a passive scan... it can be broadcast active scans too
7079 Using EEPROM, AutoTxBip and MAC from ROM {{{
7084 The new command for calibrator to create NVS from EEPROM
7086 1. To unload testmode for runtime in future
7090 Driver reads DieID from NVS and check it against DID from chip.
7091 If different, just send message that have to calibrate.
7092 The DID exists in every PG.
7096 To update NVS file with MAC address from ROM in PLT.
7099 Support investigation on Panda {{{
7102 1. Can you check the SDIO configuration – SDIO clock, bus width, is DMA enabled?
7103 cat /sys/kernel/debug/mmc0/ios
7105 2. I couldn’t find the interrupt pacing value in the ini file; what’s the default value?
7110 http://tegradeveloper.nvidia.com/tegra/downloads
7113 git://nv-tegra.nvidia.com/linux-2.6.git
7117 Bluetooth script delivery to linux-firmware {{{
7120 Create repository in github named linux-firmware
7123 git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git
7125 git remote add gxk git@github.com:gxk/linux-firmware.git
7129 +Driver: TI_ST - Texas Instruments bluetooth driver
7131 +File: TIInit_7.2.31.bts
7133 +Licence: See LICENCE.ti-connectivity for details.
7135 + TIInit_7.2.31.bts version 7.2.31
7137 + In order to use that files copy them to target FS at /lib/firmware/.
7138 Add TI bluetooth fw : ti-connectivity/TIInit_7.2.31.bts
7139 git add ti-connectivity/TIInit_7.2.31.bts
7140 git commit -a -m "linux-firmware: Initial release for Bluetooth init script"
7141 git format-patch -s --binary -o ../ti -1 --subject-prefix="PATCH"
7142 git send-email --suppress-cc=self --suppress-cc=sob --annotate --from "Gery Kahn <geryk@ti.com>" --to "<mcs-mac80211@list.ti.com>" ../ti/0001-linux-firmware-Initial-release-for-Bluetooth-firmwar.patch
7144 2011-02-27 Sent to mcs ml
7145 2011-02-28 Sent to mcs ml - change description, fix patch to not remove
7146 somebody else's file.
7148 2011-03-02 Sent to...
7149 git send-email --suppress-cc=self --suppress-cc=sob --annotate --from "Gery Kahn <geryk@ti.com>" --to "David Woodhouse <dwmw2@infradead.org>" --to "<linux-wireless@vger.kernel.org>" --to "linux-bluetooth@vger.kernel.org" --cc "Luciano Coelho <coelho@ti.com>" ../0001-linux-firmware-Initial-release-for-Bluetooth-init-sc.patch
7151 As a result need to update:
7152 <krnl>/drivers/misc/ti-st/st_kim.c
7155 Build Panda Android {{{
7156 2011-01-26 2011-02-09
7158 git remote add rowboat git://gitorious.org/rowboat/frameworks-base.git
7161 git cherry-pick 24117ce3ae32c40798d2d9bda80675814f76730d
7162 git cherry-pick ac82681dffdba3ad0b93ed3558365bac1dacbcd1
7163 git cherry-pick b0f60c6
7164 git cherry-pick afee303
7165 git cherry-pick 64d7c77
7167 - install java 1.5 on ubuntu 10.04
7168 Add to /etc/apt/sources.list
7169 deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse
7170 deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse
7172 sudo apt-get install sun-java5-jdk
7173 sudo update-java-alternatives -l
7174 sudo update-java-alternatives -s java-1.5.0-sun
7177 cp -Rfp device/ti/blaze/buildspec.mk.default buildspec.mk
7183 cp -Rfp $MYDROID/out/target/product/blaze/root/* .
7184 cp -Rfp $MYDROID/out/target/product/blaze/system/ .
7185 cp -Rfp $MYDROID/out/target/product/blaze/data/ .
7186 cp -Rfp $MYDROID/device/ti/blaze/init.omap4sdp.rc init.rc
7188 cp -Rfp $KERNEL_DIR/drivers/staging/ti-st/bt_drv.ko .
7189 cp -Rfp $KERNEL_DIR/drivers/staging/ti-st/st_drv.ko .
7190 #Bluetooth init script - should be taken from https://gforge.ti.com/gf/project/wilink_drivers/frs/?action=FrsReleaseBrowse&frs_package_id=179
7191 cp -Rfp ~/bluetooth/initscripts/TIInit_7.2.31.bts system/etc/firmware
7193 Build Gingerbread on 32bit machine {{{
7195 form http://blog.csdn.net/stevenliyong/archive/2010/12/28/6103382.aspx
7197 I tried and it works http://forum.xda-developers.com/showpost.php?p=9998281&postcount=12
7199 A quick and brutal fix is to:
7200 1) go to gingerbread/prebuilt/linux-x86/toolchain
7201 2) rename arm-eabi-4.4.3 to arm-eabi-4.4.3.old
7202 3) link arm-eabi-4.4.0 to arm-eabi-4.4.3
7205 cd gingerbread/prebuilt/linux-x86/toolchain
7206 mv arm-eabi-4.4.3 to arm-eabi-4.4.3.old
7207 ln -s arm-eabi-4.4.0 arm-eabi-4.4.3
7209 One more fix needed to build on x86 is to change
7212 # This forces a 64-bit build for Java6
7213 LOCAL_CFLAGS += -m64
7214 LOCAL_LDFLAGS += -m64
7216 in the Android.mk files of the gingerbread/external/clearsilver/ directory
7217 and subdirectories to:
7220 # This forces a 64-bit build for Java6
7221 LOCAL_CFLAGS += -m32
7222 LOCAL_LDFLAGS += -m32
7224 This should be fixed in a more elegant way based on the host arch.
7226 Started to compile now....................................Done.
7229 Patch attached to fix build on 32 bit hosts.
7236 diff --git a/core/main.mk b/core/main.mk
7237 index 6113e52..72e32c8 100644
7240 @@ -72,7 +72,8 @@ $(info Checking build tools versions...)
7242 ifeq ($(BUILD_OS),linux)
7243 build_arch := $(shell uname -m)
7244 -ifneq (64,$(findstring 64,$(build_arch)))
7245 +#ifneq (64,$(findstring 64,$(build_arch)))
7246 +ifneq (i686,$(findstring i686,$(build_arch)))
7247 $(warning ************************************************************)
7248 $(warning You are attempting to build on a 32-bit system.)
7249 $(warning Only 64-bit build environments are supported beyond froyo/2.2.)
7251 project external/clearsilver/
7252 diff --git a/cgi/Android.mk b/cgi/Android.mk
7253 index 21c534b..2c7bf36 100644
7254 --- a/cgi/Android.mk
7255 +++ b/cgi/Android.mk
7256 @@ -13,8 +13,12 @@ LOCAL_C_INCLUDES := $(LOCAL_PATH)/..
7257 LOCAL_CFLAGS := -fPIC
7259 # This forces a 64-bit build for Java6
7260 -LOCAL_CFLAGS += -m64
7261 -LOCAL_LDFLAGS += -m64
7262 +#LOCAL_CFLAGS += -m64
7263 +#LOCAL_LDFLAGS += -m64
7265 +# This forces a 64-bit build for Java6
7266 +LOCAL_CFLAGS += -m32
7267 +LOCAL_LDFLAGS += -m32
7269 LOCAL_NO_DEFAULT_COMPILER_FLAGS := true
7271 diff --git a/cs/Android.mk b/cs/Android.mk
7272 index 9f0e30a..4807b3f 100644
7275 @@ -9,8 +9,10 @@ LOCAL_C_INCLUDES := $(LOCAL_PATH)/..
7276 LOCAL_CFLAGS := -fPIC
7278 # This forces a 64-bit build for Java6
7279 -LOCAL_CFLAGS += -m64
7280 -LOCAL_LDFLAGS += -m64
7281 +#LOCAL_CFLAGS += -m64
7282 +#LOCAL_LDFLAGS += -m64
7283 +LOCAL_CFLAGS += -m32
7284 +LOCAL_LDFLAGS += -m32
7286 LOCAL_NO_DEFAULT_COMPILER_FLAGS := true
7288 diff --git a/java-jni/Android.mk b/java-jni/Android.mk
7289 index 21b4fd1..cc6d3ce 100644
7290 --- a/java-jni/Android.mk
7291 +++ b/java-jni/Android.mk
7292 @@ -34,8 +34,10 @@ LOCAL_C_INCLUDES := \
7293 LOCAL_CFLAGS += -fPIC
7295 # This forces a 64-bit build for Java6
7296 -LOCAL_CFLAGS += -m64
7297 -LOCAL_LDFLAGS += -m64
7298 +#LOCAL_CFLAGS += -m64
7299 +#LOCAL_LDFLAGS += -m64
7300 +LOCAL_CFLAGS += -m32
7301 +LOCAL_LDFLAGS += -m32
7303 LOCAL_NO_DEFAULT_COMPILER_FLAGS := true
7305 diff --git a/util/Android.mk b/util/Android.mk
7306 index 386f379..fc27bbf 100644
7307 --- a/util/Android.mk
7308 +++ b/util/Android.mk
7309 @@ -18,8 +18,12 @@ LOCAL_C_INCLUDES := $(LOCAL_PATH)/..
7310 LOCAL_CFLAGS := -fPIC
7312 # This forces a 64-bit build for Java6
7313 -LOCAL_CFLAGS += -m64
7314 -LOCAL_LDFLAGS += -m64
7315 +#LOCAL_CFLAGS += -m64
7316 +#LOCAL_LDFLAGS += -m64
7318 +# This forces a 64-bit build for Java6
7319 +LOCAL_CFLAGS += -m32
7320 +LOCAL_LDFLAGS += -m32
7322 LOCAL_NO_DEFAULT_COMPILER_FLAGS := true
7326 opensles/libopensles/IAndroidEffect.c => opensles/libopensles/IAndroidEffect.cpp
7329 diff --git a/opensles/libopensles/Android.mk b/opensles/libopensles/
7331 index 64e9b6f..f965d3e 100644
7332 --- a/opensles/libopensles/Android.mk
7333 +++ b/opensles/libopensles/Android.mk
7335 @@ -56,7 +56,7 @@ LOCAL_SRC_FILES:= \
7338 IAndroidConfiguration.c \
7339 - IAndroidEffect.c \
7340 + IAndroidEffect.cpp \
7341 IAndroidEffectCapabilities.c \
7342 IAndroidEffectSend.c \
7348 http://omapedia.org/wiki/Power_Management_Domain_Wiki
7351 git remote add master-omap git://git.omapzoom.org/kernel/omap.git
7352 git fetch master-omap
7354 git remote add master-omap-2.6 git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git
7355 git fetch master-omap-2.6
7356 git pull master-omap-2.6 pm
7358 from git://gitorious.org/linux-omap-nm-sr/linux-omap-sr.git
7361 git remote add omap-nm-sr git://gitorious.org/linux-omap-nm-sr/linux-omap-sr.git
7362 git fetch omap-nm-sr
7363 git pull omap-nm-sr dvfs
7365 change in arch/arm/mach-omap2/opp3xxx_data.c
7368 OMAP3630-GP rev 2, CPU-OPP2 L3-200MHz
7371 OMAP3630/3730-GP ES2.0, CPU-OPP2, L3-165MHz, Max CPU Clock 1 Ghz
7373 OPP - Operating Performance Point layer
7374 ABB - Adaptive Body Biasing
7377 /sys/devices/system/cpu/cpu0/cpufreq/
7379 Power Save with BT Coex {{{
7381 Juuso's patch to disable PS - f90754c15f47063671aea55268a9dd6a37b51492
7382 http://wireless.kernel.org/en/users/Documentation/dynamic-power-save
7384 To set different modes of ELP:
7385 short - awake every beacon, long - awake every DTIM,
7386 auto - to PS when idle, active - no PS
7394 There 2 types of BT connection: synchronous and asynch. The sync conn used in
7395 BT voice while send pkts in determined time intervals.
7396 The async connection used in BT audio, when possible to change time when send
7399 Power Consumption enhancement {{{
7401 http://wireless.kernel.org/en/users/Documentation/Power-consumption
7405 Build 3.0 for Panda {{{
7409 git remote add wless-test git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
7410 git checkout --track -b wless-test-master wless-test/master
7412 git revert 7e6502d577106fb5b202bbaac64c5f1b065e6daa
7413 patch -p1 < patches/panda/v3.0-rc4/Omap44xx-i2c-fix.patch
7415 make ARCH=arm omap2plus_defconfig
7418 Boot Panda from u-boot tftp {{{
7421 git checkout git://git.denx.de/u-boot.git
7422 git reset --hard dc4970b299b1877f21f99ed4894f360ec955782b
7423 git am ./patches/panda/tftp_boot/*
7427 Add to include/configs/omap4_panda.h
7428 #define CONFIG_CMD_USB 1
7429 #define CONFIG_USB_STORAGE 1
7430 #define CONFIG_USB_HOST_ETHER 1
7431 #define CONFIG_USB_EHCI 1
7432 #define CONFIG_USB_EHCI_OMAP4 1
7433 #define CONFIG_USB_HOST 1
7434 #define CONFIG_USB_ETHER_SMSC95XX 1
7437 make omap4_panda_config
7442 Build ICS for Blaze {{{
7445 git remote add omapzoom git://git.omapzoom.org/kernel/omap.git
7447 git checkout --track -b omapzoom-p-android-omap-2.6.39 omapzoom/p-android-omap-2.6.39
7448 make -j8 blaze_defconfig
7452 Build GB for Blaze {{{
7457 git remote add omapzoom git://git.omapzoom.org/kernel/omap.git
7459 git checkout --track -b omapzoom-p-android-omap-2.6.35 omapzoom/p-android-omap-2.6.35
7460 git reset --hard c2573e171d3991810ebe7d933f5646eaaaf019c7
7464 Add support of wusb600n v2 for Ubuntu 10.04 {{{
7467 I have a WUSB600N v2 and it is working great for me. Here is all you have to do.
7469 Go here and download the RT3572USB driver
7470 http://www.ralinktech.com/support.php?s=2
7472 The file you download is called 2009_1222_RT3572_LinuxSTA_V2[1].3.0.0.tar.bz2
7473 expand it with the command
7474 "tar xjf 2009_1222_RT3572_LinuxSTA_V2[1].3.0.0.tar.bz2"
7475 open the file os/linux/config.mk and edit the following lines:
7476 Change HAS_WPA_SUPPLICANT=n
7477 to HAS_WPA_SUPPLICANT=y
7479 Change HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n
7480 to HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
7482 Next edit the file common/rtusb_dev_id.c and add the USB ID of the card to it.
7484 {USB_DEVICE(0x1737,0x0079)}, /* WUSB600Nv2 */
7490 reboot and your done.
7492 If you have added the USB device to any other drivers following other threads you will want to either remove that line and recompile those drivers OR black list those drivers. After doing the above this NIC is working great for me in Ubuntu 9.10 and getting N speeds.
7495 sudo ifconfig ra0 up
7496 sudo iwconfig ra0 mode monitor
7501 from http://wireless.kernel.org/en/developers/DFS
7502 Chat w Oz (22dec2010) {{{
7503 ok. good. so it will be good for you to pull in anyone from the architecture, like Yossi Peery so they can be in the details while you conduct the discussion for TI
7504 bottom line, good deal for you to be the one bringing the knowledge into TI
7506 and maybe we'll gain a lot of time due to that...
7511 Firmware interface {{{
7513 11nov2010 by Michal AlPeri
7515 packet ram exists frames, devided by mem blocks 256B in linked list
7517 host_slave_manager.c
7521 descriptors per each frame, placed at descr pool
7523 fw status structure, which is not statistics. has 4 cntrs of free mem blocks per access category
7525 cmd header 16B, 1st field is size, 2nd how much extra mem blocks needed for the frame
7527 host in charge of size of mem block list
7529 structure tx result for each send frame, send irq to drv while tx send.
7530 possible to config when to get irq - per nbr of
7533 fw sends irq when frame ready
7535 irq pacing - to config when to irq, by nbr of frames or blocks or time (same as Tx)
7537 Internal generated frames take mem blocks from other link list, which is not as common link list of Rx/Tx
7542 fw prepare buffer, send irq to drv. drv read event and send irq back to fw.
7543 while no irq from drv, prepare 2nd buffer. this is double buffer implementation.
7545 Send vector where each bit is type of event and super structure w/ data per event, drv reads in SDIO transaction whole data.
7548 drv wr cmd and sends irq
7550 cmd complete is just ...
7553 ----------------------------
7555 ----------------------------
7562 Setting MAC address {{{
7564 Need to set MAC addr sooner than after NVS load.
7566 There is option to read MAC from the chip right after power on.
7568 See email from Assaf Carmeli
7572 Prepare user utilities {{{
7578 http://www.kernel.org/pub/scm/libs/netlink/libnl.git
7579 git://git.kernel.org/pub/scm/libs/netlink/libnl.git
7581 http://www.kernel.org/pub/scm/libs/netlink/libnl-stable.git
7582 git://git.kernel.org/pub/scm/libs/netlink/libnl-stable.git
7585 ./configure --prefix=${NFSROOT} CC=arm-none-linux-gnueabi-gcc --host=arm-linux LD=arm-none-linux-gnueabi-ld
7586 make && make install
7589 git clone http://git.sipsolutions.net/iw.git
7591 export PKG_CONFIG_PATH=${NFSROOT}/lib/pkgconfig
7592 export PKG_CONFIG=pkg-config ??? no need 2011-03-16
7593 Not support libnl-2.1 - so
7594 mv ./lib/pkgconfig/libnl-2.1.pc ./lib/pkgconfig/libnl-2.0.pc
7595 make PREFIX=${NFSROOT}
7596 make install PREFIX=${NFSROOT}/usr
7599 untar openssl-1.0.0a
7600 export CROSS_COMPILE=
7601 ./Configure --openssldir=${NFSROOT} shared os/compiler:arm-none-linux-gnueabi-
7607 git clone git://w1.fi/srv/git/hostap.git
7610 cd hostap/wpa_supplicant
7613 CC=arm-none-linux-gnueabi-gcc
7614 CFLAGS += -I/work/zoom2/1273/include -DCONFIG_LIBNL20
7615 CPPFLAGS += -DCONFIG_LIBNL20
7616 LIBS += -L/work/zoom2/1273/lib -lnl-genl
7617 LIBS_p += -L/work/zoom2/1273/lib
7618 LIBDIR = /work/zoom2/1273/lib
7619 BINDIR = /work/zoom2/1273/usr/sbin
7620 CONFIG_DRIVER_WEXT=y
7621 CONFIG_DRIVER_NL80211=y
7627 git clone http://sourceforge.net/projects/iperf/
7628 http://sourceforge.net/projects/iperf/files/iperf-2.0.5.tar.gz/download
7630 export ac_cv_func_malloc_0_nonnull=yes
7631 ./configure --host=arm-none-linux-gnueabi CXX=arm-none-linux-gnueabi-g++ CC=arm-none-linux-gnueabi-gcc CFLAGS=-static CXXFLAGS=-static --prefix=/opt/rootfs/beagle/usr
7632 make CXX=arm-none-linux-gnueabi-g++ CC=arm-none-linux-gnueabi-gcc
7636 git clone git://git.sv.gnu.org/inetutils.git {{{
7638 remove `man' from SUBDIRS in Makefile.am
7640 ./configure --prefix=/work/zoom2/1273 --host=arm-none-linux-gnueabi CROSS_COMPILE=arm-none-linux-gnueabi- --disable-logger --disable-syslogd --disable-whois --disable-ifconfig --disable-hostname --with-path-procnet-dev=/proc/net/dev
7641 make && make install
7643 Create /work/zoom2/1273e/etc/inetd.conf as follows:
7644 echo stream tcp nowait root internal
7645 echo dgram udp wait root internal
7646 daytime stream tcp nowait root internal
7647 daytime dgram udp wait root internal
7648 time stream tcp nowait root internal
7649 time dgram udp wait root internal
7650 #ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd
7651 telnet stream tcp nowait root /libexec/telnetd telnetd --exec-login=/bin/login
7654 inetd /etc/inetd.conf &
7657 http://www.unixtop.org/
7662 ./configure --prefix=/work/zoom2/1273 --host=arm-none-linux-gnueabi CROSS_COMPILE=arm-none-linux-gnueabi-
7665 wireless-tools (iwconfig) {{{
7666 download http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html
7668 tar zxf wireless_tools.30.pre9.tar.gz
7669 pushd wireless_tools.30
7675 make PREFIX=${NFSROOT} CC=arm-none-linux-gnueabi-gcc AR=arm-none-linux-gnueabi-ar RANLIB=arm-none-linux-gnueabi-ranlib
7676 make PREFIX=${NFSROOT} CC=arm-none-linux-gnueabi-gcc AR=arm-none-linux-gnueabi-ar RANLIB=arm-none-linux-gnueabi-ranlib install
7680 from http://sourceforge.net/projects/gkernel/files/ethtool/
7682 untar ethtool-2.6.36
7683 configure --prefix=${NFSROOT} --host=arm-linux
7684 make && make install
7687 git clone git://git.sipsolutions.net/hwsim.git
7689 http://www.intellinuxwireless.org/repos/wifi-test.git
7692 git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git
7694 fix Makefile by changing
7695 INCLUDES = -I. -I$(prefix)/usr/local/include $(CONFIG_INCLUDES)
7697 export CROCC_COMPILE
7698 make prefix=${NFSROOT}
7699 make prefix=${NFSROOT} install
7704 -------------------------------------------------------------------------------
7705 ----------------------------------- iVirtus -----------------------------------
7706 -------------------------------------------------------------------------------
7708 01. Enable ethernet over USB (wristwatch) {{{
7711 Load module g_ether, which creates device usb0
7713 ifconfig usb0 10.0.0.3
7715 modprobe usbnet g_ether cdc_ether
7716 ifconfig usb0 10.0.0.5
7718 02. To set source management system {{{
7721 1. To purchase the computer
7725 4 disks x 500GB - Raid + hot spare + 4th for backups
7730 2. To install & configure the system
7731 Running ServerRaid (Ctrl+A) while booting
7732 Create array w/ 2 disks
7733 Push Ctrl+S to create hotspare, add 3rd disk to it
7736 3. Install & config Subversion & Trac
7737 yum install mysql mysql-devel mod_python python-setuptool
7738 download tarball from http://sourceforge.net/projects/mysql-python
7739 untar MySQL-python-1.2.3c1.tar.gz
7740 cd MySQL-python-1.2.3c1
7741 python setup.py build && python setup.py install
7742 yum install neon neon-devel python-devel swig
7743 --- install clearsilver
7744 Add Dag repositiry: http://dag.wieers.com
7745 rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
7746 yum install clearsilver python-clearsilver
7748 download from http://trac.edgewall.org/wiki/TracDownload
7749 untar Trac-0.11.5.tar.gz && cd Trac-0.11.5
7750 python ./setup.py install
7753 svnadmin create --fs-type fsfs /srv/svn/<project>
7755 trac-admin /srv/trac/<project> initenv
7756 Answer to all questions default, except path to repo which is
7758 chown -R apache.apache /srv/svn/first
7759 chown -R apache.apache /srv/trac/first
7760 Add to /etc/httpd/conf.d/subversion.conf follows:
7761 <Location /svn/<project>>
7763 SVNPath /srv/svn/<project>
7765 AuthName "<project> Repository"
7766 AuthzSVNAccessFile /srv/svn/svn-acl-conf
7767 AuthUserFile /srv/svn/<project>.htpasswd
7771 touch /srv/svn/<project>.htpasswd
7772 htpasswd -m /srv/svn/<project>.htpasswd <username>
7773 add to /srv/svn/svn-acl-conf follows:
7777 Add to /etc/httpd/conf.d/trac.conf follows:
7778 <Location /trac/<project>>
7779 SetHandler mod_python
7780 PythonHandler trac.web.modpython_frontend
7781 PythonOption TracEnv /srv/trac/<project>
7782 PythonOption TracUriRoot /trac/<project>
7784 <Location "/trac/<project>/login">
7787 AuthUserFile /srv/trac/<project>.htpasswd
7791 touch /srv/trac/<project>.htpasswd
7792 htpasswd -m /srv/trac/<project>.htpasswd <username>
7793 trac-admin /srv/trac/<project> permission add <username> TRAC_ADMIN
7794 service httpd restart
7796 http://192.168.1.61/svn/first
7797 http://192.168.1.61/trac/first
7800 03. BringUp tmx320dm365 {{{
7803 Install follows packages:
7805 mvl_5_0_demo_sys_setuplinux.bin - MontaVista toolchain
7806 14sep2009 - mvl_5_0_0801921_demo_sys_setuplinux.bin
7808 mvl_5_0_0_demo_lsp_setuplinux_02_10_00_14.bin - kernel source tree with the TI modifications (LSP - Linux Support Package)
7810 psp_02_10_00_14.bin - documentation and examples for the LSP (UBL, U-boot, NAND utils)
7811 xdctools_setuplinux_3_15_01_59.bin - XDC tools package
7813 dvsdk_dm365_setuplinux_2_10_01_18.bin - DVSDK itself
7814 LPTB-02.03.00.02-beta.bin - Linux Performance Test Bench
7815 TI-C6x-CGT-v6.0.21.1.bin
7817 sudo mkdir /opt./mv_pro_5.0
7818 chmod 777 /opt/apps/tmx320dm365/mvl_5_0_*
7819 pushd /opt/apps/tmx320dm65/
7820 sudo ./mvl_5_0_0801921_demo_sys_setuplinux.bin
7821 sudo ./mvl_5_0_0_demo_lsp_setuplinux_02_10_00_14.bin
7822 pushd /opt/mv_pro_5.0/
7823 sudo tar zxf ./mvltools5_0_0801921_update.tar.gz
7824 sudo tar zxf ./DaVinciLSP_02_10_00_14.tar.gz
7825 chmod 777 /opt/apps/tmx320dm365/dvsdk_dm365_setuplinux_2_10_01_18.bin
7826 chmod 777 /opt/apps/tmx320dm365/xdctools_setuplinux_3_15_01_59.bin
7827 cd /opt/apps/tmx320dm365
7828 ./dvsdk_dm365_setuplinux_2_10_01_18.bin
7829 ./xdctools_setuplinux_3_15_01_59.bin (change install directory to the previous dvsdk)
7831 sudo cp -r /opt/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le/target/* /opt/tmx320dm65/rootfs
7832 sudo chown -R gxk:gxk /opt/tmx320dm65/rootfs/*
7835 PATH="/opt/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le/bin:/opt/mv_pro_5.0/montavista/pro/bin:/opt/mv_pro_5.0/montavista/common/bin:$PATH"
7836 mkdir ~/ivirtus/tmx320dm65
7837 cp -r /opt/mv_pro_5.0/montavista/pro/devkit/lsp/ti-davinci/linux-2.6.18_pro500 ~/ivirtus/tmx320dm65
7838 pushd ivirtus/tmx320dm365/linux-2.6.18_pro500/
7839 make ARCH=arm CROSS_COMPILE=arm_v5t_le- davinci_dm365_defconfig
7840 make ARCH=arm CROSS_COMPILE=arm_v5t_le- checksetconfig
7841 make ARCH=arm CROSS_COMPILE=arm_v5t_le- uImage
7842 make ARCH=arm CROSS_COMPILE=arm_v5t_le- modules
7843 make ARCH=arm CROSS_COMPILE=arm_v5t_le- INSTALL_MOD_PATH=/opt/tmx320dm65/rootfs/ modules_install
7847 make && make install
7850 Under <dvsdk source>/PSP_02_10_00_14/bin/target-reduced-dm365.tar
7853 on host add to /etc/exports
7854 /opt/tmx320dm65 192.168.1.0/24(rw,no_root_squash,async,no_subtree_check)
7855 sudo /etc/init.d/nfs-kernel-server restart
7857 mount -o nolock,tcp 192.168.1.41:/opt/tmx320dm65 /mnt/usb/
7860 Under <dvsdk source>/PSP_02_10_00_14/board_utilities/u-boot
7862 Uboot message w/ NAND bad blocks: {{{
7863 NAND: NAND device: Manufacturer ID: 0x2c, Chip ID: 0xd3 (Micron NAND 1GiB 3,3V 8-bit)
7864 Bad block table not found for chip 0
7865 Bad block table not found for chip 0
7866 Bad block table written to 0x3ffe0000, version 0x01
7867 Bad block table written to 0x3ffc0000, version 0x01
7868 NAND device: Manufacturer ID: 0x2c, Chip ID: 0xd3 (Micron NAND 1GiB 3,3V 8-bit)
7869 Bad block table not found for chip 0
7870 Bad block table not found for chip 0
7871 Bad block table written to 0x3ffe0000, version 0x01
7872 Bad block table written to 0x3ffc0000, version 0x01
7876 04. Add MV kernel 2.6.18 for all prjs {{{
7878 Take kernel w/ new patch from TI for YAFFS (Yuri)
7879 Insert it to the subversion:
7880 svn import linux-2.6.18_pro500 http://192.168.1.61/first/vendors/kernel/linux-2.6.18_pro500 -m "Init MontaVista kernel src"
7882 How to work w/ solution:
7883 Set 2 env variables: IVIRTUS_PRJ_NAME, IVIRTUS_PRJ_SOURCE
7884 Checkout 2 directories:
7885 svn co http://192.168.1.61/first/vendors
7886 svn co http://192.168.1.61/first/ibuild
7887 Add to PATH full path to ibuild directory.
7888 Run ./ibuild/ibuild.sh
7891 05. To run kernel from TI's git {{{
7893 http://wiki.davincidsp.com/index.php/DaVinci_GIT_Linux_Kernel
7894 git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-davinci.git
7895 http://git.kernel.org/?p=linux/kernel/git/khilman/linux-davinci.git;a=summary
7898 git clone git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-davinci.git
7900 --- Prepare build env
7901 install toolchain from arm-2007q3-51-arm-none-linux-gnueabi.bin
7902 Add to PATH follows: /opt/codesourcery/bin
7904 2. To build the kernel
7907 make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- davinci_all_defconfig
7908 make make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage
7909 make make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- modules
7910 make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- INSTALL_MOD_PATH=/opt/dm365/rootfs modules_install
7913 06. Watch> project environment {{{
7916 Got 4 tarballs from Ilan:
7917 ffmpeg_ver1_5oct09.tar.gz
7918 ltib_ver1_5oct09.tar.gz
7919 wristwatchdrv_ver1_5oct09.tar.gz
7920 wristwatch_ver1_5oct09.tar.gz
7923 Untar the ltib_ver1_5oct09.tar.gz get dirs: bin, config, dist, doc and also
7927 07. Watch> Set main charger at early state {{{
7930 The charger can be set to work from battery. Currently done at application
7931 level, if USB pluged-in.
7932 Moved to the redboot in order to start charging at earlier.
7934 vibrate() from redboot/current/src/main.c
7937 08. Watch> sometimes the card doesn't startup {{{
7940 Results from jtag commands {{{
7949 TCK=1 TDI=0 TDO=1 TMS=0 TRES=1 TRST=1
7950 Supported JTAG speeds:
7951 - 48 MHz/n, (n>=4). => 12000kHz, 9600kHz, 8000kHz, ...
7954 The `hwinfo' command
7955 --------------------
7957 HWInfo[00] = Target power is enabled
7958 HWInfo[02] = 19mA (ITarget)
7959 HWInfo[03] = 25mA (ITargetPeak)
7960 HWInfo[04] = 25mA (ITargetPeakOperation)
7961 HWInfo[10] = 0ms (ITargetMaxTime0)
7962 HWInfo[11] = 0ms (ITargetMaxTime1)
7963 HWInfo[12] = 0ms (ITargetMaxTime2)
7968 Info: TotalIRLen = 8, IRPrint = 0x0011
7969 Info: CP15.0.0: 0x41069264: ARM, Architecure 5TEJ
7970 Info: CP15.0.1: 0x1D152152: ICache: 16kB (4*128*32), DCache: 16kB (4*128*32)
7971 Info: Cache type: Separate, Write-back, Format C (WT supported)
7972 PC: (R15) = 0000000C, CPSR = 800000D7 (ABORT mode, ARM FIQ dis. IRQ dis.)
7973 R0 = D1041C45, R1 = 00000E80, R2 = D1041C43, R3 = 00003FFC
7974 R4 = FFFFFFFE, R5 = 00000043, R6 = E1530000, R7 = 21A03000
7975 USR: R8 =E0844003, R9 =E1520004, R10=02811008, R11 =FFFFFFFF, R12 =00000002
7976 R13=D3424BB0, R14=5E145060
7977 FIQ: R8 =ABDA42E0, R9 =A36A9834, R10=B78E75CA, R11 =CEF9ED8E, R12 =F9E16B5E
7978 R13=6B78493B, R14=601FF18F, SPSR=00000010
7979 SVC: R13=FFFFFFFF, R14=0000C004, SPSR=00000010
7980 ABT: R13=5543133A, R14=1ECFA2FE, SPSR=800000F7
7981 IRQ: R13=6A59570A, R14=CDF4F7BF, SPSR=00000010
7982 UND: R13=280547C9, R14=20155180, SPSR=00000010
7991 TCK=1 TDI=0 TDO=1 TMS=0 TRES=1 TRST=1
7992 Supported JTAG speeds:
7993 - 48 MHz/n, (n>=4). => 12000kHz, 9600kHz, 8000kHz,
7996 The `hwinfo' command
7997 --------------------
7999 HWInfo[00] = Target power is enabled
8000 HWInfo[02] = 12mA (ITarget)
8001 HWInfo[03] = 32mA (ITargetPeak)
8002 HWInfo[04] = 32mA (ITargetPeakOperation)
8003 HWInfo[10] = 0ms (ITargetMaxTime0)
8004 HWInfo[11] = 0ms (ITargetMaxTime1)
8005 HWInfo[12] = 0ms (ITargetMaxTime2)
8012 WARNING: Target system has been power-cycled
8013 Info: TotalIRLen = 8, IRPrint = 0x0011
8014 Info: CP15.0.0: 0x41069264: ARM, Architecure 5TEJ
8015 Info: CP15.0.1: 0x1D152152: ICache: 16kB (4*128*32), DCache: 16kB (4*128*32)
8016 Info: Cache type: Separate, Write-back, Format C (WT supported)
8017 PC: (R15) = 0000000C, CPSR = 800000D7 (ABORT mode, ARM FIQ dis. IRQ dis.)
8018 R0 = FFFF4410, R1 = 00000E80, R2 = D1041C43, R3 = 00003FFC
8019 R4 = FFFFFFFF, R5 = 00004AD0, R6 = E1530000, R7 = 00000006
8020 USR: R8 =E0844003, R9 =E1520004, R10=02811008, R11 =FFFFFFFF, R12 =00000002
8021 R13=D3424BB4, R14=5E145060
8022 FIQ: R8 =EB9A42E0, R9 =A36A9834, R10=B78C25CA, R11 =CEF9ED8E, R12 =F9E16B4E
8023 R13=6978493B, R14=621FD18F, SPSR=00000010
8024 SVC: R13=FFFFFFFF, R14=0000C004, SPSR=00000010
8025 ABT: R13=55431312, R14=9ECFA2FC, SPSR=800000F7
8026 IRQ: R13=6A595F0A, R14=CDF4F3AF, SPSR=00000010
8027 UND: R13=91024D92, R14=20155180, SPSR=00000010
8033 from devs/spi/arm/mxc/current/src/mxc_spi.c
8034 mxc_pmic_init() - "PMIC ID: 0x0000089d [Rev: 3.5]"
8035 from hal/arm/mx27/ads/current/src/board_misc.c
8036 display_board_type() - "Board Type: EVB [rev A] (external UART doesn't work)"
8037 display_clock_src() - "Clock input: 26MHz"
8038 from devs/flash/arm/mxc/current/src/mxcflash_wrapper.c
8039 RedBoot_init(mxc_flash_print_info, RedBoot_INIT_LAST)
8040 |-> mxc_flash_print_info() - "Booting from [NAND flash]"
8043 09. Set env for Altair solution {{{
8045 download http://linux.omap.com/pub/toolchain/obsolete-gcc-3.3.2.tar.bz2
8046 download http://linux.omap.com/pub/kernel/osk/2.6.8-rc3_080804.tar.bz2
8048 sudo tar jxf obsolete-gcc-3.3.2.tar.bz2
8049 mkdir ~/ivirtus/cofdm/altair_prj
8050 cd ~/ivirtus/cofdm/altair_prj
8051 tar jxf 2.6.8-rc3_080804.tar.bz2
8052 export PATH=/usr/local/arm/3.3.2/bin:$PATH
8053 tar xf ../iVirtus_Release_0_1-05nov2009/AltLink.tar.gz
8054 export DRIVER_DEV_ROOT=/home/gxk/ivirtus/cofdm/altair_prj/
8055 export SYS_DEV_ROOT=/home/gxk/ivirtus/cofdm/altair_prj/
8056 At file Automation/Build/MakePlatform.mak change lines 12 n 13 to:
8057 export CROSS:=arm-linux-
8058 export KPATH:=/home/gxk/ivirtus/altair_prj/2.6.8-rc3/
8059 pushd Automation/Build
8060 (if Ubuntu: sudo ln -s /usr/bin/make /usr/bin/gmake)
8061 clear; make -f MakePlatform.mak PLATFORM=omap clean all
8064 cd ~/ivirtus/cofdm/altair_prj
8065 mkdir ./OS && cd ./OS
8066 tar zxf SDIO_AltLink.tar.gz
8069 10. Watch> Support syslogd {{{
8072 Add sysklogd project to subversion
8073 Update ibuild.sh to build sysklogd
8079 11. Watch> To forbid upgrade when battery in 43% capaciy {{{
8082 New parameter added to system.ini called noupgrade_percent w/ default value 43.
8084 The ioctl WRISTCMD_GET_CURRENT brings values like:
8090 12. Watch> Create battery status file when plugin USB {{{
8092 Create status.log with battery status percentage value
8094 13. Watch> To detect USB plugin while > 4V {{{
8096 Found that while voltage >4V the CCCVS
8098 Tests before changes {{{
8101 Reg | StUp w/o USB | plugin USB | plugout USB| StUp w/ USB | Reset w/ USB |
8102 -------------------|------------|------------|-------------|--------------|
8103 0 | 0x00000000 | 0x00808000 | 0x00808000 | 0x00000000 | 0x00000000 |
8104 1 | 0x00e1fff0 | 0x00E1FFF0 | 0x00E1FFF0 | 0x00000000 | 0x00000000 |
8105 2 | 0x0008D800 | 0x000FDC40 | 0x000ED040 | 0x00000000 | 0x00000000 |
8109 Reg | StUp w/o USB | plugin USB | plugout USB| StUp w/ USB | Reset w/ USB |
8110 -------------------|------------|------------|-------------|--------------|
8111 0 | 0x00000000 | 0x00808000 | 0x00000000 | 0x00000000 | 0x00000000 |
8112 1 | 0x00E1FFF0 | 0x00E1FFF0 | 0x00E1FFF0 | 0x00000000 | 0x00000000 |
8113 2 | 0x0008D800 | 0x000FDC40 | 0x000ED040 | 0x00000000 | 0x00000000 |
8117 Reg | StUp w/o USB | plugin USB | plugout USB| StUp w/ USB | Reset w/ USB |
8118 -------------------|------------|------------|-------------|--------------|
8119 0 | 0x00000000 | 0x00808000 | 0x00000000 | 0x00000000 | 0x00000000 |
8120 1 | 0x00E1FFF0 | 0x00E1FFF0 | 0x00E1FFF0 | 0x00000000 | 0x00000000 |
8121 2 | 0x0008D800 | 0x000FDC40 | 0x0008D800 | 0x00000000 | 0x00000000 |
8125 Reg | StUp w/o USB | plugin USB | plugout USB| StUp w/ USB | Reset w/ USB |
8126 -------------------|------------|------------|-------------|--------------|
8127 0 | 0x00000000 | 0x00808000 | 0x00000000 | 0x00000000 | 0x00000000 |
8128 1 | 0x00E1FFF0 | 0x00E1FFF0 | 0x00E1FFF0 | 0x00000000 | 0x00000000 |
8129 2 | 0x0008D800 | 0x000FDC40 | 0x0008D800 | 0x00000000 | 0x00000000 |
8133 | Reg 0 | Reg 1 |Reg 2 | |
8134 | intrr | intr m |intr sen| |
8135 ---------------------------------------
8140 ---------------------------------------
8143 6 |CHGDETI | |CHGDETS | 1 |
8145 ---------------------------------------
8148 10 |CCCVI | |CCCVS | 1 | !!!
8149 11 |CHGCURRI| |CHGCURRS| 1 |
8150 ---------------------------------------
8155 ---------------------------------------
8156 16 |USBI | |USB4V4S | 1 |
8157 17 | | |USB2V0S | 1 |
8158 18 | | |USB0V8S | 1 |
8159 19 |IDI | |IDFLOATS| 1 |
8160 ---------------------------------------
8164 23 |UDMI | |UDMS | 0 |
8166 Tests after change {{{
8170 Reg | StUp w/o USB | plugin USB | plugout USB| StUp w/ USB | Reset w/ USB |
8171 -------------------|------------|------------|-------------|--------------|
8172 0 | 0x00000000 | 0x00808000 | 0x00000000 | 0x00000000 | 0x00000000 |
8173 1 | 0x00e1fff0 | 0x00E1FFF0 | 0x00E1FFF0 | 0x00000000 | 0x00000000 |
8174 2 | 0x000ED040 | 0x000FDC40 | 0x000ED040 | 0x00000000 | 0x00000000 |
8178 Reg | StUp w/o USB | plugin USB | plugout USB| StUp w/ USB | Reset w/ USB |
8179 -------------------|------------|------------|-------------|--------------|
8180 0 | 0x00000000 | 0x00808000 | 0x00000000 | 0x00000000 | 0x00000000 |
8181 1 | 0x00E1FFF0 | 0x00E1FFF0 | 0x00E1FFF0 | 0x00000000 | 0x00000000 |
8182 2 | 0x0008D800 | 0x000FDC40 | 0x000ED040 | 0x00000000 | 0x00000000 |
8184 ---=== 3.5v - 41% - 480
8186 Reg | StUp w/o USB | plugin USB | plugout USB| StUp w/ USB | Reset w/ USB |
8187 -------------------|------------|------------|-------------|--------------|
8188 0 | 0x00000000 | 0x00808000 | 0x00000000 | 0x00000000 | 0x00000000 |
8189 1 | 0x00E1FFF0 | 0x00E1FFF0 | 0x00E1FFF0 | 0x00000000 | 0x00000000 |
8190 2 | 0x0008D800 | 0x000FDC40 | 0x0008D800 | 0x00000000 | 0x00000000 |
8192 ---=== 3.47v - 40% - 469 (version 1.17a may vibrate every 30sec and less)
8194 Reg | StUp w/o USB | plugin USB | plugout USB| StUp w/ USB | Reset w/ USB |
8195 -------------------|------------|------------|-------------|--------------|
8196 0 | 0x00000000 | 0x00808000 | 0x00000000 | 0x00000000 | 0x00000000 |
8197 1 | 0x00E1FFF0 | 0x00E1FFF0 | 0x00E1FFF0 | 0x00000000 | 0x00000000 |
8198 2 | 0x0008D800 | 0x000FDC40 | 0x0008D800 | 0x00000000 | 0x00000000 |
8203 14. Watch> USB detection procedure {{{
8206 USB detection testing {{{
8208 Start the target board w/o application
8209 and w/o USB pluggedin 0x000000 0xE0FFF0 0x0ED040 0x000001
8210 Plugin USB 0x808400 0xE0FFF0 0x0FDC40 0x000001
8211 Plugout USB 0x000800 0xE0FFF0 0x0ED440 0x000001
8212 0x000C00 0xE0FFF0 0x0ED040 0x000001
8214 and w/ USB pluggedin 0x808000 0xE0FFF0 0x0FDC40 0x000001
8215 Plugout USB 0x000C00 0xE0FFF0 0x0ED040 0x000001
8217 Start the target board w/ application
8218 and w/o USB pluggedin 0x000000 0xE1FFF0 0x0ED040 0x000000
8219 Plugin USB 0x808000 0xE1FFF0 0x0FDC40 0x000001
8220 Plugout USB 0x000000 0xE1FFF0 0x0ED040 0x000000
8222 and w/ USB pluggedin 0x808000 0xE1FFF0 0x0FDC40 0x000001
8223 Plugout USB 0x000000 0xE1FFF0 0x0ED440 0x000000
8224 0x000400 0xE1FFF0 0x0ED040 0x000000
8225 0x000000 0xE1FFF0 0x0ED040 0x000000
8228 Start the target board w/ application
8229 and w/o USB pluggedin 0x000000 0xE1FFF0 0x08D800 0x000001
8230 Plugin USB 0x808000 0xE1FFF0 0x0FDC40 0x000001
8231 Plugout USB 0x000400 0xE1FFF0 0x0ED040 0x000001
8232 0x000000 0xE1FFF0 0x0ED040 0x000001
8234 and w/ USB pluggedin
8238 Start the target board w/ application
8239 and w/o USB pluggedin 0x000000 0xE1FFF0 0x08D800
8240 Plugin USB 0x808000 0xE1FFF0 0x0FDC40
8241 Plugout USB 0x818C40 0xE1FFF0 0x0CD800
8242 0x000000 0xE1FFF0 0x08D800
8243 0x000000 0xE1FFF0 0x08D800
8246 and w/ USB pluggedin
8249 | Reg 0 | Reg 1 | Reg 2
8250 | interrupt | interrupt mask| interrupt sense
8251 -------------------------------------------------------
8256 -------------------------------------------------------
8259 6 | CHGDETI | | CHGDETS
8261 ------------------------------------------------------
8264 10 | CCCVI | | CCCVS !!!
8265 11 | CHGCURRI | | CHGCURRS
8266 ---------------------------------------------------
8271 ---------------------------------------------------
8272 16 | USBI | | USB4V4S
8275 19 | IDI | | IDFLOATS
8276 ---------------------------------------------------
8283 The detection no based only on bit 16 in reg 2 of PMIC, which is USB4V4S
8286 15. Watch> Change battery capacity calculation {{{
8289 Current: There are values
8299 notify_interval = 1200
8301 The old calculations are
8302 The 82% from range of 975 - 144 = 813, which is 666.7 hw units.
8303 The 40% is 325 units and 35% - 284.6 units.
8310 Found that 4.5v is 925 units, which is 27 units less.
8312 New settings calculations:
8314 The 4.18v (units 782) is full battery, which is 100%
8315 The 3.4v (units 426) is empty battery, which is 0%
8316 The range is 0.78v (356). So 40% = 3.71v (568.4) and 35% = 3.67v (549.6)
8317 The new notification level is
8318 3.6v (568.4) which is 26% (0.02v (142.4) from range 0.78v)
8319 and the new stop level is 3.5v (549.6) which is 12.8%
8321 Final: notify - 13% 3.5v (549.6)
8324 New configuration values:
8334 notify_interval = 1200
8338 16. Watch> Fix AVI file {{{
8340 Fix corrupted AVI files at app startup.
8342 Find bytes 4 - 7, if those are 0, so should right the real file size.
8344 17. Watch> Fix kernel panic in sleep/standby mode {{{
8346 The STOP mode while while all power is off and clock down to 32KHz.
8347 When getting out of the mode the kernel panic happened.
8349 The start of the mode begins in app which calls ioctl WRISTCMD_POWER_OFF, which
8350 handled in wristwatchdrv in stop_mode() (file main.c)
8351 The entry to the STOP mode is in mxc_pm_lowpower() (arch/arm/mach-mx27/mxc_pm.c)
8354 in mxc_pm_lowpower() - while getting out from stop mode, to read CSCR value
8355 and switch on bits 0 n 1. Also to do it before enable irqs. Cancel calling
8356 gpio suspend and gpio resume functions (mxc_suspend(), mxc_gpio_resume()).
8357 in stop_mode() - cancel unmasking CCTV interrupt, cancel setting switches
8360 18. Watch> Change stop recording button push {{{
8363 To move keyboard related code to separate files: keyboard.[c,h]
8364 Follow functions are moved:
8365 int KbdState1(KbdTrackHandle_t *KbdTrack);
8366 int KbdState2(KbdTrackHandle_t *KbdTrack);
8367 int KbdTrackHandler(Button_t Button, ButtonState_t ButtonState,
8368 unsigned int mdifftime);
8369 int CreateKbdTask(void);
8370 int KillKbdTask(void);
8372 Added short vibration, while short button push during recording.
8373 In KbdTrackHandler(), when state is StateMode_Record:
8374 added when any of buttons in state released and diff time <= 500
8375 call Device_SendEvent(OPEVENT_RECORD_ALIVE);
8377 Added new event OPEVENT_RECORD_ALIVE in WristWatchControler() which does
8378 call Device_DoVibration(VibratorType_RecordAlive);
8380 Added new vibration type VibratorType_RecordAlive which does
8381 1 vibration for 300 ms.
8384 19. Watch> Configuration params {{{
8388 |-> Device_ReadConfig() (wristwatch/devicehandler.c)
8389 | |-> read_params() (inifile/params.c)
8390 | |-? set_syslog_on() (ilog/il.h)
8391 | |-? set_syslog_off() (ilog/il.h)
8392 | |_> set_redboot_version()
8395 Device_DoUSBPlugin()
8397 |-> Device_updateConfig()
8398 | |-> update_params() (inifile/params.c)
8399 | |-> read_params() (inifile/params.c)
8400 | |-? restore_default_params() (inifile/params.c)
8401 | |-? Device_ReadConfig()
8402 | |-? set_syslog_on() (ilog/il.h)
8403 | |_? set_syslog_off() (ilog/il.h)
8406 The project inifile moved under dir wristwatch. Makefiles changed. ibuild.sh also changed to
8407 build inifile as part of wristywatch application.
8410 20. Watch> create libutils {{{
8413 svn add utils --non-recursive
8414 svn commit utils -m "add dir utils"
8415 svn move http://192.168.1.61/first/watch/trunk/wristwatch/utils.c http://192.168.1.61/first/watch/trunk/wristwatch/utils/utils.c -m "move to dir utils"
8416 svn move http://192.168.1.61/first/watch/trunk/wristwatch/utils.h http://192.168.1.61/first/watch/trunk/wristwatch/utils/utils.h -m "move to dir utils"
8417 svn move http://192.168.1.61/first/watch/trunk/wristwatch/utils_file.h http://192.168.1.61/first/watch/trunk/wristwatch/utils/utils_file.h -m "move to dir utils"
8418 svn move http://192.168.1.61/first/watch/trunk/wristwatch/utils_file.c http://192.168.1.61/first/watch/trunk/wristwatch/utils/utils_file.c -m "move to dir utils"
8419 svn add utils/Makefile
8420 svn commit utils/Makefile -m "add makefile"
8421 Change ffmpeg/Makefile
8425 Watch> Bug #124> Can't record audio < 20sec {{{
8428 av_encode() (ffmpeg/ffmpeg.c)
8431 |-> av_read_frame() (ffmpeg/libavformat/utils.c)
8438 file_write() (ffmpeg/libavdevice/sahara.c)
8440 |->fifowrite() (ffmpeg/libavdevice/sahara.c)
8444 dm365> BringUp new software {{{
8452 from http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_3_10/latest/index_FDS.html
8453 5128505 2010-05-06 14:46 arago-2009.11-armv5te-linux-gnueabi-sdk.tar.gz - GIT PSP SDK
8454 12308572 2010-05-06 14:48 arago-demo-image-dm365-evm.tar.gz -
8455 92281902 2010-05-06 14:50 data_dm365.tar.gz
8456 52575 2010-05-06 14:39 DaVinci_PSP_03.01_Beta_Release_Notes
8457 3136981 2010-05-06 14:46 dvsdk_3_10_00_12_overlay_dm365.tar.gz -
8458 213229 2010-05-06 14:28 dvsdk_3_10_00_12_releasenotes.pdf
8459 342593245 2010-05-06 14:46 dvsdk_3_10_00_12_Setup.bin - DVSDK software installer
8460 108455 2010-05-06 14:28 dvsdk_3_10_00_12_swmanifest.pdf
8461 84299315 2010-05-06 14:45 linux-davinci-staging.tar.gz - GIT Linux PSP kernel source
8462 151124 2010-05-06 14:47 u-boot-dm365-evm.bin
8463 2106420 2010-05-06 14:47 uImage-dm365-evm.bin
8465 Toolchain downloads:
8466 134403647 2010-05-06 15:14 arm-2009q1-203-arm-none-linux-gnueabi.bin
8467 77413954 2010-05-06 16:02 arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
8468 1627657 2010-05-06 14:53 as.pdf
8469 369751 2010-05-06 14:53 binutils.pdf
8470 466369 2010-05-06 15:03 cpp.pdf
8471 2652658 2010-05-06 14:58 gcc.pdf
8472 2158421 2010-05-06 14:58 gdb.pdf
8473 353895 2010-05-06 15:02 getting-started.pdf
8474 240471 2010-05-06 15:02 gprof.pdf
8475 2568 2010-05-06 15:03 HDD_ReadMe.html
8476 662428 2010-05-06 15:03 ld.pdf
8477 5046061 2010-05-06 15:00 libc.pdf
8478 11398 2010-05-06 15:03 release858.htm
8480 Toolchain installation {{{
8482 If Using Ubuntu 8.x and above do follows:
8483 sudo dpkg-reconfigure -plow dash
8486 mkdir /opt/codesourcery
8487 cd /opt/codesourcery
8488 tar jxf arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
8489 The toolchain will be under /opt/codesourcery/arm-2009q1
8491 Add follows line to .bashrc
8492 alias setdm365='PATH=/opt/codesourcery/arm-2009q1/bin:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/X11:/usr/X11R6/bin'
8496 * Try compiling with -fpromote-loop-indices in addition to your usual optimization options. This experimental option significantly improves performance on some benchmarks. It is not yet enabled by default with -O3 because of its experimental nature.
8497 * Try adding -funroll-loops to your optimization flags. Code size will increase, but you may get better performance.
8499 Software installation (SDK, PSP, DVSDK) {{{
8503 tar zxf arago-2009.11-armv5te-linux-gnueabi-sdk.tar.gz
8504 mv ./opt/arago-2009.11 .
8505 Now, there is SDK under /opt/dm365/arago-2009.11
8508 tar zxf ~/ivirtus/dm365/download-06may2010/linux-davinci-staging.tar.gz
8509 Now, there is PSP (means kernel) under /opt/dm365/git
8511 chmod a+x dvsdk_3_10_00_12_Setup.bin
8513 run: ./dvsdk_3_10_00_12_Setup.bin, change path during installation as follow
8514 Destination folder: /opt/dm365
8515 CodeSourcery tool dir: /opt/codesourcery/arm-2009q1
8516 Linux kernel: $(DVSDK_INSTALL_DIR)/../git
8517 Linux libs: $(DVSDK_INSTALL_DIR)/../arago-2009.11/arm-none-linux-gnueabi/usr
8518 Install dir: /opt/dm365/rootfs
8519 Now, there is DVSDK under /opt/dm365/dvsdk
8522 mkdir /opt/dm365/rootfs-demo && cd /opt/dm365/rootfs-demo
8523 sudo tar zxf arago-demo-image-dm365-evm.tar.gz
8524 chmod 777 -R /opt/dm365/rootfs-demo
8526 Prepare NFS rootfs. Add follow lines to /etc/exports
8527 /opt/dm365/rootfs *(rw,no_root_squash,no_all_squash,sync)
8528 /opt/dm365/rootfs-demo *(rw,no_root_squash,no_all_squash,sync)
8529 sudo /usr/sbin/exportfs -av
8530 sudo /etc/init.d/nfs-kernel-server restart
8533 sudo apt-get install uboot-mkimage
8534 cd /opt/dm365/dvsdk_3_10_00_12
8537 cp /opt/dm365/dvsdk_3_10_00_12/../git/arch/arm/boot/uImage /tftpboot/dm365/
8539 Build u-boot from git
8540 git clone -n git://arago-project.org/git/projects/u-boot-davinci.git
8542 git checkout DEV.DaVinciPSP.03.XX.00.35
8547 Set env n build (arago - DEV.DaVinciPSP.03.XX.00.35) {{{
8549 cd ivirtus/dm365/dev-arago
8550 git clone -n git://arago-project.org/git/arago.git
8552 git checkout DEV.DaVinciPSP.03.XX.00.35
8553 cd ivirtus/dm365/dev-arago
8554 git clone -n git://arago-project.org/git/arago-oe-dev.git
8556 git checkout DEV.DaVinciPSP.03.XX.00.35
8557 cd ivirtus/dm365/dev-arago
8558 git clone -n git://arago-project.org/git/arago-bitbake.git
8560 git checkout DEV.DaVinciPSP.03.01.00.28
8562 cd ivirtus/dm365/dev-arago
8563 cp arago/setenv.sample arago/setenv
8564 cp arago/conf/local.conf.sample arago/conf/local.conf
8565 Chnages in arago/setenv
8566 export OEBASE=$HOME/ivirtus/dm365/dev-arago
8567 export SCRATCH=/opt/dm365/scratch
8571 Make sure CodeSourcery toolchain installed and exists in PATH
8573 Build arago base filesystem
8574 MACHINE=dm365-evm bitbake arago-base-image
8575 Build u-boot and arago demo filesystem
8576 MACHINE=<machine> bitbake board-set arago-demo-image
8577 Build kernel w/ linked modules
8578 MACHINE=<machine> bitbake linux-davinci-staging-static
8584 bring kernel image by tftp
8585 --------------------------
8586 setenv serverip 192.168.1.137
8587 setenv ipaddr 192.168.1.138
8588 tftp 80700000 dm365/uImage
8593 setenv bootargs 'mem=64M console=ttyS0,115200n8 root=/dev/nfs rw nfsroot=$(nfshost):$(rootpath),nolock ip=dhcp video=davincifb:vid0=OFF:vid1=OFF:osd0=720x576x16,2025K dm365_imp.oper_mode=0'
8594 setenv baudrate 115200
8595 setenv serverip 192.168.1.137
8596 setenv nfshost 192.168.1.137
8597 setenv rootpath /opt/dm365/rootfs-demo
8601 setenv boot_console 'console=ttyS0,115200'
8605 setenv baudrate 115200
8607 setenv ethaddr 00:0e:99:02:ca:7e
8608 setenv netboot 'tftp 3800000 pMulti; bootm 3800000'
8609 setenv ipaddr 192.168.1.138
8610 setenv serverip 192.168.1.137
8611 setenv loadip 192.168.1.137
8612 setenv gatewayip 192.168.1.1
8613 setenv netmask 255.255.255.0
8614 setenv hostname gxk_dm365
8617 setenv bootargs_base console=ttyS0,115200 root=/dev/ram rw
8618 setenv addip 'setenv bootargs ${bootargs_base} ip=${loadip}:${serverip}:${gatewayip}:${netmask}:${hostname}:${netdev}:${use_dhcp}'
8619 setenv bootcmd 'run addip; run netboot'
8622 setenv bootcmd 'run addip; bootm b0900000'
8625 setenv bootfile uImage-dm####-evm.bin
8626 setenv gateway <ip address of the gateway>
8627 Set per platform U-Boot parameters described as above
8634 Watch> Redesign Vibrator {{{
8636 To make vibration more deterministic.
8637 Create Vibration runner, which is separate thread waiting blocked on
8638 message queue. Getting message,
8640 Watch> new USB detection {{{
8642 from Atlas_(MC13783)_User_Guide_Rev_3 5.pdf section 8.3.3:
8643 If the Charger is removed while the Charge Path regulator is enabled, the
8644 software removal detection of the charger can be determined by a combination of
8645 CHRGCURRS, CHGDETS, and USB4V4S.
8647 So the USB detection set in Device_GetPluginState() as
8653 Watch> newest USB detection {{{
8656 There are claims that current USB detection not works everytime.
8658 Solution: To base USB detection on std Linux USB gadget mass storage driver
8659 which mostly??? works.
8661 After reset, starts USB enumarating by calling device setup API for device
8663 from drivers/usb/gadget/file_storage.c standard_setup_req()
8666 Watch> format ubifs partitions {{{
8669 ubidetach /dev/ubi_ctrl -m 5
8670 ubiformat /dev/mtd/5 -O 2048 -s 2048
8672 ubiattach /dev/ubi_ctrl -m 5 -O 2048
8673 ubimkvol /dev/ubi0 -N appfs -m
8674 mount -t ubifs ubi0:appfs /mnt/appfs
8676 Wifi> Build bluetooth solution {{{
8679 CC=arm-none-linux-gnueabi-gcc ./configure --host=arm --prefix=${IVIRTUS_PRJ_ROOTFS}
8680 make && make install
8683 CC=arm-none-linux-gnueabi-gcc CPPFLAGS="-I${IVIRTUS_PRJ_ROOTFS}/include" LDFLAGS="-L${IVIRTUS_PRJ_ROOTFS}/lib" ./configure --host=arm-linux --prefix=${IVIRTUS_PRJ_ROOTFS} ac_cv_have_abstract_sockets=${ac_cv_have_abstract_sockets=no} --without-x --with-xml=expat
8684 make && make install
8687 CC=arm-none-linux-gnueabi-gcc CPPFLAGS="-I${IVIRTUS_PRJ_ROOTFS}/include" LDFLAGS="-L${IVIRTUS_PRJ_ROOTFS}/lib" ./configure --host=arm-linux --prefix=${IVIRTUS_PRJ_ROOTFS}
8688 make && make install
8691 PKG_CONFIG_PATH="${IVIRTUS_PRJ_ROOTFS}/lib/pkgconfig" CC=arm-none-linux-gnueabi-gcc CPPFLAGS="-I${IVIRTUS_PRJ_ROOTFS}/include" LDFLAGS="-L${IVIRTUS_PRJ_ROOTFS}/lib" ./configure --host=arm-linux --prefix=${IVIRTUS_PRJ_ROOTFS} --enable-tools --enable-test --disable-glib --disable-usb
8696 --- Acceptance tests ---
8698 1. USB mode (connectivity only, w/o streaming)
8699 Purpose: Ability to open the product as mass storage device on the Windows PC.
8700 1. Plug-in USB cable and open mass storage device on Windows PC.
8701 2. Check that exist param.ini and system.ini
8702 3. Open param.ini and verify the version number
8703 4. Wait for 1 min in the mode, while doing nothing, in order to see
8704 that no switch to power safe
8706 Purpose: ability to save power and to charge a battery
8707 1. Plug-in USB cable, open system.ini file and change value of the
8708 enable (power_save section) to true. Close the file and plug-out
8709 USB cable. Wait for 1 min, the system should switch to the power
8711 2. Check the ability to get out from power save to the normal mode and
8712 try whole sequence again.
8713 3. While battery low, ability of the system to start charging while USB plugged in.
8715 Purpose: ability to configure the parameters that changes the system behavior
8717 Purpose: ability to upgrade the full system.
8719 Purpose: ability to make 2 video recordings at least 20 and 10 minutes long.
8721 Purpose: ability to make audio recording.
8723 Purpose: ability to make still pictures
8724 8. Changes of the version
8726 Watch> Boot analyzes {{{
8728 from redboot/hal/arm/mx27/ads/current/include/hal_platform_setup.h
8730 .macro _platform_setup1
8734 Boot the sting3g {{{
8738 svn co http://192.168.1.61/first/sting-3g/trunk .
8740 Follows files in dvsdk (dvsdk_2_10_01_18) changed:
8741 dmai_1_21_00_10/packages/ti/sdo/dmai/ce/Venc1.[c|h]
8745 ibuild.sh bootloader
8753 ibuild.sh dm365_live
8758 --- Set NFS exports in /etc/exports
8759 /opt/sting3g/rootfs 192.168.1.0/24(rw,sync,no_root_squash,no_all_squash)
8761 sudo chown -R gxk:gxk /opt
8764 setenv ipaddr 192.168.1.177
8765 setenv serverip 192.168.1.137
8766 setenv bootargs 'console=ttyS0,115200n8 root=/dev/nfs nfsroot=192.168.1.137:/opt/sting3g/rootfs rw noinitrd mem=80M video=davincifb:vid0=OFF:vid1=OFF:osd0=OFF:osd1=OFF dm365_imp.oper_mode=0 davinci_capture.device_type=4 ip=192.168.1.177'
8767 setenv bootcmd 'tftp 80700000 sting3g/uImage; bootm'
8769 -- U-boot env (sting3g)
8770 setenv bootargs 'console=ttyS0,115200n8 root=/dev/ram0 rw initrd=0x82000000,8M mem=80M video=davincifb:vid0=OFF:vid1=OFF:osd0=OFF:osd1=OFF dm365_imp.oper_mode=0'
8771 setenv bootcmd 'nand read 0x82000000 0x20800000 0x780000; nboot 0x80700000 0x400000; bootm'
8774 base addr 0x2000000, blks 0x1000 pages/blk 0x40 bytes/page 0x1000
8775 blk size 262.144 (0x40000)
8776 media size 1.073.741.824 (0x40000000)
8780 BBT 0x000000 - 0x03ffff 0
8781 UBL 0x040000 - 0x07ffff 1
8782 u-boot 0x080000 - 0x0cffff 2
8783 u-boot params 0x3c0000 - 0x3fffff 15
8784 kernel 0x400000 - 0xffffff 16-63
8785 initrd 0x1000000 - 0x1fffffff 64-0x7ff
8786 rootfs 0x20000000 - 0x3fffffff 0x800-0xfff
8788 <kernel>/arch/arm/mach-davinci/board-dm365-evm.c line 204
8789 0x00000000-0x003c0000 : "bootloader"
8790 0x003c0000-0x00400000 : "params"
8791 0x00400000-0x00800000 : "kernel"
8792 0x00800000-0x1f800000 : "initrd"
8793 0x1f800000-0x80000000 : "rootfs"
8795 to erase rootfs partition:
8796 nand erase 0x1f800000 0x1e00000
8799 Should be same company SIM in modem and computer.
8801 --- Install Sting3G through serial
8803 cp /opt/mv_pro_5.0/dvsdk_2_10_01_18/PSP_02_10_00_14/bin/ramdisk.gz /tftpboot/
8806 create ~/.kermrc w/ follow
8807 set line /dev/ttyUSB0
8809 set carrier-watch off
8811 set flow-control none
8820 push enter to get target prompt
8821 setenv bootargs 'console=ttyS0,115200n8 root=/dev/ram0 rw initrd=0x82000000,3M mem=80M ip=off video=davincifb:vid0=OFF:vid1=OFF:osd0=OFF'
8822 setenv bootcmd 'nand read 0x82000000 0x800000 0x400000; nboot 0x80700000 0 0x400000; bootm'
8823 //setenv bootcmd 'nand read 0x82000000 0x1000000 0x400000; nboot 0x80700000 0 0x400000; bootm'
8827 push from right Ctrl+Alt+\ C and get to kermit prompt: C-Kermit>
8828 run: send /bin /tftpboot/sting3g/uImage
8829 when finished run: connect
8830 get target prompt and run
8831 nand erase 0x400000 0x200000
8832 nand write 0x80700000 0x400000 0x200000
8835 push from right Ctrl+Alt+\ C and get to kermit prompt: C-Kermit>
8836 run: send /bin /tftpboot/sting3g/ramdisk.gz
8837 when finished run: connect
8838 get target prompt and run
8839 nand erase 0x800000 0x300000
8840 nand write 0x82000000 0x800000 0x300000
8842 nand erase 0x1f800000 0x1e00000
8847 Prepare SD card w/ rootfs ???
8851 mount /dev/mmcblk0p1 /mnt/mmc
8852 mount -t yaffs2 /dev/mtdblock4 /mnt/tmp
8854 tar xf /mnt/mmc/rootfs-sting3g.tar
8858 reboot and get u-boot prompt
8859 setenv bootargs0 'console=ttyS0,115200n8 root=/dev/mtdblock4 rw rootfstype=yaffs2 noinitrd mem=80M ip=off video=davincifb:vid0=OFF:vid1=OFF:osd0=OFF'
8860 setenv bootargs1 'dm365_imp.oper_mode=0 davinci_capture.device_type=4 davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=ntsc'
8861 setenv bootargs ${bootargs0} ${bootargs1}
8863 --- create ttyUSB0 device
8864 mknod /dev/ttyUSB0 c 188 0
8866 from Yoram 15mar2010
8868 Creating 5 MTD partitions on "nand_davinci.0":
8869 0x00000000-0x00400000 : "bootloader"
8870 0x00400000-0x00800000 : "kernel"
8871 0x00800000-0x01800000 : "initrd"
8872 0x01800000-0x03600000 : "rootfs3"
8873 0x03600000-0x05600000 : "rootfs4"
8876 nand erase 0x1800000 0x2000000
8878 setenv mtdargs 'mtdparts=nand_davinci.0:4M(bootloader)ro,4M@4M(kernel),16M@8M(initrd),30M@24M(rootfs3),32M@54M(rootfs4)-(rootfs)'
8879 16M@8M - size 16MB, offset 8M
8880 setenv bootargs ${bootargs0} ${bootargs1} ${mtdargs}
8883 --- How to change Uboot env !!!
8884 setenv bootargs_base console=ttyS0,115200 root=/dev/ram rw
8885 setenv addip 'setenv bootargs ${bootargs_base} ip=${loadip}:${serverip}:${gatewayip}:${netmask}:${hostname}:${netdev}:${use_dhcp}'
8886 setenv bootcmd 'run addip; run netboot'
8890 05. To learn Altair sdio code {{{
8899 --- DAPI (from doc DC-E2150-08 rev B)
8900 The DAPI is user space API (static library) for kernel drivers
8902 from to doc DC-E2150-07 rev B:
8904 from Release_10_06_2009_15_08_52/Src/Driver/Readme.txt
8905 Common - contains common files of the driver modules.
8906 WiMax - contains the modules which are implments the WiMax spec.
8907 Tools - contains the tools needed to build the driver.
8908 OS - contains the OS modules (OSAL, linux, Windows)
8909 DriverCore - contains non protocol dependent driver code
8910 Infrastructure - contains common infrastructure for all driver modules
8911 HWDependent - contains bus driver abstraction and chip abstraction
8913 Altair Software Package {{{
8915 from (Release_10_06_2009_15_08_52/Src/OS/Linux/Drivers/SDIO/sdio/Include/...)
8917 --- host.h (osal.h sdiodrv.h)
8921 void sdiodrv_command(struct io_req *req);
8922 void sdiodrv_deinit_host(struct sdiodrv_host *sh);
8923 void sdiodrv_init_host(struct sdiodrv_host *sh);
8924 void sdiodrv_irq(void *arg);
8925 //needed for init card
8926 void sdiodrv_host_ext_timeout(int on);
8927 void sdiodrv_host_bus_width(int _4bit);
8928 void sdiodrv_host_abort_xfer(void);
8929 void sdiodrv_poll_card(void *arg);
8931 void dump_sdio_regs(uint16 op);
8933 extern int sdiodrv_config_card(struct sdiodrv_host *sh);
8934 extern int sdiodrv_set_block_size(struct sdiodrv_host *sh, int fn, int block_size);
8935 extern int sdiodrv_reset_card(struct sdiodrv_host *sh);
8936 extern int sdiodrv_card_present(void);
8938 extern int dma_threshold;
8939 extern int data_timeout;
8940 extern int cmd_timeout;
8941 extern int clock_div;
8942 extern int bus_width;
8943 extern int fifo_threshold;
8944 extern int single_mode_dma;
8945 extern int polling_mode_threshold;
8946 extern void MicroDelay(int Microseconds);
8950 int sdiodrv_init_dma(void);
8951 int sdiodrv_start_dma(struct io_req *req);
8952 int sdiodrv_abort_dma(struct io_req *req);
8953 void sdiodrv_get_dma_irq_counter(SdioCounters_t * sdioCounters);
8954 --- proto.h (sdiodrv.h)
8957 from (Release_10_06_2009_15_08_52/Src/OS/Linux/Drivers/SDIO/Include/...)
8960 #include <linux/kernel.h>
8961 #include <linux/module.h>
8962 #include <linux/interrupt.h>
8964 #include <asm/hardware/clock.h>
8965 #include <linux/interrupt.h>
8966 #include <linux/spinlock.h>
8967 #include <linux/time.h>
8968 typedef spinlock_t atomic_lock_t;
8969 typedef struct completion completion_sema_t;
8970 typedef struct tasklet_struct os_callback_task_struct;
8971 void adapterCallbackTask(void *data);
8972 static inline void sdio_os_callback_task_schedule(os_callback_task_struct* tsk)
8973 { tasklet_schedule((struct tasklet_struct*) tsk); }
8974 static inline void sdio_os_callback_task_init(void (*func)(void *arg), void *arg, os_callback_task_struct* tsk)
8975 { tasklet_init((struct tasklet_struct*)tsk, (void (*)(unsigned long))func, (uint32)arg); }
8976 static inline void sdio_os_callback_task_destroy(os_callback_task_struct* tsk)
8977 { tasklet_kill((struct tasklet_struct*) tsk); }
8978 void osal_schedule_card_poll(void *arg, int delay, void (cb)(void*));
8980 --- sdiodrv.h ( osal.h, bus_adapter.h)
8981 typedef void (*sdio_trans_done_cb)(errcode_e status, void *context);
8982 extern errcode_e sdiodrv_register(card_change_cb callback, void *context, uint32 *handle);
8983 extern void sdiodrv_deregister(uint32 handle);
8984 extern errcode_e sdiodrv_cmd52_atomic(uint32 handle, int func, xfer_dir dir, uint32 addr,
8986 extern errcode_e sdiodrv_cmd52_async(uint32 handle, int func, xfer_dir dir, uint32 addr,
8987 uint8 *val, sdio_trans_done_cb cb, void *priv);
8988 extern errcode_e sdiodrv_cmd53_atomic(uint32 handle, int func, xfer_dir dir, uint32 addr,
8989 uint8 *buffer, int length, int incr);
8990 extern void sdiodrv_cmd53_async(uint32 handle, int func, xfer_dir dir, uint32 addr,
8991 uint8 *buffer, int length, int incr,
8992 sdio_trans_done_cb cb, void *priv);
8993 extern errcode_e sdiodrv_abort_reset(uint32 handle);
8994 extern errcode_e sdiodrv_get_card_id(uint32 handle, uint32 *vendorID, uint32 *productID);
8995 extern errcode_e sdiodrv_cmd53_atomic_sg(uint32 handle, int func, xfer_dir dir, uint32 addr,
8996 sg_node *sg, int length, int incr);
8997 extern void sdiodrv_cmd53_async_sg(uint32 handle, int func, xfer_dir dir, uint32 addr,
8998 sg_node *sg, int length, int incr,
8999 sdio_trans_done_cb cb, void *priv);
9000 extern int sdiodrv_dma_threshold;
9001 extern errcode_e sdiodrv_get_counters(SdioCounters_t * sdioCounters);
9003 --- bus_adapter.h (osal.h)
9007 --- Adapter (from Release_10_06_2009_15_08_52/Src/OS/Linux/Drivers/SDIO/adapter/...)
9009 sdio_adapter_init() (Src/os.c) - module init
9010 |_> sdio_os_callback_task_init() (Include/osal.h)
9011 |_> tasklet_init(adapterCallbackTask())
9012 sdio_adapter_exit() (Src/os.c) - module exit
9013 |-> sdio_os_callback_task_destroy()
9016 adapterCallbackTask() (Src/adapter.c)
9017 |-> release_adapter_lock()
9018 |_? s_req.callback()
9020 bus_register_client() (Src/adapter.c)
9021 |_> sdiodrv_register() (sdio/Src/os.c) {{{
9024 |-> initDevice() (sdio/Src/os.c)
9026 | |_> driver_data=NULL, coherent_dma_mask=0xffffffff
9027 |-> sdiodrv_init_platform() (sdio/Src/os.c)
9028 | |-> MAP_PHYS_ADDR (Include/osal.h) = ioremap()
9029 | |-> WRITE_REG16 (Include/osal.h) = __raw_writew()
9030 | |-> WRITE_REG16 (Include/osal.h) = __raw_writew()
9031 | |-> WRITE_REG16 (Include/osal.h) = __raw_writew()
9032 | |-> UNMAP_PHYS_ADDR (Include/osal.h) = iounmap()
9035 |-> sdiodrv_init_host() (sdio/Src/host.c)
9037 |_> osal_schedule_card_poll() }}}
9038 bus_deregister_client()
9039 |_> sdiodrv_deregister() (sdio/Src/os.c)
9040 bus_read_reg_bus_space()
9043 bus_write_reg_bus_space()
9049 bus_get_max_trans_size()
9051 --- SDIO driver (from Release_10_06_2009_15_08_52/Src/OS/Linux/Drivers/SDIO/sdio/...)
9058 --- sdio drv (from iVirtus_Release_0_1-05nov2009)
9059 Source starts from altair_prj/OS
9060 sdiodrv_init() (sdio/Src/os.c)
9061 |-> alloc host struct (struct sdiodrv_host - sdio/Include/host.h)
9062 |-> alloc device struct
9063 |-> initDevice() (sdio/Src/os.c)
9064 | |-> set coherent_dma_mask = OMAP_DMA_MASK, which is 0xffffffff
9065 |-> set bus width (default is 4)
9066 |-> set card state (default is gone)
9067 |-> sdiodrv_init_platform() (sdio/Src/os.c)
9071 | |_> set host mmc_base
9072 |-> sdiodrv_init_host()
9075 Live streamer (live555.com) status {{{
9078 http://live555.com/ - The RTP/RTCP/RTSP/SIP multimedia streaming solution.
9079 download from http://live555.com/liveMedia/public/
9081 Works for Sting WiFi from taken version 02jun2009 or 20apr2009
9082 Added patch (from mailing list) to support h264.
9084 --- From which version originaly taken? (Yoram - 02jun2009)
9090 git clone git://arago-project.org/git/people/sneha/linux-davinci-staging.git
9091 cd linux-davinci-staging
9092 git reset --hard v2.6.31-davinci1
9096 Project WristWatch/Lighter {{{
9097 15sep2009, 22sep2009, 29sep2009
9100 -----------------------------------------
9101 | Bootup time (secs) |
9102 |-----------------------------------------|
9103 | Version\Product | Watch | Lighter |
9104 |-----------------------------------------|
9108 |_________________________________________|
9112 --- Power managemenmt
9113 Used Freescale - mc13783 (Atlas_(MC13783)_User_Guide_Rev_3 5.pdf). It has
9114 - Power control logic
9115 - 32kHz RTC coincell
9116 - Dual SPI control bus, etc.
9120 Has microphone amplifiers, speaker amplifiers, voice CODEC and stereo DAC.
9121 2. Switches & Regulators
9122 Has 4 downconverters n 1 up converter.
9123 3. Battery management
9124 The single path scheme is while the phone is always supplied from battery and
9125 therefore always has to be present and valid.
9126 In serial path charging scheme the phone can operate directly from the charger
9127 while the battery is removed or deeply discharged.
9129 It fully programmable via SPI.
9134 battery changing interface for wall charging and USB charging
9135 10b ADC for battery monioring
9139 Used MCP (Multi Chip Package) from Numonyx NANDDBR4N5A which contents
9140 NAND chip and DDR chip together.
9141 datasheet: 208407_NANDRAM_LargePage_FBGAonly_Updated.pdf
9142 The NAND chip is NAND08G-R4B2-C, datasheet: NAND04G-B2D_NAND08G-BxC.pdf
9143 Communication w/ flash begins by AHB host initiating read from NAND NFC (NAND
9145 The flash has 2KB page
9146 This is done by configuring NFC and waiting for interrupt from flash device.
9151 The PP performs deblock, dering, image resize n color space conversion
9152 (CSC). Those funcs provide needs to meet various RGB n YUV formats.
9153 Input format - YUV 4:2:0 (planar)
9154 Output format - YUV 4:2:2, RGB (444, 565, 666, 888)
9157 CMOS Sensor Interface (CSI) {{{
9158 from MCIMX27RM.pdf (chapter 39)
9160 The CSI is common interface to direct connection w/ external CMOS sensor.
9161 Available nbr of modes: Gated, Non-gated, CCIR656 interlaced, CCIR656
9165 Using VSYNC, HSYNC and PIXCLK signals. A frame starts w/ rising edge on VSYNC,
9166 then HSYNC goes to HIGH and holds for the entire line.
9167 The Pixel clock is valid as long as HSYNC is HIGH. Data is latched at the
9168 rising edge of the valid pixel clocks. HSYNC goes to LOW at the end of line.
9169 Pixel clocks then become invalid and CSI stops receiving data from the stream.
9170 For the next line the HSYNC timing repeats. For the next frame the VSYNC timing
9175 CSICR1 - r/w -CSI Control Reg 1
9176 CSICR2 - r/w -CSI Control Reg 2
9177 CSICR3 - r/w -CSI Control Reg 3
9178 CSISR - r/w -CSI Status Reg
9179 CSISTATFIFO - r -CSI Statistic FIFO Reg
9180 CSIRFIFO - r -CSI RX FIFO Reg
9181 CSIRXCNT - r/w -CSI RX Count Reg
9183 CSISR - (x80000008) shows interface status n kind of interrupt is being generated.
9184 25 (SF_OR_INT) - STATFIFO OverRun Interrupt status - 1 is STATINFO has overflowed.
9185 24 (RF_OR_INT) - RXFIFO OverRun Interrupt status - 1 is RXFIFO has overflowed.
9186 21 (STATFF_INT) - STATFIFO Full Interrupt status -
9197 HAB - High Assurance Boot
9198 CSI - CMOS Sensor Interface
9208 RAM: 0x00000000-0x07f00000, [0x00025260-0x07ed1000] available
9209 FLASH: 0x00000000 - 0x1000000, 128 blocks of 0x00020000 bytes each.
9210 == Executing boot script in 1.000 seconds - enter ^C to abort
9211 RedBoot> fis load ramdisk
9212 Image loaded from 0x00380000, to RAM 0x02000000, len 0xA00000
9213 RedBoot> fis load linux
9214 Image loaded from 0x00080000, to RAM 0x00100000, len 0x300000
9216 entry=0xa0008000, target=0xa0008000
9217 Using base address 0x00100000 and length 0x00300000
9224 |-> Init_WirstWatchApp()
9225 | |-> signal() - set sighandler sigterm_handler() for SIGQUIT,SIGINT,SIGTERM,SIGQUIT,SIGKILL
9227 | |_> OS_TaskCreate() - create task SystemMonitorTask
9228 |-> if m_forever - sleep(1)
9237 |-> open wristwatch drv device (/dev/wristwatchdrv)
9238 |-> read PMIC reg 15
9239 |-> set PMIC reg 15 follow bits: 1, 4, 5
9240 |-> Device_MountFileSystem()
9241 | |-> losetup -o 4096 /dev/loop/0 /mnt/usrfs/fat32
9242 | |_> mount /dev/loop/0 -t vfat /mnt/vfat
9243 |-> Device_ReadConfig()
9246 |-> Device_GetPluginState() - check if USB connected and more
9249 | | Set USBM to 1 (mask USB interrupt) - write to PMIC reg 1 value where bit16 is 1
9250 | | Write 1 to UDPI and UDMI - write to PMIC reg 0
9252 | |_> if CCCVS or USB4V4S is 1, so device connected
9254 |-> Device_DoUSBPlugin()
9255 | |-> if USB connected
9256 | | |-> copy log file to /mnt/vfat/log.log
9257 | | |-> Device_UnmountFileSystem()
9258 | | |-> Device_LedEnable() - led on
9259 | | |_> ioctl WRISTCMD_BAT_SET_CHARGER w/ charger=0, fcurrent=e, voltage=4
9260 | |_> if USB disconnected
9261 | |-> Device_MountFileSystem()
9262 | |-> Device_LedEnable() - led off
9263 | |-> upgrade_components()
9264 | |-> Device_updateConfig()
9265 | |_> Device_HandleTime()
9267 |-> create Event task
9269 |-> OS_AllocSemaphore()
9270 |-> OS_AllocSignal()
9271 |-> create Vibrator task
9272 |-> Device_DoVibration()
9273 |_> create Debug task
9277 |-> set thread name to iRpcTask
9278 |_> while not finished
9279 |-> Socket_UDPServer(port is 10332) (ffmpeg/ffmpeg.c)
9281 | |-> bind() - bind socket to any addr
9282 | |_> setsockopt() - set SO_BROADCAST
9283 |-> RPCHandler() (wristwatch/devicehandler.c) wait for client in endless loop
9284 | |-> Socket_ReceiveFrom() (ffmpeg/ffmpeg.c)
9285 | | |_> recvfrom() - in blocked mode
9286 | | Receives commands (ffmpeg/rpccmd.h) of type rpccmd_t
9287 | | with feilds: uchar func, uchar mode and paramstr[254]
9288 | |-> cmd RPCCMD_EXIT
9289 | |-> cmd RPCCMD_PING
9290 | |-> cmd RPCCMD_SET_TIME
9291 | |-> cmd RPCCMD_GET_TIME
9293 | |-> cmd RPCCMD_EVENT
9294 | | |-> event OPEVENT_CHARGER
9295 | | |-> event OPEVENT_USB
9296 | | |-> event OPEVENT_POWERUP
9297 | | |-> event OPEVENT_POWERDOWN
9298 | | |_> Device_SendEvent()
9299 | |-> cmd RPCCMD_SERVER_START
9300 | |-> cmd RPCCMD_SERVER_TERM
9303 | |_? mode==RPCCMD_MODE_REPLAY
9304 | |_> RPCSend() (wristwatch/devicehandler.c)
9306 | |-> Socket_SendTo() (ffmpeg/ffmpeg.c) - port 10333, addr 0
9310 |_> Socket_Close() == close()
9314 |-> set name iEventTask
9315 |-> OS_FifoCreate() - create fifo named EventTaskFifo
9316 |-> while !m_EventTaskFinish
9317 | |-> OS_FifoGet() - hope blocked ???
9318 | |_? if msg of type EventFifo_Notify
9319 | |_> WirstWatchControler() (wristwatch/wristwatchapp.c)
9320 | |-> OPEVENT_POWERUP
9322 | |-> OPEVENT_SELECT_MOVIE_RECORD
9323 | | |-> if state == StateMode_Sleep
9324 | | |-> if state == StateMode_Record
9325 | | |-> if state == StateMode_Idle
9326 | | | |-> Device_Notify(NotifyEvent_StartButton,"Start")
9327 | | | |_> Device_StartRecord()
9328 | | | |-> create task RecordTask (see RecordTask) ...
9329 | | |_> Device_Notify (NotifyEvent_RecordMode, "Movie")
9330 | |-> OPEVENT_SELECT_AUDIO_RECORD
9331 | |-> OPEVENT_SELECT_SNAPSHOT_RECORD
9332 | | |-> if state == StateMode_Sleep
9333 | | |_> if state == StateMode_Record
9334 | | |-> if state == StateMode_Idle
9335 | | |_> Device_Notify (NotifyEvent_RecordMode, "Movie")
9338 | | |-> Device_GetPluginState()
9339 | | |-> Device_DoUSBPlugin() (wristwatch/devicehandler.c)
9341 | | |-> StateMode_Record
9342 | | |-> StateMode_Idle
9343 | | |-> StateMode_USB
9344 | | |-> StateMode_Streaming
9345 | | |_> StateMode_Sleep
9346 | |-> OPEVENT_GO2SLEEP
9347 | | |-> if state == StateMode_Record
9348 | | | |->Device_StopRecord() (wristwatch/devicehandler.c)
9350 | | | |-> !!! no break keep running in StateMode_Idle
9351 | | |-> if state == StateMode_Idle
9352 | | |-> if state == StateMode_USB
9353 | | |_> if state == StateMode_Streaming
9354 | |_> OPEVENT_WAKEUP
9358 KbdTask (wristwatch/devicehandler.c) {{{
9360 |-> set name iKbdTask
9361 |_> while !m_KbdTaskFinish
9362 |-> keep previous state of Kbd
9364 | |-> Clean to 0 - KeyTrack old_keystate, KeyTrack handlekdbflag, KeyTrack StartTrackEvent, pollflag
9365 | |-> ioctl WRISTCMD_READ_KEY
9366 | |-> get event time
9367 | |_? keystate is 0, so KeyTrack state=1
9368 |-> if KeyTrack state == 1
9370 | |-> set pollflag to 1
9371 | |-> ioctl WRISTCMD_READ_KEY
9372 | |-> get event time
9374 | |-? keystate not changed
9375 | | |-? keystate is 0
9376 | | |_> set state = 0
9378 | |-> set KeyTrack state = 3, KeyTrack handlekdbflag = 0
9379 | |-> set KeyTrack keystate = keystate | (old_keystate << 2)
9382 | |-> KbdTrackHandler()
9384 | | |-> if state == StateMode_Idle
9386 | | | |-> Device_SendEvent OPEVENT_SELECT_SNAPSHOT_RECORD
9387 | | | |-> Device_SendEvent OPEVENT_SELECT_AUDIO_RECORD
9388 | | | |-> Device_SendEvent OPEVENT_SELECT_MOVIE_RECORD
9390 | | |-> if state == StateMode_Record
9392 | | |-> if state == StateMode_USB
9394 | | |_> if state == StateMode_Streaming
9401 | |-> set poll flag to 1
9402 | |-> ioctl WRISTCMD_READ_KEY
9404 | |_> if state != 0 - sleep for 50ms
9411 VibratorTask() (wristwatch/devicehandler.c)
9412 |-> set thread name to iVibratorTask
9416 SystemMonitorTask (wristwatch/wristwatchapp.c) {{{
9418 |-> set thread name iSysMonTask
9419 |-> Device_GetUserConfig()
9420 |-> Device_GetPluginState() (see Device_Init())
9421 |-? Device_SendEvent(OPEVENT_USB) - if connected (see EventTask)
9422 |-> SetStartIdleTimer()
9423 |-> while !m_SystemMonitorTaskFinish
9424 | |-> sleep for 1 sec
9425 | |-> GetState() - if StateMode_Streaming next loop iteration
9426 | |-> Device_GetPluginState() (see Device_Init()) - check if connected USB cable
9430 | |-> if StateMode_USB
9432 | |-> if StateMode_Idle
9435 | |-> Device_GetButteryInfo() (wristwatch/devicehandler.c) - get battery status
9437 | | |-> ioctl (WRISTCMD_GET_CURRENT)
9442 | | |_? status < notify_percent
9443 | | |-> OS_GetSystemTime()
9444 | | |-> Device_SendEvent(OPEVENT_BUTTERY_LOW)
9445 | | |_> set m_ButteryLowState = BTRY_LOW
9453 RecordTask (wristwatch/devicehandler.c) {{{
9455 |-> GetpartitionInfo()
9457 |-> create unique file
9467 Device configuration {{{
9471 |-> Device_ReadConfig() - get cfg values into m_config
9472 | |-> read_params() (wristwatch/inifile/params.c)
9473 | | |-> set_defaults()
9474 | | |-? if restore defaults
9475 | | | remove /mnt/appfs/param.ini n /mnt/appfs/system.ini
9476 | | |-> set_user_common()
9477 | | |-> read_user_ini() - read from /mnt/appfs/param.ini
9478 | | |-> sync_inifile() - copy /mnt/appfs/param.ini to /mnt/vfat/param.ini
9479 | | |-> set_system_version()
9480 | | |-> read_system_ini() - read from /mnt/appfs/system.ini
9481 | | | |-> open /mnt/appfs/system.ini
9482 | | | |-> read file in loop
9486 | | |_> sync_inifile() - copy /mnt/appfs/system.ini to /mnt/vfat/param/system.ini
9487 | |-> set_syslog_on/off()
9488 | |_> set_redboot_version()
9491 Device_DoUSBPlugin() - while USB disconnect
9493 |-> Device_updateConfig() - upd values in m_config
9494 | |-> update_params()
9495 | | |-> copy m_config to local dest_config
9496 | | |-> read_user_ini() - read from /mnt/vfat/param.ini to dest_config
9497 | | |-> update_user_ini()
9499 | |-> read_params() - upd values of m_config from /mnt/vfat/param.ini
9505 | |_? if restore defaults
9506 | restore_default_params()
9507 | Device_ReadConfig()
9513 PMIC (mc13783) registers {{{
9515 |Reg 0 |Reg 1 |Reg 2 | |Reg 15
9516 |intr |intr m|intr sen| |
9517 ----------------------------------------
9522 ----------------------------------------
9525 6 | | |CHGDETS | | |
9527 ----------------------------------------
9531 11 | | |CHGCURRS| | |
9532 ----------------------------------------
9537 ----------------------------------------
9538 16 | | |USB4V4S | | - |
9539 17 | | |USB2V0S | | - |
9540 18 | | |USB0V8S | | - |
9541 19 | | |IDFLOATS| | - |
9542 ---------------------------------------
9546 23 |UDMI | |UDMS | | - |
9553 reg 15 |----|----|----|0000|0011|0010| 0x000032
9558 Battery status table {{{
9578 Range in units and in Volts
9579 798 - 407 = 391 4.2 - 3.35 = 0.85
9581 50% = 602.5 = 3.775v
9598 | Device_SendEvent()
9607 Install linux-2.6.28 ltib imx27 on Ubuntu 9.10 {{{
9610 ??? sudo apt-get install bison libncurses5-dev build-essential rpm tcl8.5 libghc8-zlib-dev cscope
9614 ./L2.6.28_4.5.1_SDK_Aug2009_source/install
9616 download http://www.freescale.com/files/community_files/MCUCOMM/2864_mconf.zip
9617 unzip and copy mconf to /opt/freescale/ltib/usr/bin/
9619 download http://www.freescale.com/files/community_files/MCUCOMM/2869_ltib.patch
9624 cd L2.6.28_4.5.1_SDK/ltib
9625 vi dist/lfs-5.1/bison/bison.spec
9626 change in Build section from make to `make CFLAGS=-O0'
9641 StBy<= \__6__/=> V |_______|
9645 Modes | Start | Stop |
9646 -----------------------------------
9647 Video Rec | V l | V|A |
9648 Audio Rec | A l | V|A |
9649 StandBy | idle |A|V|USB| not rebooting
9650 Streaming | V | A+V |
9652 Sleep | A + V | USB | rebooting
9656 1. StartRec, PowerUp = 1s, Go2Sleep=0.5s=StartSnapshot
9659 4. DiskSpace, RecFail, PowerDown = 0.5s
9665 --- Config kernel params to set console
9670 exec -c "root=/dev/ram rw ramdisk_size=40000 initrd=0xa2000000,25440256 init=linuxrc console=ttymxc0,115200"
9672 Burn redboot w/ JTAG {{{
9674 Connect JTAG to the board
9675 Get Redboot prompt on target and run:
9676 nand erase -f 0x0 -l 0x40000 -o
9678 Run JLink app on Windows and get prompt.
9683 // AHB-Lite IP Interface
9684 w4 0x10000000,0x20040304
9685 w4 0x10020000,0x00000000
9686 w4 0x10000004,0xDFFBFCFB
9687 w4 0x10020004,0xFFFFFFFF
9688 // Peripheral clk gating init
9689 w4 0x10027020,0x00000000
9690 w4 0x10027024,0x00580780
9691 w4 0x10027018,0x20083403
9692 w4 0x1002701C,0x03030303
9693 w4 0x10027000,0x33F30307
9694 // CLKO Select (For testing only)
9695 // CCSR (Set CLKO_SEL = CLK32)
9696 //-Bit 4-0 CLKO_SEL 0:CLK32, 2:26MCLK 5:MPLL, 6:SPLL, 7:FCLK, 8:HCLK, A:PERCLK1, 11:MSHC_CLK
9697 w4 0x10027028,0x00000300
9698 // Disable CLKO & Set divider = 8
9699 w4 0x10027018,0x01c8f403
9700 // Configure WEIM WCR REGISTER
9701 // Bit 12 (AUS4) : 1/0 = Address unshifted / Address shifted with port size
9702 // This bit affected the address access of CPLD
9703 w4 0xd8002060,0x00000000
9704 // Configure CPLD on CS4
9705 w4 0xd8002040,0x0000DCF6
9706 w4 0xd8002044,0x444A4541
9707 w4 0xd8002048,0x44443302
9708 // Configure PSRAM on CS5
9709 w4 0xd8002050,0x0000dcf6
9710 w4 0xd8002054,0x444a4541
9711 w4 0xd8002058,0x44443302
9712 // Configure 16 bit NorFlash on CS0
9713 w4 0xd8002000,0x0000CC03
9714 w4 0xd8002004,0xa0330D01
9715 w4 0xd8002008,0x00220800
9716 // DDR RAM initialization
9720 // ESDMISC: enable DDR mode
9721 w4 0xD8001010,0x00000004
9722 // ESDCFG0: timing config
9723 w4 0xD8001004,0x006AC73A
9724 // ESDCTL0: Precharge Mode
9725 w4 0xD8001000,0x92100000
9726 // issue Precharge All command
9727 w4 0xA0000400,0x00000000
9728 // ESDCTL0: AutoRefresh Mode
9729 w4 0xD8001000,0xA2100000
9730 // issue Autorefresh command
9731 w4 0xA0000000,0x00000000
9732 w4 0xA0000000,0x00000000
9733 // ESDCTL0: Load Mode register Mode
9734 w4 0xD8001000,0xB2100000
9735 // issue Load Mode Register command
9738 // ESDCTL0: Normal Mode
9741 // Data width = 32-bit
9742 // Refresh Rate = 8192/64ms
9744 // /- 2 : 32 bit mode
9745 // /- 1 : 16 bit - D[15:00]
9746 // /- 0 : 16 bit - D[31:16]
9747 w4 0xD8001000,0x82226080
9748 // issue normal access
9749 w4 0xA0000000,0x00000000
9750 // ESDMISC: Reset Delay Line Measurement
9751 w4 0xD8001010,0x0000000C
9752 loadbin "redboot.bin" 0xa0000000
9753 //loadbin "E:\apps\redboot.bin" 0xa0000000
9754 //loadbin "C:\ivirtus\downloads\wristwatch\zImage_ilan1GB" 0xa0040000
9755 //loadbin "C:\ivirtus\downloads\wristwatch\rootfs.ext2.gz_ilan1GB" 0xa0240000
9759 Get Redboot prompt and run
9761 Get Redboot prompt and run
9766 from http://www.bitshrine.org/autodocs/LtibFaq.html
9770 --- Run interactive config
9773 --- Get list of installed packages
9774 ltib --mode listpkgs
9779 --- Start platform config w/o continue to build it after
9782 --- Get shell ready to build from ltib
9785 --- To list the installed packages
9786 ./ltib -m listpkgs | grep ' y '
9788 --- Configure the kernel
9790 Check option: Configure the kernel
9792 --- Rebuild only kernel
9793 ltib -p kernel -m scbuild
9799 make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- 'HOSTCC=/usr/bin/gcc -B/usr/bin//' zImage
9801 make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- 'HOSTCC=/usr/bin/gcc -B/usr/bin//' menuconfig
9805 cp zImage to the USB conected as zImage.upgrade
9806 same for the root.ext2.gz
9807 same for wristwatch.exe (copy as wristwatch.exe.upgrade)
9810 1. For now we are not using commandline to starting up the linux, but if you want to do so, use the RedBoot “exec”command
9812 Execute an image - with MMU off
9813 exec [-w timeout] [-b <load addr> [-l <length>]]
9814 [-r <ramdisk addr> [-s <ramdisk length>]]
9815 [-c "kernel command line"] [-t <target> ] [<entry_point>]
9818 2. In order to program the kernel / ramdisk use the following commands, in this case the 192.168.1.47 is your tftp-server:
9822 load -v -r -b 0x100000 redboot.bin
9823 nand erase -f 0x0 -l 0x40000 -o
9824 nand write -f 0x0 -b 0x100000 -l 0x40000
9826 burn zImage/ kernel image (linux):
9827 ============================
9828 load -v -r -b 0x100000 -h 192.168.1.137 watch/zImage.no_crc
9829 fis create -f 0x80000 -r 0x100000 -l 0x300000 -e 0x100000 -b 0x100000 linux
9831 burn rootfs.ext2.gz (ramdisk):
9832 ========================
9833 load -v -r -b 0x2000000 -h 192.168.1.137 watch/rootfs.ext2.gz.no_crc
9834 fis create -f 0x380000 -r 0x2000000 -l 0xA00000 -e 0x2000000 -b 0x2000000 ramdisk
9837 ip_address -l 192.168.1.155
9839 --- Set tftp server ip
9840 ip_address -h 192.168.1.137
9842 --- load kernel via modem
9843 load -r -b 0x100000 -m xmodem - (~1.6MB takes 7min or if send 1Kxmodem - 1.6MB takes 3min)
9844 load -r -b 0x100000 -m ymodem
9850 nand erase -f 0x0 -l 0x40000 -o
9851 1) connect the JTAG to the board
9852 2) run the following script in the JLink.exe windows:
9853 \\server\R&D\Running Projects\264-Watch\SW\Scripts\JLink_Burn_Redboot.txt
9855 4) fis create -f 0x380000 -r 0x2000000 -l 0xA00000 -e 0x2000000 -b 0x0240000 ramdisk
9861 nand erase -f 0x0 -l 0x40000 -o
9862 1) connect the JTAG to the board
9863 2) run the following script in the JLink.exe windows:
9864 \\server\R&D\Running Projects\264-Watch\SW\Scripts\JLink_Burn_Redboot.txt
9866 4) fis create -f 0x80000 -r 0x100000 -l 0x300000 -e 0x100000 -b 0x0040000 linux
9870 --- Update everything
9872 1) connect the JTAG to the board
9873 2) At prompt of the Redboot run: nand erase -f 0x0 -l 0x40000 -o
9875 3) run the following script in the JLink.exe windows:
9876 \\server\R&D\Running Projects\264-Watch\SW\Scripts\JLink_Burn_Redboot.txt
9877 4) must press ctrl c
9879 6) must press ctrl c
9880 7) fis create -f 0x80000 -r 0x100000 -l 0x300000 -e 0x100000 -b 0x0040000 linux
9881 8) fis create -f 0x380000 -r 0x2000000 -l 0xA00000 -e 0x2000000 -b 0x0240000 ramdisk
9887 1) connect the JTAG to the board
9888 2) run the following script in the JLink.exe windows:
9889 \\server\R&D\Running Projects\264-Watch\SW\Scripts\JLink_Burn_Redboot.txt
9892 5) fis create -f 0x80000 -r 0x100000 -l 0x300000 -e 0x100000 -b 0x0040000 linux
9893 6) fis create -f 0x380000 -r 0x2000000 -l 0xA00000 -e 0x2000000 -b 0x0240000 ramdisk
9896 On "Run script at boot:" - insert "true", enter
9901 On "Boot script timeout:" - insert "1", enter
9902 On "Use BOOTP for network configuration:" - insert "false"
9904 "Update RedBoot non-volatile configuration - continue (y/n)?" - "y"
9908 after the linux is up, prepare the UBI:
9909 =======================================
9911 1) flash_eraseall /dev/mtd/3
9912 2) ubidetach /dev/ubi_ctrl -m 3
9913 3) ubiformat /dev/mtd/3 -O 2048 -s 2048
9914 4) ubiattach /dev/ubi_ctrl -m 3 -O 2048
9915 5) ubimkvol /dev/ubi0 -N appfs -m
9916 6) mount -t ubifs ubi0:appfs /mnt/appfs
9918 7) flash_eraseall /dev/mtd/4
9919 8) ubidetach /dev/ubi_ctrl -m 4
9920 9) ubiformat /dev/mtd/4 -O 2048 -s 2048
9921 10)ubiattach /dev/ubi_ctrl -m 4 -O 2048
9922 11)ubimkvol /dev/ubi1 -N usrfs -m
9923 12)mount -t ubifs ubi1:usrfs /mnt/usrfs
9925 13)dd if=/dev/zero of=/mnt/usrfs/fat32 bs=1M count=800
9926 14)fdisk -C 12800 -H 16 -S 8 /mnt/usrfs/fat32
9928 In fdisk you need to type: n
9936 (??? modprobe g_file_storage file=/mnt/usrfs/fat32)
9938 15)connect the board to the PC using USB cable, then Quick-format for File-System FAT32
9941 -------------------------------------------------------------------------------
9942 2. In order to program the kernel / ramdisk use the following commands, in this case the 192.168.1.47 is your tftp-server:
9946 load -v -r -b 0x100000 redboot.bin
9947 nand erase -f 0x0 -l 0x40000 -o
9948 nand write -f 0x0 -b 0x100000 -l 0x40000
9950 burn zImage/ kernel image (linux):
9951 ============================
9952 load -v -r -b 0x100000 -h 192.168.1.41 zImage
9953 fis create -f 0x80000 -r 0x100000 -l 0x300000 -e 0x100000 -b 0x100000 linux
9955 burn rootfs.ext2.gz (ramdisk):
9956 ========================
9957 load -v -r -b 0x2000000 -h 192.168.1.41 rootfs.ext2.gz
9958 fis create -f 0x380000 -r 0x2000000 -l 0xA00000 -e 0x2000000 -b 0x2000000 ramdisk
9961 ip_address -l 192.168.1.133
9963 --- Set tftp server ip
9964 ip_address -h 192.168.1.41
9966 --- load kernel via modem
9967 load -r -b 0x100000 -m xmodem - (~1.6MB takes 7min or if send 1Kxmodem - 1.6MB takes 3min)
9968 load -r -b 0x100000 -m ymodem
9970 --- exchange partition
9971 fis delete redboot.version
9972 fis create -f 0x60000 -r 0x200000 -l 0x20000 -e 0x200000 -b 0x200000 exchange
9974 -------------------------------------------------------------------------------
9976 ---===<<< Starts from version 1.14 >>>===---
9978 -------------------------------------------------------------------------------
9979 wwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
9982 flash_eraseall /dev/mtd/5
9983 ubidetach /dev/ubi_ctrl -m 5
9984 ubiformat /dev/mtd/5 -O 2048 -s 2048
9985 ubiattach /dev/ubi_ctrl -m 5 -O 2048
9986 ubimkvol /dev/ubi0 -N appfs -m
9988 mount -t ubifs ubi0:appfs /mnt/appfs
9995 flash_eraseall /dev/mtd/6
9996 ubidetach /dev/ubi_ctrl -m 6
9997 ubiformat /dev/mtd/6 -O 2048 -s 2048
9998 ubiattach /dev/ubi_ctrl -m 6 -O 2048
9999 ubimkvol /dev/ubi1 -N usrfs -m
10000 mount -t ubifs ubi1:usrfs /mnt/usrfs
10003 dd if=/dev/zero of=/mnt/usrfs/fat32 bs=1M count=1700
10005 dd if=/dev/zero of=/mnt/usrfs/fat32 bs=1M count=800
10008 fdisk -C 27200 -H 16 -S 8 /mnt/usrfs/fat32
10010 fdisk -C 12800 -H 16 -S 8 /mnt/usrfs/fat32
10012 In fdisk you need to type: n
10020 modprobe g_file_storage file=/mnt/usrfs/fat32
10023 -------------------------------------------------------------------------------
10025 ---===<<< Lighter from version 1.14 >>>===---
10027 -------------------------------------------------------------------------------
10028 1. Making sure there is debug card connected to the target
10030 2. run the following script in the JLink.exe windows to burn only Redboot
10031 \\server\R&D\Running Projects\264-Watch\SW\Scripts\JLink_Burn_Redboot.txt
10036 On "Run script at boot:" - insert "true", enter
10041 On "Boot script timeout:" - insert "1", enter
10042 On "Use BOOTP for network configuration:" - insert "false"
10044 "Update RedBoot non-volatile configuration - continue (y/n)?" - "y"
10048 8. Power on the card and get Redboot prompt
10049 9. Set ip address of the target: ip_address -l 192.168.1.133
10050 10. Set IP address of the TFTP server machine: ip_address -h 192.168.1.41
10051 11. Load Kernel and burn the flash
10052 load -v -r -b 0x100000 -h 192.168.1.137 zImage
10053 fis create -f 0x80000 -r 0x100000 -l 0x300000 -e 0x100000 -b 0x100000 linux
10054 12. Load rootfs and burn the flash:
10055 load -v -r -b 0x2000000 -h 192.168.1.137 rootfs.ext2.gz
10056 fis create -f 0x380000 -r 0x2000000 -l 0xA00000 -e 0x2000000 -b 0x2000000 ramdisk
10060 load -v -r -b 0x100000 -h 192.168.1.137 redboot.bin.upgrade
10061 nand erase -f 0x0 -l 0x40000 -o
10062 nand write -f 0x0 -b 0x100000 -l 0x40000
10065 Project Sting HD {{{
10068 Current state: evl board works, saving media file on flash
10071 1. A/V sync in written file
10072 2. To start working on evl board buttons
10073 3. To add timestamp in video frame
10074 4. To add encryption of video file
10075 5. To add CRC check per frame
10076 6. To add WiFi functionality from subcontractor
10077 7. To integrate Live application
10080 1. Save video (h264) in file (avi container)
10081 2. Save audio (mp2) in file (avi container)
10084 1. EVM boot sequence from MMC
10085 2. Playback during recording
10086 3. To fix audio output
10088 5. A/V sync problem during streaming & recording> to change recording to TS file.
10091 -------------------------------------------------------------------------------
10092 ----------------------------------- Harmonic-----------------------------------
10093 -------------------------------------------------------------------------------
10095 001. MasterClock - FrontEnd feature {{{
10097 The DVBS STNIM-SAT2 card has internak clock generator, configured by
10098 setting demod (stv0288) register PLLCTRL (0x40). This generator can change
10099 master clock, which corresponds to sampling frequency.
10100 The master clock can be 100 or 135(default) MHz.
10103 The master clock parameter is part of common port config params
10104 (fe_config_t). The CLI command change the parameter and calls InitPort()
10108 002. Acquisition mode - FrontEnd feature {{{
10112 003. Input Frequency Range - FrontEnd feature {{{
10115 Add LO_type, LO_freq, FreqRange
10117 LNB Local Oscillator type - universl, wide band, Ku_band, C_band
10118 LNB Local Oscillator freq -
10119 Freq range - L_band, C_band, Ku_band
10121 --- Set LNB LO type
10123 --- Set LNB LO freq
10125 --- Set Freq Range ( value )
10126 if value==Ku_band && LO_type==C_band
10132 004. Drift compensation - FrontEnd feature {{{
10135 Add ability to compensate
10138 005. Frequency scanning {{{
10141 The freq scan algo searches for available lock in given freq range.
10142 The freq scan starts by CLI command.
10146 006. DVBS2 Dejitter w/o PCR {{{
10148 Start to de-jitter w/o PCR
10149 Current code flow {{{
10153 FeEcc3100Tuner::PowerUpInitParam()
10155 |-> Set port sym rate
10156 | |-> CalcBitRateFromSR()
10157 |-> Set port modulation
10158 | |-> CalcBitRateFromSR()
10159 |-> Set port stream ID
10160 | |-> CalcBitRateFromSR()
10162 |-> Get dejitter revision (2nd byte)
10163 |-> if rev==0x03, set FeDVBS2FPGA03_DDS=1, otherwise FeDVBS2FPGA03_DDS=0
10166 CFePortSKYPHY::CheckPort()
10167 |-> CFePortSKYPHY::Optimize_lock()
10169 | |-> CalcBitRateFromPCR() - when staying in lock, every 100ms
10173 |-> get_ReceiverStatus()
10175 | |-> part 8. If locked, update bit rate from received params
10176 | | |-> CalcBitRateFromSignalStatus()
10177 | | |-? SetBitRate2_DDS() - set rate according RF params
10178 | | |-? SetBitRate2_DDS() - set rate according to ISSY
10184 |-> RestartLockOptimize()
10185 \_> CalcBitRateFromSR() - calc bitrate from sym rate
10188 CalcBitRateFromSR() code flow {{{
10189 gets; RS_value, modulation, FastOutputRate, boolean
10190 |-> calc output bit rate from
10192 | Enable_DDS() - disable DDS
10193 | SetBitRate2_DDS()
10195 | Enable_DDS() - enable DDS
10196 |_> SetBitRate2_ECC()
10202 The CFePortSKYPHY::get_ReceiverStatus(), if FE locked, does update bitrate,
10203 according to RF params (part 8.1).
10204 But with pre-calculated error of -1000ppm, because of future bit rate update
10205 from PCR will fill the gap.
10208 In order to stop using bit rate update from PCR, also needs to stop use of this
10209 pre-calculated error of -1000ppm.
10210 The time to gain good PCR w/o jitter ~2min (on IRD also).
10212 007. Analyze of the DVBS/S2 EFS doc {{{
10213 17may2009 25may2009
10214 There are additional action items from Merav 18may2009
10217 d 1. A (efs-10) To display FE card info, stored in EEPROM (waits for HW)
10218 HW revision & version, serial nbr, card part nbr
10219 d 2. B (efs-11) Hardware monitoring (tempeature & voltage) (waits for HW)
10220 d 3. A (efs-12) To display FE card firmware: ECC & Dejitter versions.
10221 d 4. A (efs-13) Upgrade Dejitter FPGA (waits for HW)
10222 d 5. A (efs-14) Ability to switch on 27MHz clock source local/host
10223 d 6. A (efs-15) The FE card (any card) registration procedure (waits for Arik)
10225 --- Performance {{{
10226 d 1. A (efs-21) Sensitivity ??? (what)
10227 d 2. A (efs-22) Input return loss ??? (what)
10228 d 3. A (efs-23) Noise figure at max gain ??? (what)
10229 d 4. A (efs-24) Error performance (appendix A) ??? (no info)
10230 d 5. A (efs-25) Phase noise ???
10232 26.1. Change to DVBS2 de-jitter w/o PCR
10233 26.3. Check w/ ETR-290 ???
10234 26.4. Ignore ISSY ??? (to check how it deals w/ ISSY)
10235 7. A (efs-27) Time to lock - 20sec (if not???)
10236 27.1 Preconfigured in acquisition mode immediate - 5 sec
10237 8. A (efs-28) Lock in VCM mode w/ changed params: MODCOD, pilots, frame size
10240 28.3 change frame size
10242 --- Configuration {{{
10243 d 1. A (efs-41) How to Enable/disable port? (waits for Spartan)
10244 Ability from main board spartan to close streaming
10245 toward MUX (Merav 19may2009)
10246 * 2. A (efs-42) LNB params
10247 Check ranges, default values and step sizes
10248 default = eFeLnbBandLow, eFeLnbPolarNotApplic
10249 * 3. A (efs-43) Set freq
10250 D default = 1000000
10251 Check ranges, step size
10252 + 4. A (efs-44) drift comp
10254 d 44.4 B Keep the result offset in db?
10255 * 5. A (efs-45) Acquisition mode
10257 D 45.2 Wide search - +-25% of symbol rate
10258 6. A (efs-46) Freq scan
10260 46.2 A Separate meeting for InBand scanning (see below)
10261 7. A (efs-47) Set sym rate to check:
10262 default values (27500000)
10263 range (1000000 - 45000000)
10264 step size (10sym from Merav 19may2009)
10265 d 8. A (efs-48) Add automatic spectral inversion in DVBS
10266 d 9. A (efs-49) (Defined for EMS)
10267 Set modulation std (DVBS or DVBS2) w/o framesize & FEC
10268 To change setup values while mode changes?
10269 (rolloff, pilots, frame size, etc)
10270 10. A (efs-50) Set rolloff
10271 Check default value for DVBS2 (0.20)
10272 d 11. A (efs-51) (Defined for EMS)
10273 Set MODCOD together?
10274 To check if MOD has proper FEC?
10275 d 12. A (efs-52) Set frame size (Defined for EMS)
10276 13. A (efs-53) Check that pilots default param is on (DVBS2)
10277 53.2 B In VCM can't change the param
10278 14. A (efs-54) Check scramble seed default value & range
10279 15. A (efs-55) The default value for master clock is 100MHz
10282 1. A (efs-71) Enable status when port enabled
10283 71.1 B Disbale status when disabled port
10284 2. A (efs-72) Status
10285 Provides: Carrier, Demod
10286 Check if no Carrier lock, so Demod is also unlocked
10287 3. A (efs-73) Params to show in status
10302 1. (efs-80) Card HW failure alarm
10303 2. (efs-81) Temperature exceeds limit alarm
10304 3. (efs-82) Voltage error alarm
10305 4. (efs-83) Input bitrate exceeded limit alarm
10306 5. (efs-??) Carrier not detected alarm
10307 6. (efs-84) Demodulation failure alarm
10308 7. (efs-85) BER too high alarm
10309 8. (efs-86) Link margin too low
10312 Common system tasks, derived from above
10313 1. To investigate FrontPanel abilities
10314 2. To redesign IRP hardware registration procedure
10315 3. The alarms implemetation waits for additional doc
10318 Summary from meeting on frequency scanning (InBand) {{{
10320 1. The CLI command starts scanning
10321 2. FE manager clean local buffer for scanning results
10322 3. Calls to stop receiving NIT
10323 4. Locks on certain freq
10324 5. Calls to start receiving NIT
10325 6. Polling each sec (for 12secs) for new NIT
10326 7. Keeps all data in table w/ index (look efs-46)
10327 8. The CLI cmd to stop the scanning
10328 9. The CLI cmd to get current status of scanning
10329 10. The CLI cmd to get current status (w/ index) of scanning
10332 008. Frequency scanning & Acquisition mode {{{
10335 w/o Scanning, only Acquisition
10337 1. Limited (Scan&Lock) scanning
10340 009. Get params per parameter {{{
10342 Ability to get each config param by separate call from CLI.
10345 010. To define FrontEnd web interface parameters {{{
10348 wget --no-proxy -t 1 -O req.txt http://192.168.0.10/request.esp\?req=CFG_ATTR_SET_FE_CONFIG_FRAMESIZE\&cnt=1\&p0=0 && cat ./req.txt
10350 http://192.168.0.10/request.esp?req=CFG_ATTR_GET_FE_CONFIG_FREQUENCY&cnt=1&p0=1
10352 Getting setup parameters
10354 CFG_ATTR_GET_FE_CONFIG_FREQUENCY
10355 CFG_ATTR_GET_FE_CONFIG_SYMRATE
10356 CFG_ATTR_GET_FE_CONFIG_FECRATE
10357 CFG_ATTR_GET_FE_CONFIG_SPECTRINV
10358 CFG_ATTR_GET_FE_CONFIG_DRIFTCOMP
10359 CFG_ATTR_GET_FE_CONFIG_LNBPOLARITY
10360 CFG_ATTR_GET_FE_CONFIG_LNBBAND
10361 CFG_ATTR_GET_FE_CONFIG_DVBMODE
10362 CFG_ATTR_GET_FE_CONFIG_ROLLOFF
10363 CFG_ATTR_GET_FE_CONFIG_PILOTS
10364 CFG_ATTR_GET_FE_CONFIG_SCRSEED
10365 CFG_ATTR_GET_FE_CONFIG_LNBLOTYPE
10366 CFG_ATTR_GET_FE_CONFIG_LNBLOFREQ
10367 CFG_ATTR_GET_FE_CONFIG_FREQRANGE
10368 CFG_ATTR_GET_FE_CONFIG_ACQUISITION
10369 CFG_ATTR_GET_FE_CONFIG_MASTERCLOCK
10371 011. To define get/set MODCOD {{{
10373 QPSK | 8PSK | 16APSK
10374 ----------------------|----------
10388 wget --no-proxy -t 1 -O req.txt http://192.168.0.10/request.esp\?req=CFG_ATTR_GET_FE_CONFIG_SPECTRINV\&cnt=1\&p0=1
10391 012. Syslog stops output on console {{{
10393 If start to print lots of log messages syslog stops to log output to console.
10395 Checked syslog configured w/ redirection to 2 ip and console. In heavy load, stops output to console, but
10396 keep sending to remote machines.
10397 Conslusion: the problem in /dev/console, which stops to send to serial driver.
10398 During the work change syslogd to new version 1.5
10402 013. Setup ability to produce coredump {{{
10404 To add in /etc/profile folows line:
10405 ulimit -c unlimited
10406 Add follow to /etc/init.d/rcS
10407 echo 1 > /proc/sys/kernel/core_uses_pid
10408 echo /mnt/flash/corefiles/core-%e-%p > /proc/sys/kernel/core_pattern
10410 It will create coredump files of pattern /mnt/flash/corefiles/core-<name>-,pid>
10412 014. Using remote debugging {{{
10414 Run irpd.elf and take pid of FePriThread
10416 gdbserver 192.168.0.1:7000 --attach 1059
10417 where 192.168.0.1 is addr to accept from and 7000 is port
10419 ./linux-add-ons/scripts/gdb.sh /opt/ppc405/irp10/irpd.elf 192.168.0.10
10420 where 192.168.0.10 is addr to connect
10421 Get gdb prompt and push "n". this will bring to attached thread
10424 015. User management {{{
10427 --- 01. To create 3 predefined users
10429 uname passwd user level
10430 ----------------------------------
10431 harmonic tpi2s4u 0 root
10432 configure configure 123 configure
10433 minitor monitor 153 monitor
10435 --- 02. User harmonic the only one has access to cli and ftp.
10437 --- 03. Ability to change user password from CLI & web
10439 /config/unit/user/change <username> <password>
10440 http://192.168.0.10/request.esp?req=CFG_ATTR_USER_CHG_PSSWD&cnt=2&str_cnt=1&s0=harmonicscopus&p0=8&p1=6
10442 --- 04. Cli & web option to set default passwords for users configure & monitor
10444 /config/unit/user/set2def
10445 http://192.168.0.10/request.esp?req=CFG_ATTR_USER_SET2DEF&cnt=0
10447 --- 05. User authentication from Cli & web
10449 /config/unit/user/change <username> <password> <userlevel>
10450 http://192.168.0.10/request.esp?req=CFG_ATTR_USER_AUTHEN&cnt=3&str_cnt=1&s0=harmonicscopusroot&p0=8&p1=6&p2=4
10453 Using of old password in user password change API
10454 /config/unit/user/change <username> <old_password> <new_password>
10455 http://192.168.0.10/request.esp?req=CFG_ATTR_USER_CHG_PSSWD&cnt=3&str_cnt=1&s0=harmonicscopusasdf&p0=8&p1=6&p2=4
10457 Password encryption
10459 Using project GnuPG (1.4.9):
10460 ./configure CC=ppc_405-gcc --host=ppc-linux --build=i386-linux --enable-minimal --disable-asm
10465 gprof, callgrind, oprofile
10467 gprof - not support multithreaded application
10469 Full irpd - 54460kB
10472 Telnet client problems {{{
10474 The connection between IRP telnet client and Hadas problematic, because telnet
10475 client has "local echo" and "line editing". The backspace should be not Ctl-H
10477 Add file /etc/telnetrc with follows:
10489 [~]$ Jun 16 19:55:03 (none) IRP: MUX: /RT_THRD/198/0 main rt_thrd clk_diff(6) > (+/-5).
10490 Jun 16 19:55:04 (none) IRP: UnitMngr: Detected 0 CAM slots, but motherboard has 2 CAM slots
10491 Jun 16 19:55:04 (none) IRP: LcMngr: Licensed feaures set: FFFFFFFFFFFFFFFF
10492 Jun 16 19:55:04 (none) IRP: MUX: /RT_THRD/198/0 main rt_thrd clk_diff(10) > (+/-5).
10493 Jun 16 19:55:05 (none) IRP: MUX: /RT_THRD/198/0 main rt_thrd clk_diff(6) > (+/-5).
10494 Jun 16 19:55:05 (none) IRP: FeMngr: Start the manager
10496 Jun 16 19:55:06 (none) IRP: FeMngr: IRP FrontEnd input cfg: 1
10497 Jun 16 19:55:07 (none) IRP: EvntMngr: DB: Cannot read alarm configuration for alarm: Ethernet Port Link Down on GbE Port 3, error: Data not f
10499 Jun 16 19:55:08 (none) IRP: MUX: /RT_THRD/198/0 main rt_thrd clk_diff(10) > (+/-5).
10500 Jun 16 19:55:08 (none) IRP: FeMngr: virtual bool CFeDVBS2_ECC::Init()>
10501 Jun 16 19:55:08 (none) IRP: FeMngr: 1 1527000 27500000 1 0 1 0 2 1 0 0 11 1 0 0 0 0 0
10502 Jun 16 19:55:08 (none) IRP: FeMngr: SetActivePort> Set active port to 1
10503 Jun 16 19:55:08 (none) IRP: FeMngr: virtual int CFePortSKYPHY::InitPort()>
10504 Jun 16 19:55:08 (none) IRP: FeMngr: Init>
10505 Jun 16 19:55:08 (none) IRP: FeMngr: Init> TUNER soft reset
10506 Jun 16 19:55:08 (none) IRP: FeMngr: Init> TUNER reg (12-13) = F02A
10507 Jun 16 19:55:08 (none) IRP: FeMngr: Init> TUNER set all regs
10508 Jun 16 19:55:08 (none) IRP: FeMngr: Init> TUNER reg (02-03) = 04B3
10509 Jun 16 19:55:08 (none) IRP: FeMngr: Init> TUNER reg (04-05) = 816D
10510 Jun 16 19:55:08 (none) IRP: FeMngr: Init> TUNER reg (06-07) = C020
10511 Jun 16 19:55:08 (none) IRP: FeMngr: Init> TUNER reg (08-09) = D730
10512 Jun 16 19:55:08 (none) IRP: FeMngr: Init> TUNER reg (10-11) = E36B
10513 Jun 16 19:55:08 (none) IRP: FeMngr: Init> TUNER reg (12-13) = F028
10514 Jun 16 19:55:08 (none) IRP: FeMngr: Init> TUNER set LO window to unlock
10515 Jun 16 19:55:08 (none) IRP: FeMngr: Init> TUNER reg (10-11) = E3F9
10516 Jun 16 19:55:08 (none) IRP: FeMngr: Ecc3100_LoadLUTs>
10517 Jun 16 19:55:08 (none) IRP: FeMngr: Demodulator Configuration LUT W...
10518 Jun 16 19:55:09 (none) IRP: FeMngr: Decoder 8PSK LLR LUT W...
10519 Jun 16 19:55:13 (none) IRP: FeMngr: Decoder 16PSK LLR LUT W...
10520 Jun 16 19:55:18 (none) IRP: FeMngr: Decoder LDPC LLR LUT W...
10521 Jun 16 19:55:27 (none) IRP: FeMngr: Ecc3100_InitRegs>
10522 Jun 16 19:55:27 (none) IRP: FeMngr: Ecc3100_InitTransProcRegs>
10523 Jun 16 19:55:27 (none) IRP: FeMngr: virtual int CFePortSKYPHY::SetPortFreq(long unsigned int)>
10524 Jun 16 19:55:27 (none) IRP: FeMngr: virtual int CFePortSKYPHY::SetPortFreq()> Freq setup 1527000
10525 Jun 16 19:55:27 (none) IRP: FeMngr: set_Frequency> TUNER FREQ (kHz): W 1527000 P 12216 T 1527000.000000
10526 Jun 16 19:55:27 (none) IRP: FeMngr: int CFePortSKYPHY::SetPortSymRate()>
10527 Jun 16 19:55:27 (none) IRP: FeMngr: Sym rate setup 27500000
10528 Jun 16 19:55:27 (none) IRP: FeMngr: SymRate PRMS: WSymRt = 27500000 (baud), PSymRt = 27499999 (baud), DSymRt = 27499.999000 (Kbaud), NCO_St
10530 Jun 16 19:55:27 (none) IRP: FeMngr: SYM_ACQ_CONFIG2 (0C28) = 003425ED
10531 Jun 16 19:55:27 (none) IRP: FeMngr: EQ_CONFIG1 (0C00) = 1000210F
10532 Jun 16 19:55:27 (none) IRP: FeMngr: F_CTRL_CONFIG6 (0C1C) = 00000684
10533 Jun 16 19:55:27 (none) IRP: FeMngr: F_CTRL_CONFIG7 (0C20) = 0029B7F0
10534 Jun 16 19:55:27 (none) IRP: FeMngr: HDR_PROC_CONFIG2 (0C38) = 00800080
10535 Jun 16 19:55:27 (none) IRP: FeMngr: set_TunerBandwidth> TUNER_BandWidth: 23203 (Kbaud)
10536 Jun 16 19:55:27 (none) IRP: FeMngr: set_TunerBandwidth> BF = 50
10537 Jun 16 19:55:27 (none) IRP: FeMngr: set_TunerBandwidth> ZIF REG(06-07) = C064
10538 Jun 16 19:55:27 (none) IRP: FeMngr: set_TunerBandwidth> BR = 17
10539 Jun 16 19:55:27 (none) IRP: FeMngr: set_TunerBandwidth> ZIF REG(12-13) = F044
10540 Jun 16 19:55:27 (none) IRP: FeMngr: set_TunerBandwidth> ZIF REG(06-07) = C864
10541 Jun 16 19:55:27 (none) IRP: FeMngr: End SR settings
10542 Jun 16 19:55:27 (none) IRP: FeMngr: CalcBitRateFromSR> bit rate 72000000 sym rate 27499.999000
10543 Jun 16 19:55:27 (none) IRP: FeMngr: DJXLX_DDS_FREQ: DISABLE
10544 Jun 16 19:55:27 (none) IRP: FeMngr: New SR-Restart DJXLX_DDS_FREQ: Request=72000000.000000, N=0003, R=000000 -> Rate=72000000.000000
10545 Jun 16 19:55:27 (none) IRP: FeMngr: DJXLX_DDS_FREQ: ENABLE
10546 Jun 16 19:55:27 (none) IRP: FeMngr: SetBitRate2_ECC> ECC_CCM_FREQ: 72000000
10547 Jun 16 19:55:27 (none) IRP: FeMngr: SetBitRate2_ECC> CCM_FREQ (412C) = 44444444
10548 Jun 16 19:55:27 (none) IRP: FeMngr: int CFePortSKYPHY::SetPortSpectrInv()>
10549 Jun 16 19:55:27 (none) IRP: FeMngr: int CFePortSKYPHY::SetPortRollOff()>
10550 Jun 16 19:55:27 (none) IRP: FeMngr: SetPortRollOff> RollOff setup 0.35
10551 Jun 16 19:55:27 (none) IRP: FeMngr: SetPortRollOff> SYM_ACQ_CONFIG_1 (0C24) = 7F1F0001
10552 Jun 16 19:55:27 (none) IRP: FeMngr: int CFePortSKYPHY::SetPortFecRate()>
10553 Jun 16 19:55:27 (none) IRP: FeMngr: SetPortFecRate> FEC setup 2/3
10554 Jun 16 19:55:27 (none) IRP: FeMngr: SetPortFecRate> HDR_PROC_CONFIG1 (0C34) = 00001601
10555 Jun 16 19:55:27 (none) IRP: FeMngr: int CFePortSKYPHY::SetPortModulation()>
10556 Jun 16 19:55:27 (none) IRP: FeMngr: Mode setup SetPortModulation
10557 Jun 16 19:55:27 (none) IRP: FeMngr: SetPortModulation> HDR_PROC_CONFIG1 (0C34) = 00001601
10558 Jun 16 19:55:27 (none) IRP: FeMngr: CalcBitRateFromSR> bit rate 72000000 sym rate 27499.999000
10559 Jun 16 19:55:27 (none) IRP: FeMngr: DJXLX_DDS_FREQ: DISABLE
10560 Jun 16 19:55:27 (none) IRP: FeMngr: New SR-Restart DJXLX_DDS_FREQ: Request=72000000.000000, N=0003, R=000001 -> Rate=71999997.600000
10561 Jun 16 19:55:27 (none) IRP: FeMngr: DJXLX_DDS_FREQ: ENABLE
10562 Jun 16 19:55:27 (none) IRP: FeMngr: SetBitRate2_ECC> ECC_CCM_FREQ: 72000000
10563 Jun 16 19:55:27 (none) IRP: FeMngr: SetBitRate2_ECC> CCM_FREQ (412C) = 44444444
10564 Jun 16 19:55:27 (none) IRP: FeMngr: int CFePortSKYPHY::SetPortPilots()>
10565 Jun 16 19:55:27 (none) IRP: FeMngr: SetPortPilots> Pilots setup OFF
10566 Jun 16 19:55:27 (none) IRP: FeMngr: SetPortPilots> HDR_PROC_CONFIG1 (0C34) = 00001601
10567 Jun 16 19:55:27 (none) IRP: FeMngr: int CFePortSKYPHY::SetPortScrSeed()>
10568 Jun 16 19:55:28 (none) IRP: FeMngr: SetPortScrSeed> Scrambling seed setup 0
10569 Jun 16 19:55:28 (none) IRP: FeMngr: SetPortScrSeed> Rn: XR0 = 00001, YR0 = 00001, XR1 = 08050, YR1 = 0FF60
10570 Jun 16 19:55:28 (none) IRP: FeMngr: ifFeDrvCtl> addr 0x74 values 0x10 00 00 03
10571 Jun 16 19:55:28 (none) IRP: FeMngr: Dejitter firmware revision 00 00
10572 Jun 16 19:55:28 (none) IRP: FeMngr: virtual int CFePortSKYPHY::InitPort()> inited
10573 Jun 16 19:55:28 (none) IRP: FeMngr: int CFeDVBS2_ECC::InitSetLnb() 596>
10574 Jun 16 19:55:28 (none) IRP: FeMngr: virtual int CFePortSTNIM_SAT2::InitPort()>
10575 Jun 16 19:55:28 (none) IRP: FeMngr: stv0288 SAMPLING FREQUENCY = 135 MHz
10576 Jun 16 19:55:28 (none) IRP: FeMngr: void set_LNB_mode(FeLnbPolarization_E, FeLnbBand_E)>
10577 Jun 16 19:55:28 (none) IRP: FeMngr: virtual int CFePortSTNIM_SAT2::SetPortSymRate(long unsigned int)>
10578 Jun 16 19:55:30 (none) IRP: FeMngr: virtual int CFePortSTNIM_SAT2::SetPortFreq(long unsigned int)>
10579 Jun 16 19:55:30 (none) IRP: FeMngr: virtual int CFePortSTNIM_SAT2::InitPort()> inited
10580 Jun 16 19:55:30 (none) IRP: FeMngr: virtual int CFePortSTNIM_SAT2::SetLnb() 542>
10581 Jun 16 19:55:30 (none) IRP: FeMngr: int CFeDVBS2_ECC::SetLnb()>
10582 Jun 16 19:55:31 (none) IRP: FeMngr: FeMngrPrimaryThread> FE card initialized
10583 Jun 16 19:55:31 (none) IRP: MUX: /RT_THRD/198/0 main rt_thrd clk_diff(11) > (+/-5).
10584 Jun 16 19:55:31 (none) IRP: MUX: /MUX/2819/0 Mux cycle_tm mili(22.76) (227.62 %) (6828486/3000000) max(227.62 %).
10585 Jun 16 19:55:31 (none) IRP: MUX: /RT_THRD/198/0 main rt_thrd clk_diff(9) > (+/-5).
10586 Jun 16 19:55:31 (none) IRP: FeMngr: FrontEnd - Search Algorithm is LOCK
10587 Jun 16 19:55:31 (none) IRP: FeMngr: Signal (Start-1000ppm) Parameters DJXLX_DDS_FREQ: Request=54413494.000000, N=0003, R=93F324 -> Rate=544
10589 Jun 16 19:55:44 (none) IRP: CONT_MNGR: in contMngrTableNitReceived for 5
10590 Jun 16 19:55:57 (none) IRP: FeMngr: PCR (-10ppm) Monitor DJXLX_DDS_FREQ: Request=54466954.000000, N=0003, R=935AF1 -> Rate=54466954.734657
10592 Monitor DDS output {{{
10597 DVBS2,8psk,2/3,1527000 (Ku 12127) 27.5, 35%, off, ver, low
10599 1. Change freq to unlock n after to lock, wait 5sec n check status
10600 2. Change sym rate to unlock n after to lock, wait 5sec n check status
10603 Frequency scanning & Acquisition mode {{{
10605 Acq mode range gives +/- 25% of sym rate to freq
10607 sym rate 15000000 / 12 = 1250000 Hz
10608 freq 1100000 kHz + 1250 kHz = 1101250 kHz
10610 The Acq mode range on sym rate 15Msps gives +/-5MHz for zig-zag algo
10611 The Acq mode range on sym rate 5Msps gives +/-1.25MHz for zig-zag algo
10614 Enc Ellipse 1000, ver 2.7.0.1, DVBS2, 8psk, 5/6, 35%, pilots on, frame normal:
10615 (freqs 1101000, 1100500 and 1100200), (LNB power (dBm) -30,-50), (Sym rate (Msps) 15)
10616 --------- -------------------------- --------------------------
10617 | IRD(1.92.3) - 1095000 | IRP(03jun2009) - 1095000 |
10618 ---------------------------------------------------------------
10619 Acq | range | timing | range | timing |
10620 |-------------|------------|-------------|------------|
10621 Scan | no | yes | no | yes | no | yes | no | yes |
10623 Locking | | | | | | | | |
10624 Range | no | no | no | no | no | no | no | no |
10625 --------- -------------------------- --------------------------
10627 Enc Ellipse 1000, ver 2.7.0.1, DVBS2, 8psk, 5/6, 35%, pilots on, frame normal:
10628 (freqs 1100200), (LNB power (dBm) -50), (Sym rate (Msps) 5)
10629 --------- -------------------------- --------------------------
10630 | IRD(1.92.3) - 1095000 | IRP(03jun2009) - 1095000 |
10631 ---------------------------------------------------------------
10632 Acq | range | timing | range | timing |
10633 |-------------|------------|-------------|------------|
10634 Scan | no | yes | no | yes | no | yes | no | yes |
10636 Locking | | | | | | | | |
10637 Range | no | no | no | no | no | no | no | no |
10638 --------- -------------------------- --------------------------
10640 Enc Ellipse 1000, ver 2.7.0.1, DVBS2, 8psk, 5/6, 35%, pilots on, frame normal:
10641 (freqs 1097000), (LNB power (dBm) -50), (Sym rate (Msps) 5)
10642 --------- -------------------------- --------------------------
10643 | IRD(1.92.3) - 1095000 | IRP(03jun2009) - 1095000 |
10644 ---------------------------------------------------------------
10645 Acq | range | timing | range | timing |
10646 |-------------|------------|-------------|------------|
10647 Scan | no | yes | no | yes | no | yes | no | yes |
10649 Locking | | | | | | | | |
10650 Range | no | no | no | no | no | no | no | no |
10651 --------- -------------------------- --------------------------
10652 Expected results: range
10655 Freq Scan entire band {{{
10657 According to efs-46.2
10659 While found freq to lock, follow parameters will be saved :
10660 Freq(Lband) , Network name, MODCOD, frame size, pilots
10663 6. Add 2nd flash chip {{{
10664 Follows kernel boot messages
10665 xilinx_iic.0 #0 at 0x80080000 mapped to 0xCB0A0000, irq=1
10666 xilinx_iic.1 #1 at 0x80090000 mapped to 0xCB0C0000, irq=7
10667 xilinx_iic.2 #2 at 0x800A0000 mapped to 0xCB0E0000, irq=8
10668 redwood: flash mapping: 8000000 at b0000000
10669 IBM Redwood: Found 1 x16 devices at 0x0 in 16-bit bank
10670 Amd/Fujitsu Extended Query Table at 0x0040
10671 IBM Redwood: CFI does not contain boot bank location. Assuming top.
10672 number of CFI chips: 1
10673 cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
10674 Creating 9 MTD partitions on "IBM Redwood":
10675 0x00000000-0x00040000 : "Spartan"
10676 0x00040000-0x002e0000 : "FpgaGold"
10677 0x002e0000-0x00580000 : "FpgaNorm"
10678 0x00800000-0x00900000 : "Bootloader"
10679 0x00920000-0x01d20000 : "Kernel"
10680 0x01d40000-0x04540000 : "USR"
10681 0x04560000-0x04f60000 : "EMS"
10682 0x04f80000-0x06380000 : "JRE"
10683 0x08000000-0x0a800000 : "UPGRADE"
10685 The line nbr 5 happened at drivers/mtd/chips/cfi_probe.c
10690 4xDVBS2 (Ayecka) {{{
10692 P:\RnD\IRD\Avi\DVBS2\Ayecka\
10696 -------------------------------------------------------------------------------
10697 ----------------------------------- Scopus ------------------------------------
10698 -------------------------------------------------------------------------------
10700 001. PSI table parser and generator {{{
10703 svn checkout svn://svn.videolan.org/libdvbpsi/trunk 25may2007
10705 ./bootstrap && make && make install
10706 Table parser comparison {{{
10707 1. Supported tables
10708 2. Supported descriptors
10709 3. SET-like interface w/ DB
10710 4. Recieves section
10711 5. Table validation
10712 6. Code portability
10713 7. Table builder code
10717 | IVG | DVBPSI | IRD | MUX |
10718 --------------------------------------------------------
10719 PAT | x | x | x | x |
10720 PMT | x | x | x | x |
10721 SDT | x A| x | x | x |
10722 EIT | - | x | - | x |
10723 NIT | x A| x | x | - |
10724 CAT | x | - | x | x |
10725 ECM | - | - | x | - |
10726 TDT | - | - | x | - |
10727 TOT | - | - | x | - |
10729 A - near future release (~2 month)
10732 | IVG | DVBPSI | IRD | MUX | remarks
10733 -----------------------------------------------------------------------------
10734 VideoStream | - | x | - | | MPEG
10735 AudioStream | - | x | - | | MPEG
10736 Hierarchy | - | x | - | | MPEG
10737 Registration | - | x | x | | MPEG
10738 TargetBackgroundGrid | - | x | - | | MPEG
10739 VideoWindow | - | x | - | | MPEG
10740 ConditionalAccess | - A| x | x | | MPEG
10741 ISO639Language | - A| x | x | | MPEG
10742 SystemClock | - | x | - | | MPEG
10743 MultiplexBuffUtilization| - | x | - | | MPEG
10744 Copyright | - | x | - | | MPEG
10745 MaximumBitrate | - | x | - | | MPEG
10746 PrivateDataIndicator | - | x | x | | MPEG
10747 STD | - A| - | x | | MPEG
10748 Stuffing | - | x | - | | DVB
10749 BouquetName | - | x | - | | DVB
10750 Service | - A| x | x | | DVB
10751 ShortEvent | - | x | - | | DVB
10752 ExtendedEvent | - | x | - | | DVB
10753 StreamIdentifier | - | x | - | | DVB
10754 ParentalRating | - | x | - | | DVB
10755 Teletext | - | x | x | | DVB
10756 Subtitling | - | x | x | | DVB
10757 NetworkName | - A| - | x | | DVB
10758 SatelliteDeliverySystem | - A| - | x | | DVB
10759 CableDeliverySystem | - A| - | - | | DVB
10760 TerrestrialDeliverySys | - A| - | - | | DVB
10761 PrivateDataSpecifier | - | - | x | | DVB
10762 DataBroadcast | - | - | x | | DVB
10763 DataBroadcastId | - | - | x | | DVB
10764 VBIData | - | - | x | | DVB
10765 VBITeletext | - | - | x | | DVB
10766 FrequencyList | - A| - | - | | DVB
10767 LocalTimeOffsetList | - A| - | - | | DVB
10768 IrdSwdl | - | - | x | | Scopus
10769 Ac3 | - | - | x | | ATSC
10770 AtscAc3 | - | - | x | | ATSC
10772 A - copies descriptor with ability to read its tag.
10774 (3), (4), (5), (6), (7), (8)
10775 | IVG | DVBPSI | IRD | MUX |
10776 -----------------------------------------------------------------------------
10777 SET-like interface | - | - | x | - |
10778 Recieve sections | x C| - D| x | - E|
10779 Validation | x | x | x | x |
10780 Portability | x | x | x A| - F|
10781 Table generator | x | x | - | - |
10782 Modularity | - B| x | - B| - |
10784 A - usage of vxworks api, demuxer specialized filter
10785 B - no modules, but sorted source code
10786 C - exist additional module, which aggregates packets
10788 E - assemble section if needed
10789 F - usage of assembler code
10791 Additional points to consider:
10792 * Future updates from IVG projects
10793 * The IVG solution contains built-in features, like to inform routing engine
10794 about each ECM added or dropped.
10795 * Approval for usage code w/ GPLv2 license in case of DVBPSI
10798 Conclusion: The solution will done in MUX code by Micha.
10800 002. IRP env changes {{{
10802 To introduce 2 variables IRP_SRC and IRP_TOOLS, point to local copy of IRP
10803 source and Montavista tools.
10805 Changelist = 26666,26670,26679
10806 Changed files in order to add IRP_SRC and IRP_TOOLS:
10807 linux-add-ons/scripts/buboot.sh
10808 linux-add-ons/scripts/env-pro-ppc-405
10809 linux-add-ons/scripts/kernelscripts/kernelb.sh
10810 linux-add-ons/scripts/kernelscripts/kernelm.sh
10811 montavista/devrocket2.0/dev/ml405-bsp/Makefile"
10812 linux-add-ons/scripts/kernelapp.sh
10813 linux-add-ons/scripts/kernelapp/webserver.sh
10814 linux-add-ons/scripts/kernelapp/openrdate.sh
10815 linux-add-ons/scripts/kernelapp/snmp.sh
10816 linux-add-ons/scripts/kernelapp/ftp.sh
10817 linux-add-ons/scripts/irpsys.sh
10818 linux-add-ons/scripts/kernelscripts/kernelc.sh
10819 linux-add-ons/scripts/mvram.sh
10820 linux-add-ons/scripts/libs.sh
10822 linux-add-ons/scripts/libs/sqlite.sh
10823 linux-add-ons/scripts/libs/readline.sh
10824 linux-add-ons/scripts/libs/cli_engine.sh
10826 dev/sw/scripts/b.sh
10828 dev/sw/scripts/irpapp.mak
10829 dev/sw/scripts/irplib.mak
10831 dev/sw/cfgmgr/cfgmgr.mak
10833 dev/sw/common/common.mak
10834 dev/sw/osutils/osutils.mak
10835 dev/sw/ts_processor/ts_processor.mak
10837 dev/sw/pcTools/libXmlBuild.sh
10838 dev/sw/pcTools/cliXmlBuild.sh
10839 linux-add-ons/scripts/ramdisk.sh
10841 added 26jun2007 (changelist 27058)
10842 dev/sw/eeprom/eeprom.mak
10844 003. IRP build w/o root permissions {{{
10847 kernelapps - webserver, openrdate, snmpd, ftp
10850 add p4-env.src, log.sh, string.sh
10851 irpsys.sh, env-pro-ppc-405
10854 004. IRP application start up process {{{
10856 The application start up process (ASP) is part of IRP boot sequence, trigerred
10857 at final stage of OS booting. ASP ends while IRP inserted control loop.
10859 HighLevel flow for application start up process:
10860 1. Main application init (MAI) - init of the main control modules
10861 2. Database init (DBI)
10862 3. Hardware init (probing, checking and insering to db) (HWI)
10863 4. License authentication (LAU)
10864 5. Application modules init (AMI)
10866 3. Hardware init {{{
10868 The list of devices/buses to discover
10875 5. Application modules init (AMI) {{{
10877 List of the app modules
10879 Main Control modules
10881 - Configuration manager
10883 - Dynamic Data manager
10887 - License authentication module
10888 - User permissions module
10889 Datapath (data processing) modules
10890 - Transport Stream (TS) processor
10892 - Descryption manager
10904 dev/documents/Software/SNMP/IrpHwStructEntityMib.doc
10906 The list of tables to prepare for:
10907 entPhysicalTable (Entity MIB v2) 1.3.6.1.2.1.47.1.1.1
10908 ifTable (IF MIB v2)
10909 ifStackTable (IF MIB v2) 1.3.6.1.2.1.31.1.2
10910 entAliasMappingTable (Entity MIB v2) 1.3.6.1.2.1.47.1.3.2
10913 Status: (start 20sep2007) Dday
10914 x 1. Launcher init 4
10915 x 2. Database init 4 26sep
10916 x 3. CfgMngr init -
10917 x 4. Hardware Mngr init 3 7oct
10918 x 5. Data validation 4 10oct
10919 i 6. Security group 5 21oct
10920 i 7. SNMP-like db 10 28oct (18oct)
10921 x 8. Data path group 1 11nov
10922 x 9. Management group 1 12nov
10925 א 16 =23 =30 = 7 x14 =21 =28 = 4 =11
10926 ב 17 =24 = 1 = 8 x15 =22 =29 = 5 =12
10927 ג 18 =25 = 2 = 9 =16 =23 =30 = 6 =13
10928 ד 19 -26 - 3 =10 =17 =24 =31 = 7 =14
10929 ה =20 27 4 x11 =18 =25 = 1 = 8 =15
10930 ו 21 28 5 12 19 26 2 9 16
10931 ש 22 29 6 13 20 27 3 10 17
10934 005. irp versioning{{{
10936 The idea is to place versions into binary file, which can be read by utility
10937 (running on windows) in order to display versions.
10939 Create ver.h with macro to init structure and display the data. The structure
10940 has attribute which place it in special section ".version" in order to have
10941 reader able to read this data from executable on Linux|Windows.
10944 const char *description;
10945 const char *version;
10946 const char *creation_date;
10947 const char *creation_time;
10948 } __attribute__ ((aligned(1)));
10950 #define INIT_VER( var, desc, mj, mn, pt) \
10951 volatile struct ver_info var __attribute__ \
10952 ((section(".version"))) = { #desc, mj"."mn"."pt, __DATE__, __TIME__ }
10954 #define DUMP_VER(name) \
10955 printf("%s\n\tVersion:\t%s\n\tCreation Date:\t%s\n\tCreation Time:\t%s\n", \
10956 name.description, name.version, name.creation_date, name.creation_time)
10960 Because linker will store in .version section only pointers to strings while
10961 those will be placed at .rodata section - the new solution will force them to
10962 be in .version section.
10966 char *major_version;
10967 char *minor_version;
10968 char *patch_version;
10969 char *creation_date;
10970 char *creation_time;
10971 } __attribute__ ((aligned(1)));
10973 #define INIT_VER( var, desc, mj, mn, pt) \
10974 static char description[] __attribute__ ((section(".version"))) = #desc; \
10975 static char mj_ver[] __attribute__ ((section(".version"))) = "major_version - "mj; \
10976 static char mn_ver[] __attribute__ ((section(".version"))) = "minor_version - "mn; \
10977 static char pt_ver[] __attribute__ ((section(".version"))) = "patch level - "pt; \
10978 static char cre_date[] __attribute__ ((section(".version"))) = "creation-date - " __DATE__; \
10979 static char cre_time[] __attribute__ ((section(".version"))) = "creation-time - " __TIME__; \
10980 struct ver_info var __attribute__ \
10981 ((section(".version"))) = { description, mj_ver, mn_ver, pt_ver, cre_date, cre_time }
10983 In order to read the section data, just do
10984 objdump -j .version -d <obj file name>
10986 006. Fix building of external projects {{{
10987 2d - done (27dec2007)
10988 linux-ftpd webserver sqlite net-snmp openrdate
10989 dvb-apps libxml2 readline
10993 007. Make build process modular {{{
10994 1-2d - done (27dec2007)
10996 008. Build process logging {{{
10997 1d - done (30dec2007)
10999 009. IRP hardrware recognition {{{
11001 1. List of hw devices for recognition
11003 AHWC - actual hw config (found by HwMan)
11004 EHWC - expected hw config (written in Db)
11008 Option card (Fe, Decr, ASI, etc.)
11018 2. Recognition policies
11020 The AHWC comming from idprom and EHWC from current db status.
11023 fixed A < E scratch scratch
11024 A > E scratch scratch
11025 detach A < E block cfg block cfg
11026 A > E ignore ignore
11030 TODO: validator should mark certain card to ignore or to block cfg.
11031 added new field CardStatus in HardwareCard_s, which would the status.
11032 Should we keep it also in db?
11033 Each manager should check it (for now FeMan only)?
11034 How to do ignorance of new device? or more accurate how to keep out from
11035 logical input/output creation?
11037 010. Decr Manager {{{
11040 --- CAM parameter defines which ES supported?
11043 --- Each CAM may work w/ only 1 TS.
11045 CAM - Conditional Access Module
11046 CI - Common Interface (EN 50221 CI Specifications)
11048 DVB CI manages CAM, which gets scrambled TS and puts decrypted TS.
11049 Any TS can be decrypted by 2 CAMs, connected in parallel or sequential.
11051 User configuration, based on program number or ES PID. While have to decrypt
11052 whole program the new list of ES will be created.
11053 When ES mode selected during the run, user configuration can't be change even
11054 if program's PMT changed.
11056 The decrypted TS provides changed scrambing status on program or ES level. If
11057 the status not changed, the alarm raised for user.
11059 The DVB CI standard provide control of CAM. Number of application resources
11060 should be created: Resource Manager, Application Information, MMI, CA, date
11067 CAM state should be provided:
11069 IN_RESET - CAM after reset but still not ready
11071 BAD - CAM missing or malfunctioning
11073 Ability to CAM reset.
11075 Advanced configuration.
11076 Follows configuration parameters have access via CLI:
11077 DisableCAMPresenceSensing -
11078 CAMPresenceSensingTimeout -
11079 ResetWhenLastServiceDeleted -
11081 Ability to upgrade CAM firmware.
11083 Manage and sync of PMT list. Able to use `update', `add', `only', `first', and
11084 `more', `last' commands.
11088 There are 3 tables which can start/stop decryption, depends on there values:
11089 tbl_decr_slot_inp_map, tbl_decr_slot_prog_map n PMT table
11090 1. NewPMT(program,input) - new/update entry in PMT table
11092 2. NewProgram(slot,prog,mode) - user wants to add new program
11093 3. RemoveProgram(slot,program) - user wants to delete program
11094 4. RemoveAllPrograms(slot) - user wants to delete all programs of certain slot
11096 5. NewInput(slot,input) - new slot and input for DecrSlotInputMap
11097 6. RemoveSlot(slot) - delete the slot from DecrSlotInputMap
11098 7. RemoveAllSlots(void) - delete all slots from SlotInputMap table = clear table
11101 1+ DecrDrvMap table (non-persistent)
11102 (slot_indx, adapter, ca_dev, slot_nbr)
11103 To add follow API: Clear, Add, Get, GetNext
11107 3 SlotInputMap table (tbl_decr_slot_inp_map)
11108 (slot_idx, input_num)
11109 This is persistent table, maps inputs to decryption slots. Filled by user.
11110 To add follow API: Clear, Add, Get, GetNext
11112 4 Program table (tbl_decr_slot_prog_map)
11113 (slot_idx, prog_num, decr_mode)
11114 This is persistent table, maps programs to inputs. Filled by user.
11116 5 DecrCAInfo table (tbl_decr_ca_info)
11118 This is non-persistent table, describes CAInfo data(sys-id) per CAM device.
11119 Filled by DecrMngr.
11121 6 DecrAppInfo table (tbl_decr_app_info)
11122 (slot_idx, type, manuf, code, menu_str)
11123 This is non-persistent table, describes internal CAM application data.
11124 Filled by DecrMngr.
11126 7 DecrCAMstatus table (tbl_decr_cam_status).
11128 This is non-persistent table, describes status per CAM device.
11129 Filled by DecrMngr.
11132 add cmd to dev/sw/cli/xml/gjobs.xml
11133 add option in dev/sw/cli/inc/params_order.h
11134 add case to dev/sw/cfgmgr/src/req_map.cpp
11138 + 1. DM framework + queue for messages
11139 + 2. Add HwMngr filling DecrDrvMap table
11140 + 3. Add SlotInputMap table and api for it (done 02dec2007)
11141 + 4. Add Program table and api for it (done 02dec2007)
11142 + 5. Add CAInfo and AppInfo tables (done 03dec2007)
11143 + 6. Add CAM status table (done 03dec2007)
11144 + 7. Processing NewPMT from EventMngr (done 05dec2007)
11145 + 8. Processing Remove from ConfigMngr (done 05dec2007)
11146 + 9. Processing Status/Info from low-level (done 05dec2007)
11147 + 10. Change table names to decr like (done 10dec2007)
11148 + 11. Change Select from tbl_decr_slot_prog_map w/ new index for NewPMT (10dec2007)
11149 + 12. Add validation for DecrSlotInputMap n DecrSlotProgramMap tables (11dec2007)
11150 + 13. Add events: RemoveAllSlots, NewProgram (11dec2007)
11151 + 14. Add events: RemoveProgram (12dec2007)
11152 + 15. Add events: RemoveAllPrograms, NewInput, RemoveSlot (12dec2007)
11153 + 16. Add callback member and call it at the end of any event (12dec2007)
11154 + 17. Add event-if-fail in NewPMT (17dec2007)
11155 + 18. CLI support debug DB api (17dec2007)
11157 18. Add MMI support
11159 19. CLI support set slot+prog+decr mode
11160 20. CLI support remove slot+prog
11161 22. CLI support remove slot (all progs)
11162 23. CLI support set/remove slot+input
11163 24. CLI support get CAM status, App info n CA info
11164 25. CLI support reset slot
11166 26. CLI: problem to add AppInfo record, because of string
11169 011. FrontPanel manager {{{
11171 It contents keypad and LCD display.
11172 LCD display (OPTO0152CSL) + 2 chips of S1D15600
11174 Code flow (by Zeev)
11176 CFrontPanelEngine::CFrontPanelEngine()
11177 CFrontPanelEngine::Init() - creates thread w/ frontPanelTask()
11179 |_> CFrontPanelEngine::MainTaskEntery()
11180 |-> CFrontPanelInterface::CFrontPanelInterface()
11181 |-> CFrontPanelInterface::Open()
11182 | |-> frontPanelDriver::frontPanelDriver()
11183 | |-> frontPanelDriver::Init()
11184 | | |_> open(FRONT_PANEL_DRIVER)
11185 | |_> frontPanelDriver::lcdSetContrast() - ioctl FRNTPNL_IOLCD_LCDSETCONTRAST
11186 |-> CFrontPanelInterface::SetTimeOut(600ms)
11187 |-> CFrontPanelSession::CFrontPanelSession()
11188 | |-> CFrontPanelMenuRoot::CFrontPanelMenuRoot()
11189 | | |-> CFrontPanelMenuConfiguration....
11190 | | |-> CFrontPanelMenuStatus....
11192 | |-> MainRoot->SetId(FRONT_PANEL_MENU_ROOT_ID);
11193 | |-> MainRoot->SetObjectType(FRONT_PANEL_MENU_TYPE_STR);:
11194 |_> CFrontPanelSession::StartParsingNormalProc() - MAIN LOOP
11195 |-> frontPanelDriver::ReadChar() - blocking func for time period
11198 /root>Oops: kernel access of bad area, sig: 11 [#1]
11200 NIP: C7031510 LR: C70314D4 SP: C4D5BF50 REGS: c4d5bea0 TRAP: 0300 Tainted: P
11201 MSR: 00029030 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
11202 DAR: 6C617374, DSISR: 00800000
11203 TASK = c5329a90[873] 'IRQ 6' THREAD: c4d5a000
11205 GPR00: 00000000 C4D5BF50 C5329A90 00000001 C5EE4000 00000000 00000000 00000000
11206 GPR08: 00000080 54855163 6C617374 61745F65 00089109 FE00C440 05FFFD00 FFFFFFFF
11207 GPR16: 00000001 00000000 00000000 05FF94D0 05ED0BC0 00000002 C01F0000 C01F0000
11208 GPR24: 00000000 00000006 00000000 00000000 C4D592E0 C4D5A000 00000000 C5EE4000
11209 NIP [c7031510] fpKeyIntrptHndlr+0x5c/0xdc [frntpnlmod]
11210 LR [c70314d4] fpKeyIntrptHndlr+0x20/0xdc [frntpnlmod]
11212 [c0037d64] handle_IRQ_event+0x84/0x13c
11213 [c00385bc] do_irqd+0x1e0/0x214
11214 [c002f2f4] kthread+0xf4/0x130
11215 [c0005454] kernel_thread+0x44/0x60
11216 ---------------------------
11217 | preempt count: 00000002 ]
11218 | 2-level deep critical section nesting:
11219 ----------------------------------------
11220 .. [<c00036ec>] .... die+0x48/0xc8
11221 .....[<00000000>] .. ( <= 0x0)
11222 .. [<c00329ac>] .... print_traces+0x1c/0x11c
11223 .....[<00000000>] .. ( <= 0x0)
11225 prev->state: 2 != TASK_RUNNING??
11226 Badness in __schedule at kernel/sched.c:2906
11228 [c0003a1c] check_bug_trap+0x98/0xdc
11229 [c0003b90] ProgramCheckException+0x130/0x2d0
11230 [c0003284] ret_from_except_full+0x0/0x4c
11231 [c01de2b8] __schedule+0x5a4/0x730
11232 [c0018ee0] do_exit+0x9e4/0xc98
11233 [c0003760] die+0xbc/0xc8
11234 [c000a280] bad_page_fault+0x58/0x5c
11235 [c0003128] handle_page_fault+0x7c/0x80
11237 [c0037d64] handle_IRQ_event+0x84/0x13c
11238 [c00385bc] do_irqd+0x1e0/0x214
11239 [c002f2f4] kthread+0xf4/0x130
11240 [c0005454] kernel_thread+0x44/0x60
11241 ---------------------------
11242 | preempt count: 00000003 ]
11243 | 3-level deep critical section nesting:
11244 ----------------------------------------
11245 .. [<c01ddd64>] .... __schedule+0x50/0x730
11246 .....[<00000000>] .. ( <= 0x0)
11247 .. [<c01dde00>] .... __schedule+0xec/0x730
11248 .....[<00000000>] .. ( <= 0x0)
11249 .. [<c00329ac>] .... print_traces+0x1c/0x11c
11250 .....[<00000000>] .. ( <= 0x0)
11253 012. Management port {{{
11255 To show/set ip, netmask, gateway and MAC(show only) from CLI or Fp.
11257 Testcases (To do follow from CLI and Fp)
11259 | Change to | Change to |
11260 | valid | not valid |
11261 ----------------------------------|-----------------|
11262 IP | 10.2.1.115 | |
11263 10.2.1.111 | 10.2.1.197 | 192.168.1.1 |
11264 ----------------------------------|-----------------|
11265 Netmask | 255.255.0.0 | |
11266 255.255.252.0 | 255.255.250.0 | 255.255.255.0 |
11267 ----------------------------------------------------|
11269 10.2.0.1 | 10.2.0.2 | 192.168.0.1 |
11270 -----------------------------------------------------
11272 013. Hardware monitoring {{{
11277 014. IRP upgrade - design {{{
11280 1. Why to upgrade? (introduction)
11282 It's all starts with idea to bring new release to a customer. The reasons
11283 may be version with bug fix or new feature or even previous operation failure.
11285 2. IRP system in close-up (system overview)
11287 The firmware of spartan and virtex, bootloader (u-boot) for the OS, kernel,
11288 system apps (busybox, etc), IRP app package (irp, snmpd, db, web, etc.) and
11290 The IRP's flash memory is devided on several parts, where each represents
11291 separate image. Spartan and Virtex firmwares, OS bootloader and OS kernel.
11293 ------------------------------------------------------------
11294 | Spartan | Virtex | Boot | Kernel | Root | Config | EMS |
11295 | firmware | firmware | loder | | fs | fs | fs |
11297 ------------------------------------------------------------
11298 | 150 | 2625 | 535 | 1285 | 8777 | ~5000 |35000|
11300 ------------------------------------------------------------ ~~55MB
11302 The root filesystem, which is readonly. It is contents system apps and IRP app
11303 package. The config filesystem is writeable one, where all system configs, IRP
11304 configs and IRP's db. The final is EMS filesystem, which is readonly and
11305 contents whole EMS package.
11307 3. Which parts are upgradeable? (upgrade definitions)
11309 The spartan firmware must be located at flash memory at address 0x0, so it
11310 is non-upgradeable.
11311 The virtex firmware is upgradeable.
11312 The OS bootloader (u-boot) is upgradeable. It is contents boot algorithm,
11313 which need upgrade at least in dev stage. The IRP don't have to upgrade bootl.
11314 OS kernel, root filesystem, config filesystem and EMS filesystem are
11317 ------------------------------------------------------------
11318 | Spartan | Virtex | Boot | Kernel | Root | Config | EMS |
11319 | firmware | firmware | loader| | fs | fs | fs |
11320 ------------------------------------------------------------
11322 | | U | U | U | U | U | U |
11324 4. Sorting things up (types of upgrade)
11326 The previous picture brings the list of upgrade types, where each one
11327 defines URP part goes for upgraded.
11328 The firmware upgrade is actual upgrade of virtex firmware.
11329 The system upgrade is process dealing w/ os kernel and root filesystem.
11330 The config upgrade have the config filesystem as a subject. It is separate from
11331 system upgrade, because of db upgrade complexity. It have to upgrade db structure
11332 together with keeping user configurations.
11333 The EMS filesystem upgrade is dealing w/ EMS and it is separated, because of
11335 To make things easier:
11336 The software upgrade is system, config and EMS upgrades together.
11337 The full upgrade is firmware and software upgrades.
11339 5. What to deliver? (Packaging and versioning)
11341 There are number of images to prepare. In case the full upgrade wanted,
11342 which means upgrade for whole system, follows list of images that can be put
11343 together in 1 tarball (file created by tar and archiver utilities).
11349 Each tarball goes with own version, written in filename, like:
11350 upgrade-0.1.1.tar.bz2
11351 How to check version compatibility between firmware and software or option
11352 card firmware and mainboard firmware, etc.?
11354 A. The final tarball of upgrade images has own version tag and upgrade app
11355 does the process without any dependency check. All checks done by app which
11356 prepares upgrade tarball.
11357 B. Prepare everytime tarball with most high version of everything. It means
11358 allways full upgrade.
11359 C. Prepare tarball with info about internal versions of images (additional
11360 file or filenames w/ ver). Enforce dependecy rules for upgrade app.
11361 For example, if decided to 4 different parts, each has own version -
11362 mainboard firmware (mbfw), mainboard software (mbsw), option card firmware
11363 (ocfw) and option card software (ocsw), which version system like Maj.Min.Pat,
11364 so the rule may be that each major version should be equal :)
11366 mbsw mbfw ocfw ocsw ocfw-2 ocsw-2
11367 basic IRP 1.1.1 1.2.3
11369 IRP w/ ASI 1.1.1 1.2.3 1.3.4 1.9.0
11372 IRP w/ 2 1.1.1 1.2.3 1.3.4 1.9.0 1.5.2 1.6.3
11375 6. How it starts? (upgrade initiation)
11377 The main rule is that IRP can not initiate upgrade, it is always from
11378 outside. The process may start while IRP gets certain command (SNMP-like) or
11379 the download of upgrade image may do it.
11381 7. Moving step-by-step (common upgrade procedure)
11383 In most cases common behaviour of upgrade process can be defined. It is
11384 startes with external command to do upgrade and never by internal decision.
11385 Download upgrade image, which is archived tarbal.
11386 Verify image with MD5 checksum or any other, if any (oq-3).
11387 Now time to open tarball and check dependecies, if any (oq-10), (oq-11).
11388 Begin to burn images on flash, start with mainboard firmware, mainboard
11389 software,option card firmware and option card software.
11390 Each burning step finalizes with write down addresses of the images. Mainboard
11391 spartan needs option card firmware image address, mainboard virtex needs OS
11392 bootloader address and the last one needs kernel image address.
11393 In addition to compatibility between option card and mainboard. The
11394 next step is to bring upgrade image to the system.
11396 8. How it looks like on flash? (flash memory picture)
11398 Follow sizes of upgrade images per type:
11399 The firmware upgrade image ~3000KB
11400 The system upgrade image ~15000KB
11401 The software upgrade image ~50000KB
11402 So in case of full upgrade (firmware+software) needed ~~55000KB ramdisk.
11404 Non upgradable UPGRADABLE Non upg UPGRADABLE |
11405 |---------------------|----------|-------|---------------------------|
11406 | Spartan | Virtex A | Virtex B | | |
11407 | firmware | firmware | firmware | Boot | |
11408 |----------|----------|----------| loader| SOFTWARE |
11409 | 150 | 2625 | 2625 | | |
11410 |--------------------------------------------------------------------|
11414 |----------|-------|--------|------|-----|--------|------|-----|-----|
11415 | | Boot | Kernel | Root | Cfg | Kernel | Root | Cfg | EMS |
11416 | FIRMWARE | loader| | fs | fs | | fs | fs | fs |
11417 |----------|-------|--------|------|-----|--------|------|-----|-----|
11418 | 5400 | 535 | 1300 | 9000 | 5000| 1300 | 9000 | 5000|35000|
11419 |------------------|-------------------------------------------------|
11422 9. Choosing how to upgrade?
11427 |------------|----------|----------|
11428 | Bootloader | System A | System B |
11429 |------------|----------|----------|
11430 | | ver N-1 | ver N |
11432 B. main and upgrade systems
11434 | | Non-Upg | Upg |
11435 |------------|--------------|------------|
11436 | Bootloader | BackupSystem | MainSystem |
11437 |------------|--------------|------------|
11438 | | ver 1.x | ver N |
11440 Footprint almost the same (TFTP,FTP,"air") -db
11442 Simplicity B is more simple than A
11444 Responsiveness A is beter (full set of apps to control)
11446 Stability equal stability
11450 Dynamic address resolution is feature which solves situation where upgrade
11451 process changes start address of certain image on flash memory.
11452 In case of such address is hardcoded, it is demanding to rebuild new image and
11453 upgrade afterwhile.
11454 For example, address of os bootloader image on flash memory if hardcoded can
11455 cause to rebuild of virtex A and B systems. In other hands, if saved on eeprom
11456 can be updated by upgrade procedure without any influence on virtex images.
11458 Mainboard firmware upgrade.
11460 There are 2 firmware images - one for spartan fpga and another for virtex. Only
11461 virtex firmware possible to upgrade.
11462 The gold version method will be used for firmware upgrade algorithm. There
11463 are virtex firmwares, A which is minimized and non-upgradeable and B always
11465 The algorithm is always to upgrade virtex B firmware. The spartan always
11466 loading virtex B and virtex A can be used in case of failure of B, so system
11467 could be functional at least to do upgrade.
11468 It is possible to upgrade virtex B, which it is running.
11470 Spartan firmware 150KB address 0x0
11471 Virtex A firmware 2625KB address +150KB
11472 Virtex B firmware 2625KB address +150KB +2625KB
11474 The spartan cannot read from eerpom, so address of virtex A firmware must be
11475 hardcoded and as drawback the spartan firmware together with virtex A firmware
11476 are non upgradeable.
11478 Firmware start-up logic
11480 The spartan always trying to load the virtex B firmware, only if that failes,
11481 the virtex A would be used.
11482 The watchdog method can used to aware the spartan of virtex failer while loads.
11485 Final flash memory picture.
11487 | Non upgradable |UPGRADABLE|Non upg| UPGRADABLE |
11489 ------------------------------------------------------------------------------------------------
11490 | Spartan | Virtex A | Virtex B | Boot | Kernel | Root | Config | Kernel | Root | Config | EMS |
11491 | firm | firmware | firmware |loader | | fs | fs | | fs | fs | fs |
11492 | ware | | | | A | A | A | B | B | B | |
11493 ------------------------------------------------------------------------------------------------
11494 | 150 | 2625 | 2625 | 535 | 1285 | 8777 | 2000 | 1285 | 8777 | 2000 |35000|
11495 ------------------------------------------------------------------------------------------------
11497 5400 | | ~20000 | ~20000 | |
11499 The final calculations:
11500 whole firmware takes around 5.5MB;
11501 whole system takes around 20MB and to add another 20MB for backup system;
11502 firmware upgrade image takes 3MB;
11503 system upgrade image takes ~20MB;
11504 ems upgrade image takes ~35MB
11506 The eeprom device data picture
11508 The eeprom device is most stable place, consider power failures in the
11512 Device serial number
11515 Configuration flags
11518 IRP bootup procedure
11520 The upgrade process have certain influence on the subject.
11524 FFU - Force Firmware Upgrade
11528 x 1. Firmware upgrade: image size
11529 x 2. Software upgrade: image size
11530 3. To use MD5 checksum or other check if any?
11531 4. System fallback, while new software failure (watchdog)
11532 5. Upgrade protocol/definitions between mainboard and option card
11533 6. Uboot file format. Change uboot image format from srec to bin. will save
11534 ~355KB (current 08jan2008 535KB)
11535 7. Upgrade control measures
11536 a. Initiation, by SNMP or FTP/TFP/air
11537 b. Failure upgrade message (cli,front panel, snmp alert)
11538 8. Option card upgrade images
11539 x a. ASI: firmware size 278KB
11542 9. Option card failover
11543 a. ASI: fpga (spartan 3e500) have signal up while finishs to load.
11544 It have support in mb spartan?
11547 10. Any version check dependecies on box side?
11548 11. Place for images from tarball. How much place need?
11550 15jan2008 (meeting w/ Yaniv Sibony)
11551 1. Delivery protocols FTP,air,CLI (Akiva wants TFTP)
11552 2. No need for SNMP-like initiation
11553 3. Versioning still oq (ver for IRP, ver for Opt card)
11554 4. No use of MD5 checksum
11555 5. All types of customers
11557 015. Load kernel from flash {{{
11560 2. Reconfigure kernel (file drivers/mtd/maps/mtd405.c)
11561 The flash starts from 0xb0000000
11563 offset size name start addr end addr
11564 ------------|----------------|---------------|---------------|-------------
11565 0x0000 0000 0x00900000 bootloader 0xb000 0000 0xb090 0000
11566 0x0092 0000 0x01400000 20M kernel 0xb092 0000 0xb1d2 0000
11567 0x01d4 0000 0x01400000 20M user 0xb1d4 0000 0xb314 0000
11569 writing from Uboot prompt:
11571 Kernel burn Uboot burn
11572 erase 0xb092 0000 +a00000 0xb080 0000 +100000
11573 tftp 0x0380 0000 pMulti 0x0380 0000 u-boot.srec
11574 cp 0x3800 0000 0xb0920000 0x0380 0000 0xb0800000
11577 tftp 0x3800000 virtex.bin
11578 erase 0xb0040000 +320000
11579 cp 0x3800000 0xb0040000 280f50
11581 016. Minimal upgrade {{{
11582 18mar2008 - 31mar2008
11586 017. Mainboard FPGA (Virtex) upgrade {{{
11588 define new mtd partition for Fpga virtex (drivers/mtd/maps/mtd405.c)
11590 offset size name start addr end addr
11591 ------------|----------------|---------------|---------------|-------------
11592 0x0004 0000 0x00320000 fpga 0xb004 0000 0xb036 0000
11593 0x0080 0000 0x00100000 bootloader 0xb000 0000 0xb090 0000
11594 0x0092 0000 0x01400000 20M kernel 0xb092 0000 0xb1d2 0000
11595 0x01d4 0000 0x01400000 20M user 0xb1d4 0000 0xb314 0000
11597 tar -C /mnt/flash/ftp/abc/ -xf upgrade.tar pMulti*
11599 tar cvf upgrade.tar pMulti virtex.bin upgrade.txt
11601 tar xf upgrade.tar upgrade.txt
11603 tar tvf upgrade.tar
11605 Collect all needed images: virtex.bin, u-boot.srec and pMulti and create
11607 tar cvf upgrade.tar virtex.bin u-boot.srec pMulti
11610 018. Boot image on front panel {{{
11612 1. Implement front panel driver in uboot
11614 front panel driver {{{
11623 019. Add new partition for EMS {{{
11626 { name: "EMS", offset: 0x04560000, size: 0x2800000}
11627 at file drivers/mtd/maps/mtd405.c
11629 Get uboot prompt and erase this partition:
11630 erase 0xb4560000 +2800000
11632 020. Ability to add/del users from cli {{{
11634 Create ability to add/del IRP user. A user should have telnet w/ IRP's cli
11635 may or may not able to ftp. Only one user admin could add/del others.
11637 Solution based on regular linux passwd file. The add command inserts new
11638 user with follows params:
11639 zxc:guAciU5brCVEo:0:15:zxc:/home/user:/irp/cli.elf
11640 Such user able to have telnet w/ IRP's cli and ftp. In order to create an user
11641 w/o ftp permissions, other file /etc/ftpusers edited.
11642 It seems that users found in the file forbidden to access ftp. Ability to check
11643 if a user able to add/del others, checks in CLI.
11646 021. Identification of Ofek card (Horizon) {{{
11649 OFEK card has an I2C IDPROM that should contain some structure with the following fields:
11650 hw_revision -- will be set to a char string "503526"
11651 hw_options -- 4-bytes integer set to 0
11652 serial number -- 4-bytes integer number
11654 The IRP application should have a CLI command to present for each option card slot:
11659 If an OFEK card not present, any downconverter configuration operation performed at the card causes an error to be returned to the user.
11662 The Ofek card has eeprom chip connected to IRP's mainboard by i2c bus.
11663 It is m24c01 ST chip. It is address is 0x56 and capacity 128 B. In order to
11664 switch it to write enable, other device should be checked - called
11665 i2c expander (Philips PCA9538). Need to set config register (3) to value 0xdf
11666 and in output register (1) set bit 5 to 0. The i2c address of expander is 0x73.
11669 write 0x73 1 val&0xdf
11671 --- The flow of recognition.
11673 The recognition starts from reading presense bit from Virtex, which provides
11674 info if opt card present. The xilinx DCR reg 48, where bit 21 for bottom card
11676 Try to read eeprom of a card. Follows parameters should be found:
11677 hw_rev, serial_num and user_opt.
11680 CLI commands to show the data:
11681 status-decoder->list displays nbr of cards
11684 1. Ability to read presence bit. Waiting for Sharon. Virtex from 28may2008.
11688 10jun2008 - wait for Eugene to complete.
11689 29jun2008 - i2c address for bottom card - pca is 0x72, eeprom is 0x56
11690 top card - pca is 0x73, eeprom is 0x57
11693 022. EMS upgrade {{{
11696 x 1. Create new partitions ems-10MB and jre-20MB
11697 x 2. Create utility to create jffs2 image
11698 x 3. Change package.sh utility to support new images
11699 x 4. Ability upgrade ems and jre partitions
11701 flash_eraseall -j /dev/mtd/4
11702 flashcp ems.jffs2 /dev/mtd/4
11704 023. 8VSB solution {{{
11708 Add driver and the rest of functionality for new IRP card. It is 8VSB one.
11709 The card based on 8VSB NIM called TDVS-H081P. It contents demodulator
11710 lgdt3304 (the LG 6th generation ATSC chip) and tuner (Infineon Technologies'
11711 Taifun TUA 6039 bipolar/CMOS tuner integrates the RF and IF functions).
11712 NIM datasheet - TDVS-H081P_Datasheet.pdf
11713 Demod datasheet - LGDT3304_ds1_01_for_DITOCOM.pdf
11715 Taifun TUA6039 is a Tuner IC incorporating a mixer-oscillator function and an
11716 IF AGC amplifier with a digitally programmable phase locked loop (PLL). Both
11717 analog and digital standards for all terrestrial and cable applications are
11718 supported. With the high level of system integration and use of Bipolar
11719 technology, this IC provides cost effective and good performance solution to
11720 Tuner module and NIM (Network Interface Module) manufacturers.
11725 Have 2 source codes:
11726 Source code - the original LG code
11727 33046039_sfotreset - working code from DITOCOM
11730 The 8VSB is RF modulation used for ATSC.
11735 - 1. is there need to support antenna control interface (EIA/CEA-909)? NO
11736 - 2. which tuner is used in the NIM? Datasheet? Infineon TUA 6039
11737 - 3. does AGC external or internal? (Avi said internal)
11738 - 4. control AGC periodicaly? YES
11739 5. how often to check for lock?
11741 Analyze of source code {{{
11742 --------- The original LG code:
11744 MenuRun() // main.cpp
11745 |_> LgdtRun(mode = LGDT_VSB, freq) {{{
11746 |-> LgdtTunerInit() // init of tuner LGDT3304API.cpp
11747 | |-> LgdtTunerInitAFC(freq) // init AFC, set global var gFreqCur and zero to gCountAFC
11748 | |-> LgdtTunerFreq() // tuner setup func
11749 | | |-> TunerALPS_TDQU(freq,mode) // Tuner.cpp
11750 | | | |_> Lgdt_I2C_Write() // LGDT_Util.cpp, send 6B : 0-0xc2, 1-val, 2-val, 3-8B, 4-val, 5-0xf6
11751 | | | |_? I2C_Sends() // LGDT_I2C.cpp, send data to i2c slave (LPT)
11752 | | | |_? LG_IIC_WriteType2HS() // LG_IIC_Interface.h, send data to i2c slave (USB)
11753 | | |-> LgdtRepeaterI2C(OFF) // disable I2C repeater
11754 | | | |-> LgdtCheckRegi(0x0001)
11755 | | | |_> LgdtAlterRegi(0x0001)
11756 | | |_> LgdtResetFAT() // reset demod after tuner setting
11757 | | |-> LgdtCheckRegi(0x0002)
11758 | | |-> LgdtAlterRegi(0x0002)
11759 | | |-> LgdtDelay(20) // reset delay
11760 | | |_> LgdtAlterRegi(0x0002)
11762 | |_> LgdtInitDelay()
11763 | |-> LgdtCheckRegi(0x0422) // Init: delay auto off
11764 | |-> LgdtAlterRegi(0x0422) // =
11765 | |-> LgdtCheckRegi(0x0423) // Setting 0x0423
11766 | |_> LgdtAlterRegi(0x0423) // =
11768 |_> LgdtInitFAT() // LGDT3304API.cpp, init of demod
11769 |-> LgdtInitVSB() //
11770 | |-> LgdtCheckRegi(0x0000) // OPERMODE[1:0] <-- '11'b
11771 | |-> LgdtAlterRegi(0x0000) // =
11772 | |-> LgdtAlterRegi(0x000D, 0x02) // enable SAW filter
11773 | |-> LgdtAlterRegi(0x000E, 0x02) // sync confidential counter register
11774 | |-> LgdtAlterRegi(0x0012, 0x32) // DAGCREF[15:0] <-- 0x32C4
11775 | |-> LgdtAlterRegi(0x0013, 0xC4) // =
11776 | |-> LgdtCheckRegi(0x0112 // EPHNTH[3:0] <-- '0111'b
11777 | |-> LgdtAlterRegi(0x0112, // =
11778 | |-> LgdtCheckRegi(0x0113 // GCONTH1[2:0] <-- '101'b
11779 | |-> LgdtAlterRegi(0x0113 // =
11780 | |-> LgdtCheckRegi(0x0114 // GCONTH2[0] <-- '0'b
11781 | |-> LgdtAlterRegi(0x0114 // =
11782 | |-> LgdtAlterRegi(0x0115, 0xFF) // GCONTH3[7:0] <-- 0xFF
11783 | |-> LgdtCheckRegi(0x0116, &pData) // DMSELOWTH[2:0] <-- '100'b
11784 | |-> LgdtAlterRegi(0x0116 // =
11785 | |-> LgdtCheckRegi(0x0214 // GSAUTOSL[1:0] <-- '01'b : Actually, 0x0214[3:2]
11786 | |-> LgdtAlterRegi(0x0214 // =
11787 | |-> LgdtAlterRegi(0x0424, 0x8D) // CST_THD[15:8] <-- "0x8D"
11788 | |-> LgdtAlterRegi(0x0427, 0x12) // EQCON_THD[15:0] <-- "0x124F"
11789 | |-> LgdtAlterRegi(0x0428, 0x4F)
11790 | |-> LgdtAlterRegi(0x0308, 0x80) // IFBW[15:0] <-- "0x8000"
11791 | |-> LgdtAlterRegi(0x0309, 0x00) // =
11798 MenuStatusCheck() // main.cpp
11800 |-> LgdtIsLockSync()
11802 |-> LgdtCheckPacketErr() // LGDT3304API_CHECK.cpp
11803 | |-> LgdtCheckRegi(0x050C, data)
11805 | |-> LgdtCheckRegi(0x050D, data)
11806 | |_> ndata |= data;
11807 |-> LgdtCheckSnrFAT() // LGDT3304API_CHECK.cpp
11808 | |-> LgdtCheckOperMode()
11809 | |_> LgdtCheckSnrVSB()
11810 | |-> LgdtCheckRegi(0x0417, data)
11811 | |-> int ndata = data & 0x0f
11813 | |-> LgdtCheckRegi(0x0418, data)
11814 | |-> ndata |= (data << 8)
11815 | |-> LgdtCheckRegi(0x0419, data)
11816 | |-> ndata |= data
11817 | |-> 10 * log10((double)(25*32*32)/ndata)
11818 |-> LgdtCheckSignalCondition()
11819 |-> LgdtCheckOperMode()
11824 --------- The example from DITOCOM:
11827 New_01_33046039_sfotreset\ColorStaticST.cpp"
11828 New_01_33046039_sfotreset\i2c.cpp"
11829 New_01_33046039_sfotreset\LGDT3304.cpp"
11830 New_01_33046039_sfotreset\LGDT3304Dlg.cpp"
11831 New_01_33046039_sfotreset\lgtuner.cpp"
11833 CLGDT3304Dlg::OnMpegout0() // LGDT3304Dlg.cpp
11834 CLGDT3304Dlg::OnMpegclk0()
11835 CLGDT3304Dlg::OnMpegval0()
11837 LGDT3304Dlg::OnRunButton2() // LGDT3304Dlg.cpp
11842 CLGDT3304Dlg::RunPLL() // LGDT3304Dlg.cpp
11843 |_> TunerWrite(rf,44,62.5,0xc2,0x86,0x02,5) // lgtuner.cpp 1-RF,2-IF,3-step,4-addr,5-ctl1,6-ctl2,7-agc
11844 |-> I2cReadWrite(WRITE,TunerB[1],&TunerB[2],4) // i2c.cpp 1-mode,2-chip addr,3-&data,4-bytes
11845 |_> I2cReadWrite(WRITE,TunerB[1],&TunerB[6],2)
11847 LGDT3304Dlg::Run3304() // LGDT3304Dlg.cpp
11848 |-> RegSetOneRegister(0x0002, RegGetOneRegister(0x0002)&0xFE) // reset FAT
11850 |-> RegSetOneRegister(0x0002, RegGetOneRegister(0x0002)|0x01) // =
11851 |-> RegSetOneRegister(0x001, RegGetOneRegister(0x001)|0x20) // i2c repeater off
11852 |-> lgdt3304Mpegclk() // mpeg setup parallel
11853 |-> lgdt3304Mpegval() // mpeg setup gated
11854 |-> lgdt3304Mpegout() // mpeg setup high
11855 |-> lgdt3304Init() // init demod
11856 | |-> RegSetOneRegister(0x000A, (RegGetOneRegister(0x000A)&0xEF)|0x10)
11857 | |-> RegSetOneRegister(0x000B, (RegGetOneRegister(0x000B)&0xEF)|0x10)
11858 | |-> RegSetOneRegister(0x0000, (RegGetOneRegister(0x0000)&0xFC)|0x3) // VSB mode
11859 | |-> RegSetOneRegister(0x000d, 0x63) // Digital SAW filter
11860 | |-> RegSetOneRegister(0x000e, 0x02) // sync confidential counter register
11861 | |-> RegSetOneRegister(0x0012, 0x32) // DAGCREF[15:0] <-- 0x32C4
11862 | |-> RegSetOneRegister(0x0013, 0xc4) // =
11863 | |-> RegSetOneRegister(0x0112) // EPHNTH[3:0] <-- '0111'b
11864 | |-> RegSetOneRegister(0x0113)
11865 | |-> RegSetOneRegister(0x0114)
11866 | |-> RegSetOneRegister(0x0115)
11867 | |-> RegSetOneRegister(0x0116)
11868 | |-> RegSetOneRegister(0x0214)
11869 | |-> RegSetOneRegister(0x0424,0x8d)
11870 | |-> RegSetOneRegister(0x0427,0x12)
11871 | |-> RegSetOneRegister(0x0428,0x4f)
11872 | |-> RegSetOneRegister(0x0308, 0x80) // AGC
11873 | |-> RegSetOneRegister(0x0309, 0x00) // =
11874 | |-> RegGetOneRegister(0x030d) // =
11875 | |-> RegSetOneRegister(0x030d) // =
11876 | |-> RegGetOneRegister(0x030e) // =
11877 | |-> RegSetOneRegister(0x030e) // =
11878 | |-> RegSetOneRegister(0x0314) // =
11879 | |-> RegGetOneRegister(0x0002) // soft reset
11880 | |-> RegSetOneRegister(0x0002, rdData&0xFE) // =
11881 | |-> Sleep(20) // =
11882 | |-> RegSetOneRegister(0x0002, RegGetOneRegister(0x0002)|0x01) // =
11886 |-> RegSetOneRegister(0x0002, RegGetOneRegister(0x0002)&0xFE) // reset FAT
11888 |-> RegSetOneRegister(0x0002, RegGetOneRegister(0x0002)|0x01) // =
11890 CLGDT3304Dlg::OnTimer // LGDT3304Dlg.cpp
11892 | |-> lgdt3304Carriercheck()
11893 | |-> lgdt3304inlockcheck()
11894 | |-> lgdt3304Errorcheck()
11895 | |-> lgdt3304trlockcheck()
11896 | |-> lgdt3304_SignalStatus()
11900 |_> CDialog::OnTimer()
11905 Scopus 8vsb card {{{
11906 The card has 4 NIMs of TDVS-H081P w/ demodulator LGDT3304 and tuner TUA6039
11907 The i2c expander (pca9535) should be configured to reach certain nim on the
11909 to reach nim #1 set reg 6 of i2c expander to 0xfc and reg 2 to
11910 0xfc+<nim nbr> (1,2,3,4).
11912 when i2 expander config to MIM 1 (reg 0x2 val 0xfc) there are LES:
11915 when i2 expander config to MIM 2 (reg 0x2 val 0xfd) there are LES:
11918 when i2 expander config to MIM 3 (reg 0x2 val 0xfe) there are LES:
11921 when i2 expander config to MIM 4 (reg 0x2 val 0xff) there are LES:
11930 8VSB Reception feature
11933 8VSB is the 8-level vestigial sideband modulation method adopted for
11934 terrestrial broadcast of the ATSC digital television standard in the
11935 United States, Canada, and other countries.
11938 024. Implement control of syslogd {{{
11941 IRP outputs its log messages via Syslog.
11942 IRP application should be able to configure via the CLI logging to 3 different destinations:
11943 1) To console; parameters: enabled/disabled, minimal severity
11944 2) To file; parameters: enabled/disabled, minimal severity, file name
11945 3) To "network"; parameters: enabled/disabled, minimal severity, IP address
11947 Only one network logging destination will be supported.
11948 It will be great to limit the logfile size.
11951 The config file, placed at /etc/syslog.conf ca have 3 different config lines.
11952 To redirect output to network `*.* @10.2.1.41', to console `*.* /dev/console',
11953 to file `*.* <file path>'
11954 The `*.*' is `<facility>.<priority>' Sometimes priority, called severity. The
11955 facility is the source of logging, like mail server, etc. The priority can be:
11956 debug, info, notice, warning, err, crit, alert, emerg|panic.
11957 While `debug' priority, all options available, if `crit' - only `crit', `alert'
11961 025. Additional control for 8VSB {{{
11963 x 1. Set Demodulator low threshold (DMSELOWTH[2:0])
11964 x 2. Read Carrier recovery frequency offset (CRFREQO[23:0])
11965 x 3. Ability to change Gated/Fixed mode of Transport Clock Mode (0x050e)
11966 x 4. Read SNR level status (SNRGOOD 0x0003[0])
11967 x 5. set control err flag (TPERRINS 0x050e[1])
11968 ? 6. Set Tuner by freq, not equals to channel
11971 026. Upgrade of mainboard Spartan + common upgrade changes {{{
11973 x 1. Ability to upgrade MB Spartan
11974 x 2. Check for available space before untar
11975 x 3. Make 'upgrade' user's home dir '/opt/ftp'
11976 x 4. Disable anonymous ftp
11977 x 5. No delete for upgrade user
11978 6. Add MD5 checksum
11979 x 7. CLI switch to permit Spartan upgrade
11981 027. Reset PHY of eth0 at boot {{{
11983 Problem: no ping at temp -20C
11984 Solution: to add phy reset, like at u-boot
11985 from u-boot src emac_adapter.c
11995 xemac_probe() (from drivers/net/xilinx_emac/adapter.c)
11997 |-> XEmac_CfgInitialize()
11999 | |-> XEmac_Reset()
12002 | |-> ADDED follows
12003 | | printk(KERN_INFO "PHY RESET\r\n");
12004 | | XEmac_PhyReset(&lpIn->Emac);
12008 028. Ability to set Ofek env with number of options {{{
12010 Added to greader as command line option "--ofek_append"
12012 029. Load IRP w/ 8 inputs {{{
12014 Gets Spartan aa27 and Virtex 8-10-2-1 from 27oct2008
12017 x 1. While running irpd.elf , lots of i2c errors.
12018 Fixed - the register where optional cards discovered changed.
12020 Change HwMngr to recognise optional cards from new register 57, where
12021 bit 30 for bottom card and 31 - top.
12024 030. Adding cold reset to IRP w/ 8inputs {{{
12026 Here, reset which forces the Spartan to reread Virtex code from flash after
12028 The cold reset could be done if to write 0x4567 to address 0x9020000e.
12030 Changes in gutildrv module to accept ioctl which can cause the writing.
12031 Ability of greader to send the ioctl.
12033 the oroginal call to cold reset placed at arch/ppc/syslib/ppc4xx_setup.c
12034 func ppc4xx_restart()
12037 031. Add gold version for FPGA and Uboot {{{
12038 1. Need changed FPGA, because u-boot address is hardcoded there.
12039 2. How fpga knows which u-boot to start
12040 3. How spartan knows which virtex to start
12044 new spartan.bin-B029
12046 //irp/dev/sw/cfgmgr/src/req_map_misc.cpp#62
12047 //irp/dev/sw/cli/xml/gjobs.xml#217
12048 //irp/dev/sw/common/inc/config_attr_data.h#260
12049 //irp/dev/sw/upg_mngr/inc/upg_mngr.h#20
12050 //irp/dev/sw/upg_mngr/src/upg_mngr.cpp#27
12051 //irp/dev/sw/upg_mngr/src/upg_mngr_msgs.cpp#1
12053 //irp/montavista/devrocket2.0/dev/irp-bsp.1/drivers/mtd/maps/mtd405.c#8
12055 //irp/linux-add-ons/scripts/buboot.sh#9
12056 //irp/u-boot/dev/board/xilinx_irp/front_panel/fp_adapter.c#2
12057 //irp/u-boot/dev/board/xilinx_irp/front_panel/fp_adapter.h#1
12058 //irp/u-boot/dev/board/xilinx_irp/ml405/config.mk#2
12059 //irp/u-boot/dev/board/xilinx_irp/ml405/Makefile#2
12060 //irp/u-boot/dev/board/xilinx_irp/xilinx_enet/emac_adapter.c#4
12061 //irp/u-boot/dev/common/devices.c#2
12062 //irp/u-boot/dev/common/main.c#1
12063 //irp/u-boot/dev/include/version.h#3
12064 //irp/u-boot/dev/lib_ppc/board.c#5
12065 Packaging & scripts
12066 //irp/app-examples/u-boot/burn_gold.script#1
12067 //irp/linux-add-ons/scripts/package.sh#4
12068 //irp/linux-add-ons/scripts/irpsys.sh#63
12069 //irp/linux-add-ons/target-scripts/etc/init.d/rcS#42
12071 032. RESET redesign {{{
12074 The ConfigMngr gets request to reset and sends event to EventMngr. The
12075 CnfgMngr waits for answer after which call API to IRP suicide and set some
12076 member (m_Options) to remember.
12077 The Launch after gets out from main loop, asks CnfgMngr for this option. At the
12078 end if the option has reset such should be done.
12081 Reset kills app, but doesn't reset OS.
12082 Solution: Not to suicide IRP, but to go out from main loop.
12083 Released changelist 40515 w/ fix.
12086 033. Support Watchdog {{{
12088 Ability to stop/start and reset IRP watchdog.
12089 Start wd: write 1 to 0x90200006 bit 11
12090 Stop wd: write 0 to 0x90200006 bit 11
12091 Feed wd: write any to 0x9020002a
12093 To check wd from uboot:
12096 --- disable wd (switch 11 bit on)
12097 mw 0x90200006 0xf3ffabcd
12098 --- enable wd (switch 11 bit on)
12099 mw 0x90200006 0xfbffabcd
12105 The kernel watchdog which is kernel timer for 30secs. Works till the app stops
12106 it. The app level watchdog, simply thread with sleep for 30secs.
12108 Added new kernel modules wd which using kernel timer w/ timeout 30sec. All
12109 commands from procfs file /proc/wd/ctl
12112 --- System started w/o watchdog.
12113 Enable wd `echo 1 > /proc/wd/ctl`. This is wd w/o kwd support, so if the
12114 app not runs - will be reset.
12115 Enable wd `echo 1 > /proc/wd/ctl` and enable kwd `echo 4 > /proc/wd/ctl` will
12116 keep the system running, because kwd will work every 30sec. To disable kwd
12117 `echo 5 > /proc/wd/ctl` will reset the system max after 30secs.
12118 If kwd enabled and app starts - it's stops kwd and keep feeding alone.
12121 //irp/dev/sw/unit_mngr/inc/unit_mngr.h#23 - edit default change (text)
12122 //irp/dev/sw/unit_mngr/src/unit_mngr.cpp#46 - edit default change (text)
12123 //irp/linux-add-ons/drivers/gutildrv/gutilmod.c#24 - edit default change (text)
12124 //irp/linux-add-ons/drivers/gutildrv/gutilmod.h#18 - edit default change (text)
12125 //irp/linux-add-ons/target-scripts/etc/init.d/rcS#44 - edit default change (text)
12126 //irp/linux-add-ons/target-scripts/irp/start.sh#13 - edit default change (xtext)
12127 //irp/montavista/devrocket2.0/dev/irp-bsp.1/.config-dev#14 - edit default change (text)
12128 //irp/montavista/devrocket2.0/dev/irp-bsp.1/drivers/scopus/Kconfig#4 - edit default change (text)
12129 //irp/montavista/devrocket2.0/dev/irp-bsp.1/drivers/scopus/Makefile#4 - edit default change (text+w)
12130 //irp/montavista/devrocket2.0/dev/irp-bsp.1/drivers/scopus/watchdog/Makefile#1 - add default change (text+w)
12131 //irp/montavista/devrocket2.0/dev/irp-bsp.1/drivers/scopus/watchdog/wd.h#1 - add default change (text)
12132 //irp/montavista/devrocket2.0/dev/irp-bsp.1/drivers/scopus/watchdog/wd_drv.c#1 - add default change (text)
12135 034. Create Network manager {{{
12138 Create network manager controls all 4 IRPs network devices from PHY to socket
12141 New files placed at net_mngr
12144 035. Merge of HwMngr and UnitMngr {{{
12146 All HwMngr apis moved to UnitMngr, except management port and phy control -
12148 Decided (Akiva 11dec2008) not to use queue and messaging of UnitMngr.
12152 Frontend to support DVBS_STM card {{{
12153 05jun2007 23dec2007 15sep2008 16nov2008
12156 The Spartan register (0x6 for write; 0xc for read) bit 10 tells if 4 streams
12157 goes to mainboard or only 1.
12158 4 streams: write 0 to 0x90200006 bit 10
12159 1 stream: write 1 to 0x90200006 bit 10
12162 DVB-S STM (qpsl29b) card {{{
12164 To support DVBS_STM card wit STB6000+STV0288+LNBP21.
12172 from "STB600 datasheet.pdf"
12173 STB6000 is direct conversion tuner, which includes LNA, downconverting mixer,
12174 baseband low pass filter, gain control (AGC), on-chip VCO and low noise PLL. It
12175 is suited for low symbol rate applications.
12176 Input range 950 - 2150 MHz
12179 There are 11 regs rw (sub-addr 0x01 - 0x0b). Another 3 ro regs (0x00, 0x0c,
12182 Reg Addr MSB Control byte LSB
12183 -------------------------------------------------------------
12184 LD 0x00 - - - - - - - LD
12185 VCO 0x01 OSCH OCK1 OCK0 ODIV OSM3 OSM2 OSM1 OSM0
12186 N 0x02 N8 N7 N6 N5 N4 N3 N2 N1
12187 A 0x03 N0 1 1 A4 A3 A2 A1 A0
12188 K_R 0x04 K1 K0 R5 R4 R3 R2 R1 R0
12189 G 0x05 0 0 0 0 G3 G2 G1 G0
12190 F 0x06 1 0 0 F4 F3 F2 F1 F0
12191 FCL 0x07 1 1 DLB2 DLB1 DLB0 FCL2 FCL1 FCL0
12192 Test1 0x08 1 1 0 1 0 0 0 0
12193 Test2 0x09 0 1 0 1 0 0 0 0
12194 LPEN 0x0a 1 PD0 PD1 LPEN 1 0 1 1
12195 XOG 0x0b XOG XOGV 0 0 1 PD2 PD3 1
12198 if LSB bit os 1 - PLL locked, otherwise not locked
12204 from "288 datasheet.pdf"
12205 STV0288 has analog to digital converter, QPSK demodulator, forward error
12209 from "LNBP21ver2_2.pdf"
12210 LNBP21 is monolitic voltage regulator, designed to provide power 13/18V and 22KHz
12211 tone signalling to the LNB downconverter.
12212 Downconvert C or Ku bands to L band.
12215 The PLL provides sample clock for both Analog-to-Digital converters. The values
12216 are 135MHz (def) or 100MHz.
12217 The are 2 equal input ports on the card.
12222 Initialization (FeNIMSAT2Tuner::FeNIMSAT2Tuner()) {{{
12223 > Prepare to set PLLCTRL to 0x86/0x33 depend on Mlck 135/100
12224 > Prepare n set board parameters (FeNIMSAT2Tuner::PowerUpInitParam())
12227 Prepare to set board type parametrs (FeNIMSAT2Tuner::set_PUValues())
12228 Calculate master clock freq (Hz) and derotator clock freq, which is
12229 master clock / 65536
12230 Prepare to set LNB mode (FeNIMSAT2Tuner::set_LNB_mode())
12231 The LNB must be set power-off and after power-on after every reset
12232 Prepare to set Viterbi rate (FeNIMSAT2Tuner::set_VITERBI_mode())
12233 Prepare to set spectral mode (FeNIMSAT2Tuner::set_SPECTRAL_mode())
12234 Prepare to set symbol rate
12235 Prepare to set tuner freq
12236 Set LNB registers (call FeSTQpskDrv::ifFeDrvControl(eLnbWriteReg,...))
12237 Set symbol rate (FeNIMSAT2Tuner::ifSetFeSymRate())
12238 set SFRH, SFRM and SFRL (FeNIMSAT2Tuner::set_SymbolRate())
12240 Init all stv289 regs (call FeSTQpskDrv::ifFeDrvControl(eWriteReg,...))
12241 Prepare and set tuner freq (FeNIMSAT2Tuner::ifSetFeFrequency() ->
12242 FeNIMSAT2Tuner::set_Frequency())
12243 ... (see below - Set tuner freq)
12244 Because some unknown reason after front-end reset the LNB must
12245 be set power off and after set on.
12246 Start SCP-SAT optimize lock algorithm
12247 Set no locked mode.
12250 DVBS_STM write to tuner
12252 enable i2c to tuner
12254 disable i2c to tuner
12257 IRD FrontEnd code flow {{{
12259 Types (app_sys/public/rtdb_fe_x.h):
12261 FrontEndAppInit_S - app structure
12262 FrontEndAppRunTimeParam_S - app structure for configuration
12263 FrontEndRunTimeStatus_S - app structure for status
12264 STRUCT_SatelliteEntry - rtdb structure for configuration
12265 STRUCT_SatelliteStatusEntry - rtdb structure for status
12266 InternalRunTimeData_S (app_fe/include/fe_stqpsk_p.h) - member of class FeNIM1278Tuner
12267 SearchParam_S (app_fe/include/fe_stqpsk_p.h) - member of class FeNIM1278Tuner
12270 app_sys/main/ird_main.c
12271 app_sys/main/ird_app_init.cpp
12272 StreamControllerlInit() (app_extmdl/stream_cntrl/stream_main_cntrl.cpp)
12273 FrontEndInterfaceInit() (app_fe/fe_main.cpp)
12274 FrontEnd::getInstance()
12275 FrontEnd::FrontEnd() (from fe_main.cpp)
12276 |-> rtdbiGetFrontEndAppInitParam() (app_fe/fe_rtdb.cpp)
12277 | |_> gets hw params
12278 |-> semMCreate() - create semaphore between front-end and main execution tasks
12279 |-> CMsgDispatcherApplet::CMsgDispatcherApplet() (msg_dispatcher.cpp)
12280 | |_> execmoRegisterAppletObj()
12281 |-> FrontEndCreator_ECC3100() (app_fe/ecc3100/fe_ecc3100_creator.cpp)
12282 | |-> CFeTunerEcc3100Module::CFeTunerEcc3100Module() (app_fe/ecc3100/fe_ecc3100_module.cpp)
12284 | | |-> get FrontEnd app init params (FrontEndAppInit_S)
12285 | | |-> reset MAIN_RESET
12286 | | |-> FrontEndDrvInit(FeType_E, FrontEndGenericDrv) (drv_ird/frnt_end/fe_drv.cpp)
12288 | | | |-> new_FeEcc3100Drv() (drv_ird/frnt_end/fe_ecc3100_drv.cpp)
12289 | | | | |-> FeEcc3100Drv::FeEcc3100Drv() (drv_ird/frnt_end/fe_ecc3100_drv.cpp)
12290 | | | | |_> FeEcc3100Drv::PowerUpInit()
12291 | | | | |_> set init state for GPIO - ifFeDrvControl(eGPOInit, NULL)
12293 | | |-> FeEcc3100Tuner::FeEcc3100Tuner() (app_fe/ecc3100/fe_ecc3100_tuner.cpp)
12295 | | | |-> FeEcc3100Tuner::PowerUpInitParam() (app_fe/ecc3100/fe_ecc3100_tuner.cpp)
12297 | | | | |-? FeNIMSAT2Tuner::PowerUpInitParam() (app_fe/stqpsk/fe_nimsat2_high.cpp)
12299 | | | | |-> CFeTunerEcc3100Module::Reset() (app_fe/ecc3100/fe_ecc3100_module.cpp)
12300 | | | | | |-> fFeDrvControl(eGPOResetDvbS2)
12301 | | | | | |-> delay 50msec
12302 | | | | | |-> fFeDrvControl(eGPORunDvbS2)
12303 | | | | | |_> delay 20msec
12304 | | | | | reset dvbs2 (eGPOResetDvbS2, eGPORunDvbS2)
12305 | | | | | reset dvbs2 (eGPOResetDvbS2, eGPORunDvbS2)
12306 | | | | |-> FeEcc3100Tuner::write_zif_PUValues() - init dvbs2 tuner
12307 | | | | | |_> using ZIFCE5038_SetValue[][] and write to zif
12308 | | | | | ifFeDrvControl(eZifS2WriteReg, ...)
12309 | | | | |-> ifFeDrvControl (eGPOEnI2CDVBS2) - dvbs2 powerup
12310 | | | | |-> load SKY LUT
12311 | | | | |-> init SKY demod
12312 | | | | |-> load SKY transport regs
12313 | | | | |-> fFeDrvControl(eGPODisI2CDVBS2) - disable DVBS2
12314 | | | | |-> ifSetFeFrequency() (app_fe/ecc3100/fe_ecc3100_tuner.cpp)
12315 | | | | | |-> get FrontEndAppRunTimeParam_S from rtdb
12316 | | | | | |-> set DVBS tuner freq
12317 | | | | | |-> set_Frequency() (app_fe/ecc3100/fe_ecc3100_low.cpp)
12322 | | | |-> FeNIMSAT2Tuner::FeNIMSAT2Tuner() (app_fe/stqpsk/fe_nimsat2_high.cpp)
12324 | | | | |-> FeNIMSAT2Tuner::PowerUpInitParam()
12327 | | | |_> save status (FrontEndRunTimeStatus_S)
12328 | | | rsber, signal level n signal corel level
12330 | | |_> create FE LNB app (app_fe/lnb/lnb_app.cpp)
12331 | | | FrontEndGenericLnb::FrontEndGenericLnb()
12334 | |_> CMsgDispatcherApplet::Attach() (msg_dispatcher.cpp)
12335 | |_> see common flows
12337 |-> FrontEndCreator_STQpsk() (app_fe/stqpsk/fe_stqpsk_creator.cpp)
12338 | |->CFeTunerSTQpskModule::CFeTunerSTQpskModule() (stqpsk/fe_stqpsk_module.cpp)
12340 | | |-> get FrontEnd App init params - rtdbiGetFrontEndAppInitParam()
12341 | | |-> FrontEndDrvInit(FeType_E, FrontEndGenericDrv) (drv_ird/frnt_end/fe_drv.cpp)
12343 | | | |-> new_FeSTQpskDrv() (fe_stqpsk_drv.cpp)
12344 | | | | |_> FeSTQpskDrv::FeSTQpskDrv() (fe_stqpsk_drv.cpp)
12345 | | | | |_> FeSTQpskDrv::PowerUpInit() - do nothing
12347 | | |-> FeNIMSAT2Tuner::FeNIMSAT2Tuner() (fe_nimsat2_high.cpp)
12349 | | | |-> hwcfgGetIrdHwConfig() (app_sys/hw_cntrl/hwcfg.cpp)
12350 | | | |-> set PLL to generate master clock for sampling freq (100/135MHz),
12351 | | | | stv288 reg PLLCTRL=0x86 for 135 and PLLCTRL=0x63 for 100MHz
12352 | | | |-> set runtime status (FrontEnd_status) for
12353 | | | | modulation=QPSK, rolloff=35 and pilots=off
12355 | | | |_> FeNIMSAT2Tuner::PowerUpInitParam() (fe_nimsat2_high.cpp)
12356 | | | |-> rtdbiGetSatelliteAppRunTimeParam()
12358 | | | |-> hwReadXlnx1()
12359 | | | |-> hwWriteXlnx1() - set input port
12360 | | | |-> intUnlock()
12361 | | | |-> CFeGenericModule::Reset
12363 | | | | |-> hwResetControl() (drv_ird/hw/hwreset.cpp)
12364 | | | | | |_> FrontEndResetControl() (drv_ird/hw/hwreset.cpp)
12365 | | | | | |-> GPOSetMode()
12366 | | | | | |-> GPOSetInputOutput()
12367 | | | | | |_> GPOWrite()
12368 | | | | |-> taskDelay(50ms)
12369 | | | | |-> hwResetControl()
12370 | | | | |_> taskDelay(20ms) }}}
12371 | | | |-> set_PUValues() - set board type parameters (fe_nimsat2_high.cpp)
12373 | | | | |-> calc_MasterClkFrequency() (fe_nimsat2_low.cpp) - set master clock
12374 | | | | |-> rtdbiGetSatelliteAppRunTimeParam()
12375 | | | | |-> FeNIMSAT2Tuner::set_LNB_mode() (fe_nimsat2_low.cpp) - set polarity
12376 | | | | | and power-off-on, hi/low band
12377 | | | | |-> set_VITERBI_mode() - viterbi rate
12378 | | | | |-> set_SPECTRAL_mode() - spectral inversion rate
12379 | | | | |-> symbol rate
12380 | | | | |_> cmSetSatelliteFrequency() - tuner frequency
12381 | | | | (app_sys/cnfg_mngr/conf_mngr.cpp)
12382 | | | | |-> rtdbFeGetSatelliteEntry()
12383 | | | | |-? CFeTunerUtil::feGetLbandFrequency()
12384 | | | | |-> rtdbFeSetSatelliteEntry()
12385 | | | | |-> CFeTunerUtil::feRestartTunerNewFreq()
12386 | | | | | |_> CFeTunerUtil::feRestartTunerNewParam()
12387 | | | | | |_> execmGenerateNewSystemEvent(eSetTunerFrequency)
12388 | | | | |_? CFeTunerUtil::feRestartTunerNewLnbBand()
12389 | | | | |_> CFeTunerUtil::feRestartTunerNewParam()
12390 | | | | |_> execmGenerateNewSystemEvent(eSetTunerLnbBand)
12392 | | | |-> ifSetFeSymRate() (app_fe/stqpsk/fe_nimsat2_high.cpp)
12393 | | | |-> set all demod regs (STV0288_Register)
12394 | | | | FeSTQpskDrv::ifFeDrvControl() (drv_ird/frnt_end/fe_stqpsk_drv.cpp)
12395 | | | |-> ifSetFeFrequency() (app_fe/stqpsk/fe_nimsat2_high.cpp)
12396 | | | |-> reset LNB
12397 | | | | ifFeDrvControl (eLnbWriteReg, LNBP21_Register);
12398 | | | |-> task delay for 10msec
12399 | | | |-> request_SetOptimize()
12400 | | | |-> request_WrOptimize()
12401 | | | |_> number of funcs calls xilinx fpga
12403 | | |_> FrontEndGenericLnb::FrontEndGenericLnb() (app_fe/lnb/lnb_app.cpp)
12405 | | |-> set FrontEnd App init (FrontEndAppInit_S) for LNB type
12406 | | |-? GenericDiSeqC::GenericDiSeqC() (diseqc_gen_app.cpp) - do nothing
12407 | | |-? DiSeqC1::DiSeqC1() (diseqc1_app.cpp) - do-nothing
12408 | | |_? DiSeqC2::DiSeqC2() (diseqc2_app.cpp) - do nothing }}}
12410 | |_> CMsgDispatcherApplet::Attach() (msg_dispatcher.cpp)
12411 | |_> see common flows
12413 | |-> FrontEndTaskCarrier() (fe_main.cpp)
12414 |-> CModuleBIT_FE::CModuleBIT_FE() (fe_main.cpp)
12415 |_> CFeTunerSTQpskModule::FePeriodicTaskHndlr() (fe_stqpsk_module.cpp)
12418 |-> task delay for 50ms
12419 |-> FeNIMSAT2Tuner::ifExecLnbCmnd() (fe_nimsat2_high.cpp)
12421 | |-> rtdbiGetSatelliteAppRunTimeParam() (rtdb_fe.cpp)
12422 | | |-> rtdbFeGetSatelliteEntry() (app_sys/rtdb/rtdb_fe.cpp)
12423 | | | freq, symrate, lnbpolarity, lnbband, lnbtoneMod, fecRate,
12424 | | | SpectrInv, LnbDiSeqCType, DriftComp, MdltType, RollOffFactor,
12425 | | | Pilots, InputPort, OutputStreamID
12426 | | |_> rtdbGetInputStreamIdentifier()
12427 | |-> FeSTQpskDrv::ifFeDrvControl() (drv_ird/frnt_end/fe_stqpsk_drv.cpp)
12428 | | set LNB polarity
12429 | |_> FeSTQpskDrv::ifFeDrvControl() (drv_ird/frnt_end/fe_stqpsk_drv.cpp)
12430 | set LNB band (high/low) }}}
12431 |-> FrontEndGenericLnb::ifExecLnbCmnd() (lnb_app.cpp)
12433 | |-> rtdbiGetSatelliteAppRunTimeParam()
12434 | |_? FeSTQpskDrv::ifFeDrvControl() - set polarity and band
12435 | |follow events (eLnbPowerOff, eLnbPowerOn, eLnbHiBand,
12436 | |eLnbLowBand, eLnbVerticalPolar, eLnbHorizPolar) call for
12437 | |eLnbWriteReg. Also event eLnbReadReg.
12443 |-> task delay for 50ms
12444 |-> busyloop - take sem
12445 |-> FeNIMSAT2Tuner::ifOptimFeLockPeriodicProc() (fe_nimsat2_high.cpp)
12447 | |-> FeNIMSAT2Tuner::Optimize_lock() (fe_nimsat2_low.cpp)
12449 | | |-> search_stateMachine()
12450 | |-> FeNIMSAT2Tuner::get_ReceiverStatus (fe_nimsat2_low.cpp)
12451 | | |-> get FE app runtime params
12452 | | |-> FeNIMSAT2Tuner::ReadVSTATUS() (app_fe/stqpsk/fe_nimsat2_low.cpp)
12453 | | | |_> ifFeDrvControl() - read demod reg VSTATUS
12454 | | |-> update fec_rate for (FrontEndRunTimeStatus_S FrontEnd_status)
12457 | |_> FeNIMSAT2Tuner::Frequency_search() (fe_nimsat2_low.cpp)
12459 |_> release sem }}}
12460 |_> CFeTunerEcc3100Module::FePeriodicTaskHndlr() (app_fe/ecc3100/fe_ecc3100_module.cpp)
12464 |-> FeEcc3100Tuner::ifExecLnbCmnd()
12465 |-> FrontEndGenericLnb::ifExecLnbCmnd()
12467 |-> busyloop - take sem
12468 |-> FeEcc3100Tuner::ifOptimFeLockPeriodicProc() (app_fe/ecc3100/fe_ecc3100_tuner.cpp)
12469 | |-> get FE app runtime params
12470 | |-> if QPSK call FeNIMSAT2Tuner::ifOptimFeLockPeriodicProc()
12472 | |--> Optimize_lock()
12473 | |--> get_ReceiverStatus()
12474 | |--> Frequency_search()
12475 |_> release sem }}}
12477 ExecMngrTask() (app_sys/exec_mngr/execmo.cpp)
12481 |_>>pMessagePars()==RunTimeProcess()
12483 |-> AppletObj[][]->AppletProcFunc() (app_fe/msg_dispatcher.cpp)
12484 | |-> eventFltrEventGroup()
12485 | |-> CMsgDispatcherApplet::Notify()
12486 | | |-> semTake() for 2sec
12487 | | |-> finds pair w/ appropriate event and call pair's Update()
12490 | | | CFeTunerSTQpskModule::mtSetFrequency() (app_fe/stqpsk/fe_stqpsk_module.cpp)
12492 | | | |-> CFEGenericTuner::ifSetStreamSourceDisable()
12493 | | | | |_> execmGenerateNewSystemEvent(eEventFrontEndStreamStatusChanged)
12494 | | | | (app_fe/fe_tuner.cpp)
12495 | | | |-> FeNIMSAT2Tuner::ifSetFeFrequency()
12497 | | | | |-> rtdbiGetSatelliteAppRunTimeParam() for Frequency
12498 | | | | |_> FeNIMSAT2Tuner::set_Frequency() (fe_nimsat2_low.cpp)
12499 | | | | |-> FeNIMSAT2Tuner::write_zif_registers() (fe_nimsat2_low.cpp)
12500 | | | | |_> ... }}}
12501 | | | |_> eNIMSAT2Tuner::ifRestartLockOptimize(eRestartNoFreq) (fe_nimsat2_high.cpp)
12503 | | | |-? FeNIMSAT2Tuner::set_Frequency() (fe_nimsat2_low.cpp)
12504 | | | |-> FeNIMSAT2Tuner::request_SetOptimize() (fe_nimsat2_low.cpp)
12505 | | | |_> FeNIMSAT2Tuner::request_WrOptimize()
12506 | | | |-> FeNIMSAT2Tuner::SetERROR_CONTROL()
12507 | | | |-> FeNIMSAT2Tuner::calc_SearchTimeConstants()
12508 | | | |-> FeNIMSAT2Tuner::set_SymbolRate()
12509 | | | |_> STAMP() set OPTLock_Delay and OPTtrack_stamp
12510 | | | |_> tickGet() }}} }}}
12511 | | | CFeTunerSTQpskModule::mtSetSymbolRate()
12514 | | | CFeTunerSTQpskModule::mtSetFecRate()
12516 | | | |-> CFEGenericTuner::ifSetStreamSourceDisable()
12517 | | | |-> FeNIMSAT2Tuner::ifSetFeFecRate()
12518 | | | |_> FeNIMSAT2Tuner::ifRestartLockOptimize(eRestartAll) }}}
12519 | | | CFeTunerSTQpskModule::mtSetSpectralInvers()
12522 | | | CFeTunerSTQpskModule::mtSetInputPort()
12525 | | | CFeTunerSTQpskModule::mtSetFreqScan()
12528 | | | CFeTunerSTQpskModule::mtSetLnbPolar()
12530 | | | |-> CFEGenericTuner::ifSetStreamSourceDisable
12531 | | | |-> FeEcc3100Tuner::ifExecLnbCmnd() (app_fe/ecc3100/fe_ecc3100_tuner.cpp)
12532 | | | | |-> get satellite app runtime params (FrontEndAppRunTimeParam_S)
12533 | | | | |_> FeNIMSAT2Tuner::ifExecLnbCmnd() - call DVBS tuner
12534 | | | |-> FrontEndGenericLnb::ifExecLnbCmnd() (app_fe/lnb/lnb_app.cpp)
12535 | | | | |-? FeEcc3100Drv::ifFeDrvControl() - set LNB polarity
12536 | | | | |_? FeEcc3100Drv::ifFeDrvControl() - set LNB band (low/high)
12537 | | | |_> ifRestartLockOptimize(eRestartAll) }}}
12538 | | | CFeTunerSTQpskModule::mtSetLnbBand()
12541 | | | CFeTunerSTQpskModule::mtSetDiSeqCProtocol()
12543 | | | |_> ifSetLnbDiSEqCInterfaceType() }}}
12547 | | | |-> CFeTunerEcc3100Module::mtSetFrequency()
12548 | | | | |-> CFEGenericTuner::ifSetStreamSourceDisable()
12549 | | | | |-> FeEcc3100Tuner::ifSetFeFrequency() (app_fe/ecc3100/fe_ecc3100_tuner.cpp)
12550 | | | | |_> FeEcc3100Tuner::ifRestartLockOptimize() (app_fe/ecc3100/fe_ecc3100_tuner.cpp)
12551 | | | |-> CFeTunerEcc3100Module::mtSetSymbolRate
12552 | | | |-> CFeTunerEcc3100Module::mtSetFecRate
12553 | | | |-> CFeTunerEcc3100Module::mtSetSpectralInvers
12554 | | | |-> CFeTunerEcc3100Module::mtSetInputPort
12555 | | | |-> CFeTunerEcc3100Module::mtSetFreqScan
12556 | | | |-> CFeTunerEcc3100Module::mtSetModulation
12557 | | | |-> CFeTunerEcc3100Module::mtSetRollOff
12558 | | | |-> CFeTunerEcc3100Module::mtSetPilots
12559 | | | |-> CFeTunerEcc3100Module::mtScrambleSeed
12560 | | | |-> CFeTunerEcc3100Module::mtSetLnbPolar
12561 | | | |-> CFeTunerEcc3100Module::mtSetLnbBand
12562 | | | |-> CFeTunerEcc3100Module::mtSetDiSeqCProtocol
12568 CMsgDispatcherApplet::Attach() (msg_dispatcher.cpp)
12569 | {{{ add to observer pairs
12570 | eRunControlProcFe, COpenHandler::COpenHandler()
12571 | eStopControlProcFe, CCloseHandler::CCloseHandler()
12572 | eRunControlProcAsi, CCloseHandler::CCloseHandler()
12573 | eRunControlProcRs422, CCloseHandler::CCloseHandler()
12574 | eRenewTrnspStrmSrcAsi, CCloseHandler::CCloseHandler()
12575 | eRenewTrnspStrmSrcRs422, CCloseHandler::CCloseHandler()
12576 | eStopControlProcAsi, CCloseHandler::CCloseHandler()
12577 | eStopControlProcRs422, CCloseHandler::CCloseHandler()
12579 | eSetTunerFrequency, CSetFrequencyHandler::CSetFrequencyHandler()
12580 | |_> CFeTunerSTQpskModule::mtSetFrequency()
12581 | eSetTunerSymRate, CSetSymbolRateHandler::CSetSymbolRateHandler()
12582 | |_> CFeTunerSTQpskModule::mtSetSymbolRate()
12583 | eSetTunerVitrbiRate, CSetVitrbiHandler::CSetVitrbiHandler()
12584 | |_> CFeTunerSTQpskModule::mtSetFecRate()
12585 | eSetTunerSpctrlInv, CSetSpectralInversHandler::CSetSpectralInversHandler()
12586 | |_> CFeTunerSTQpskModule::mtSetSpectralInvers()
12587 | eSetFrontEndInput, CSetSetInputPortHandler::CSetSetInputPortHandler()
12588 | |_> CFeTunerSTQpskModule::mtSetInputPort()
12589 | eSetTunerFrequencyScanBand, CSetFreqScanBandHandler::CSetFreqScanBandHandler()
12590 | |_> CFeTunerSTQpskModule::mtSetFreqScan(1)
12591 | eSetTunerFrequencyScan6MHz, CSetFreqScan6MHzHandler::CSetFreqScan6MHzHandler()
12592 | |_> CFeTunerSTQpskModule::mtSetFreqScan(2)
12594 | eSetTunerLnbPolar, CSetLnbPolarHandler::CSetLnbPolarHandler()
12595 | |_> CFeTunerSTQpskModule::mtSetLnbPolar()
12596 | eSetTunerLnbBand, CSetLnbBandHandler::CSetLnbBandHandler()
12597 | |_> CFeTunerSTQpskModule::mtSetLnbBand()
12598 | eSetTunerLnbDiSeqCProtocol, CSetDiSeqCProtocolHandler::CSetDiSeqCProtocolHandler()
12599 | |_> CFeTunerSTQpskModule::mtSetDiSeqCProtocol()
12602 Calculate Lband freq
12607 CModuleBIT_FE::CModuleBIT_FE()
12608 CModuleBIT_FE::ModuleCheckStatus()
12609 FrontEndTaskCarrier()
12610 CFeGenericModule::Reset()
12611 FrontEnd::FrontEnd()
12612 FrontEnd::~FrontEnd() - do nothing
12613 FrontEnd::getInstance()
12614 FrontEndInterfaceInit()
12617 CFEGenericTuner::CFEGenericTuner()
12618 CFEGenericTuner::ifSetStreamSourceEnable()
12619 CFEGenericTuner::ifSetStreamSourceDisable()
12620 CFEGenericTuner::ifRestartLockOptimize() - do nothing
12621 CFEGenericTuner::ifRunFeStreamControlProc()
12622 CFEGenericTuner::ifStopFeStreamControlProc() - do nothing
12623 CFEGenericTuner::ifOptimFeLockPeriodicProc() - do nothing
12624 CFEGenericTuner::ifSetFeFrequency() - do nothing
12625 CFEGenericTuner::ifSetFeFrequency() - do nothing
12626 CFEGenericTuner::ifSetFeSymRate() - do nothing
12627 CFEGenericTuner::ifSetFeFecRate() - do nothing
12628 CFEGenericTuner::ifSetFeSpectrInvType() - do nothing
12629 CFEGenericTuner::ifSetFeInputPort() - do nothing
12630 CFEGenericTuner::ifExecLnbCmnd() - do nothing
12631 CFEGenericTuner::ifSetFeFrequencyScan()
12632 CFEGenericTuner::Frequency_search()
12633 CFEGenericTuner::ifSetFeModulationType() - do nothing
12634 CFEGenericTuner::ifSetFeRollOffMode() - do nothing
12635 CFEGenericTuner::ifSetFePilots() - do nothing
12636 CFEGenericTuner::ifSetFeOutputStreamID() - do nothing
12637 CFEGenericTuner::ifSetFeQamType() - do nothing
12639 fe_tuner_util.cpp {{{
12640 CFeTunerUtil::feGetLbandFrequency()
12641 CFeTunerUtil::feGetSatelliteFrequency()
12642 CFeTunerUtil::feRestartTunerNewParam()
12643 CFeTunerUtil::feRestartTunerNewFreq()
12644 CFeTunerUtil::feRestartTunerNewSymRate()
12645 CFeTunerUtil::feRestartTunerNewVitrbRate()
12646 CFeTunerUtil::feRestartTunerNewSpctrlInv()
12647 CFeTunerUtil::feRestartTunerNewMdltType()
12648 CFeTunerUtil::feRestartTunerNewRollOff()
12649 CFeTunerUtil::feRestartTunerNewPilots()
12650 CFeTunerUtil::feRestartTunerNewLnbPolar()
12651 CFeTunerUtil::feRestartTunerNewLnbBand()
12652 CFeTunerUtil::feRestartTunerNewInput()
12653 CFeTunerUtil::feRestartTunerFrequencyScan()
12655 msg_dispatcher.cpp {{{
12656 CMsgDispatcherApplet::CMsgDispatcherApplet()
12657 CMsgDispatcherApplet::AppletProcFunc()
12658 CMsgDispatcherApplet::Attach()
12659 CMsgDispatcherApplet::Detach() - do nothing
12660 CMsgDispatcherApplet::Notify()
12665 GenericDiSeqC (diseqc_gen_app.cpp)
12669 ifSetDiSeqCInterfaceType()
12670 FrontEndGenericLnb (lnb_app.cpp)
12671 FrontEndGenericLnb()
12674 ifExecLnbDiSeqCCmnd()
12675 ifSetLnbDiSEqCInterfaceType()
12676 GetCurrentDiSeqCObjPtr()
12677 friend DiSEqCTask() (diseqc_task_app.cpp)
12680 request_WrOptimize()
12681 request_SetOptimize()
12682 request_StopOptimize()
12683 ifSetStreamSourceEnable()
12684 ifSetStreamSourceDisable()
12685 ifRestartLockOptimize()
12686 ifRunFeStreamControlProc()
12687 ifStopFeStreamControlProc()
12688 ifOptimFeLockPeriodicProc()
12693 ifSetFeSpectrInvType()
12696 ifSetFeFrequencyScan()
12697 ifSetFeModulationType()
12698 ifSetFeRollOffMode()
12700 ifSetFeOutputStreamID()
12704 DiSeqC1 > GenericDiSeqC (diseqc1_app.cpp)
12705 DiSeqC2 > DiSeqC1 (diseqc2_app.cpp)
12707 device_observer.h {{{
12711 CModuleBIT_FE : CModuleBIT
12712 CModuleBIT_FE() (fe_main.cpp)
12717 ModuleCheckStatus() (fe_main.cpp)
12721 FePeriodicTaskHndlr()
12727 CFeTunerModule : CFeGenericModule
12731 mtSetSymbolRate()=0
12733 mtSetSpectralInvers()=0
12741 CFeTunerSTQpskModule : CFeTunerModule
12742 CFeTunerSTQpskModule()
12743 virtual ~CFeTunerSTQpskModule()
12745 FePeriodicTaskHndlr()
12751 mtSetSpectralInvers
12756 mtSetDiSeqCProtocol
12758 port_dispatcher.h {{{
12759 CMsgDispatcherApplet : Applet
12760 - map <SystemEvent_E, CObserver*> _observers
12761 - AppletProcFunc(SystemEvent_E event,const void* data)
12762 - SEM_ID ProtectSem
12763 + CMsgDispatcherApplet()
12764 + ~CMsgDispatcherApplet()
12774 fe_stqpsk_creator.cpp {{{
12775 FrontEndCreator_STQpsk()
12777 fe_stqpsk_module.cpp {{{
12778 CFeTunerSTQpskModule::CFeTunerSTQpskModule()
12779 CFeTunerSTQpskModule::~CFeTunerSTQpskModule()
12780 CFeTunerSTQpskModule::Update()
12781 CFeTunerSTQpskModule::FePeriodicTaskHndlr()
12782 CFeTunerSTQpskModule::Open()
12783 CFeTunerSTQpskModule::Close()
12784 CFeTunerSTQpskModule::mtSetFrequency()
12785 CFeTunerSTQpskModule::mtSetSymbolRate()
12786 CFeTunerSTQpskModule::mtSetFecRate()
12787 CFeTunerSTQpskModule::mtSetSpectralInvers()
12788 CFeTunerSTQpskModule::mtSetInputPort()
12789 CFeTunerSTQpskModule::mtSetFreqScan()
12790 CFeTunerSTQpskModule::mtSetLnbPolar()
12791 CFeTunerSTQpskModule::mtSetLnbBand()
12792 CFeTunerSTQpskModule::mtSetDiSeqCProtocol()
12794 fe_nimsat2_high.cpp {{{
12795 FeNIMSAT2Tuner::FeNIMSAT2Tuner()
12796 FeNIMSAT2Tuner::ifRunFeStreamControlProc()
12797 FeNIMSAT2Tuner::ifStopFeStreamControlProc()
12798 FeNIMSAT2Tuner::ifSetFeFrequency()
12799 FeNIMSAT2Tuner::ifSetFeSymRate()
12800 FeNIMSAT2Tuner::ifSetFeSpectrInvType()
12801 FeNIMSAT2Tuner::ifSetFeFecRate()
12802 FeNIMSAT2Tuner::ifSetFeInputPort()
12803 FeNIMSAT2Tuner::ifExecLnbCmnd()
12804 FeNIMSAT2Tuner::ifOptimFeLockPeriodicProc()
12805 FeNIMSAT2Tuner::ifRestartLockOptimize()
12806 FeNIMSAT2Tuner::set_PUValues()
12807 FeNIMSAT2Tuner::PowerUpInitParam() - fpga register usage
12809 fe_nimsat2_low.cpp {{{
12810 FeNIMSAT2Tuner::write_zif_registers()
12811 FeNIMSAT2Tuner::read_zif_registers()
12812 FeNIMSAT2Tuner::set_Frequency()
12813 FeNIMSAT2Tuner::set_TunerBandwidth()
12814 FeNIMSAT2Tuner::set_SymbolRate()
12815 FeNIMSAT2Tuner::calc_MasterClkFrequency()
12816 FeNIMSAT2Tuner::calc_SearchTimeConstants()
12817 FeNIMSAT2Tuner::ReadSymbolRate()
12818 FeNIMSAT2Tuner::ReadVSTATUS()
12819 FeNIMSAT2Tuner::ReadERRCNT()
12820 FeNIMSAT2Tuner::ReadNIRH_L()
12821 FeNIMSAT2Tuner::ReadAGC1()
12822 FeNIMSAT2Tuner::ReadSI()
12823 FeNIMSAT2Tuner::ReadDEROTATOR()
12824 FeNIMSAT2Tuner::DoDerot_Correction()
12825 FeNIMSAT2Tuner::SetERROR_CONTROL()
12826 FeNIMSAT2Tuner::vber_count_avarge()
12827 FeNIMSAT2Tuner::restart_DerotatorMachine()
12828 FeNIMSAT2Tuner::restart_CoarseMachine()
12829 FeNIMSAT2Tuner::restart_FineMachine()
12830 FeNIMSAT2Tuner::restart_AutoCenterMachine()
12831 FeNIMSAT2Tuner::lock_unlock_state()
12832 FeNIMSAT2Tuner::acquisition_state()
12833 FeNIMSAT2Tuner::coarse_carrier_position_state()
12834 FeNIMSAT2Tuner::check_coarse_carrier_state()
12835 FeNIMSAT2Tuner::check_carrier_fine_state()
12836 FeNIMSAT2Tuner::carrier_center_state()
12837 FeNIMSAT2Tuner::carrier_center_again_state()
12838 FeNIMSAT2Tuner::timing_center_state()
12839 FeNIMSAT2Tuner::data_state()
12840 FeNIMSAT2Tuner::tracking_state()
12841 FeNIMSAT2Tuner::search_stateMachine()
12842 FeNIMSAT2Tuner::Optimize_lock()
12843 FeNIMSAT2Tuner::request_WrOptimize()
12844 FeNIMSAT2Tuner::request_SetOptimize()
12845 FeNIMSAT2Tuner::request_StopOptimize()
12846 FeNIMSAT2Tuner::set_LNB_mode()
12847 FeNIMSAT2Tuner::set_VITERBI_mode()
12848 FeNIMSAT2Tuner::set_SPECTRAL_mode()
12852 FrontEndGenericLnb::FrontEndGenericLnb()
12853 FrontEndGenericLnb::ifExecLnbPowerUp()
12854 FrontEndGenericLnb::ifExecLnbCmnd()
12855 FrontEndGenericLnb::ifExecLnbDiSeqCCmnd()
12856 FrontEndGenericLnb::ifSetLnbDiSEqCInterfaceType()
12857 FrontEndGenericLnb::GetCurrentDiSeqCObjPtr()
12859 diseqc_gen_app.cpp {{{
12860 GenericDiSeqC::GenericDiSeqC()
12861 GenericDiSeqC::~GenericDiSeqC()
12862 GenericDiSeqC::ifExecDiSeqCCmnd()
12863 GenericDiSeqC::ifSetDiSeqCInterfaceType()
12865 diseqc_task_app.cpp {{{
12867 lnbSendMsg2DiSeqCTask()
12868 lnbParseMsg2DiSeqCTask() - empty
12869 CreateDiSeqCProc() - call to it commented at FrontEndGenericLnb()
12871 diseqc1_app.cpp {{{
12872 DiSeqC1::DiSeqC1() - empty
12873 DiSeqC1::~DiSeqC1() - empty
12874 DiSeqC1::ifExecDiSeqCCmnd()
12875 DiSeqC1::ifSetDiSeqCInterfaceType() - empty
12877 diseqc2_app.cpp {{{
12878 DiSeqC2::DiSeqC2() - empty
12879 DiSeqC2::~DiSeqC2() - empty
12880 DiSeqC2::ifExecDiSeqCCmnd()
12881 DiSeqC2::ifSetDiSeqCInterfaceType() - empty
12885 FrontEnd (fe_main.cpp)
12889 CFeTunerUtil (fe_tuner_util.cpp)
12890 - feRestartTunerNewParam()
12891 |_> execmGenerateNewSystemEvent() (from app_sys/exec_mngr/event_util.cpp)
12892 |-> execmFillEventMessageData()
12894 + feGetLbandFrequency() - returns Lband freq
12895 + feGetSatelliteFrequency() - returns Ku|Cband freq
12896 + feRestartTunerNewFreq() -> feRestartTunerNewParam()
12897 + feRestartTunerNewSymRate() -> feRestartTunerNewParam()
12898 + feRestartTunerNewVitrbRate() -> feRestartTunerNewParam()
12899 + feRestartTunerNewSpctrlInv() -> feRestartTunerNewParam()
12900 + feRestartTunerNewInput() -> feRestartTunerNewParam()
12901 + feRestartTunerFrequencyScan() -> feRestartTunerNewParam()
12902 + feRestartTunerNewMdltType() -> feRestartTunerNewParam()
12903 + feRestartTunerNewRollOff() -> feRestartTunerNewParam()
12904 + feRestartTunerNewPilots() -> feRestartTunerNewParam()
12905 + feRestartTunerNewLnbPolar() -> feRestartTunerNewParam()
12906 + feRestartTunerNewLnbBand() -> feRestartTunerNewParam()
12913 fe_stqpsk_drv.cpp {{{
12914 FrontEndGenericDrv* new_FeSTQpskDrv()
12915 FeSTQpskDrv::FeSTQpskDrv()
12916 FeSTQpskDrv::ifFeDrvControl()
12917 eZifS1WriteReg eZifS1ReadStatOnly eZifS1ReadStatWithSubAdrs
12919 FeSTQpskDrv::PowerUpInit()
12923 FrontEndGenericDrv()
12927 FeSTQpskDrv : FrontEndGenericDrv
12929 PowerUpInit() - do nothing
12937 rtdbiGetSatelliteAppRunTimeParam()
12938 rtdbFeGetSatelliteEntry()
12942 Parameters to deal w/ {{{
12950 Tuner (zifi=zero IF)
12957 |ini name |description |possible values |units |
12958 |--------------------------------------------------------------------|
12959 |frequency |Transponder/ L Band |L Band: |KHz |
12960 | |frequency. |950000 - 2150000| |
12961 | |Sets the satellite | | |
12962 | |frequency. This frequency |Ku Band: | |
12963 | |controls the range of |10700000 - | |
12964 | |frequency transmission |12750000 | |
12965 | |received from |C Band: | |
12966 | |the satellite. |3200000 - | |
12968 |symbol rate |Expected symbol rate of |1000000 – |Baud |
12969 | |stream. |45000000 | |
12970 |fec rate |Forward error correction |0 - 1/2, |Enum |
12971 | |rate. |1- 2/3, | |
12979 |spectral |Inversion of a spectrum |0 - Auto, |Enum |
12980 |inversion | |1 - Inverted, | |
12981 | | |2 - Normal | |
12982 |lnb power |Polarity of a low-noise |0 - Vertical 13V|Enum |
12983 |supply |block converter. |1 - Horizontal –| |
12986 |lnb 22khz |Use of LNB 22Khz |0 - Low – 22Khz |Enum |
12988 | | |1 - High – | |
12990 |freq drift |Enable/Disable drift |0 – Off |Enum |
12991 |compansate |compensation |1- On | |
12992 |lnb lo type |Defines range for LNB L.O. |0 – DiSEqC |Enum |
12993 | |frequency. |1 – universal | |
12994 | | |2 - wide-band | |
12995 | | |3 –numeric | |
12997 | | |4 – numeric | |
12999 |lnb lo |Local oscillator frequency.| LNB L.O. Type =|KHz |
13000 |frequency | |ku-band : | |
13003 | | |LNB L.O. Type= | |
13005 | | |5000000-6000000 | |
13006 |frequency range|Defines range for Frequency|0 - l_band |Enum |
13007 | |parameter |1 - c_band | |
13008 | | |2 - ku_band | |
13009 |lnb tone mod | |0 – modulated |Enum |
13010 | | |1- unmodulated | |
13011 |lnb diseqc type| |0 – none |Enum |
13012 | | |1- diseqc-1 | |
13013 | | |2 – diseqc-2 | |
13014 |modulation type|The Modulation object |0 – qpsk |Enum |
13015 | |Defines the modulation type|1 – 8psk | |
13016 | |of the receiver, and by |2 – 16qam | |
13017 | |that sets the amount of | | |
13018 | |different tones received | | |
13019 | |through the IRD | | |
13020 |rolloff factor | |0 – 25 |Enum |
13023 |pilots | |0 – Off |Enum |
13025 |port |Active input port |1 - 4 | |
13029 + 1. Add tbl_fe_drv_map, it's api and HwMngr to fill it (23dec2007)
13030 + 2. Release FE Mngr framework (23dec2007)
13031 + 3. Add FeConfig table and related api (24dec2007)
13032 + 4. Add cli for FeDrvMap table's cli (24dec2007)
13033 + 5. Add reset msg and it's cli (24dec2007)
13034 + 6. FeConfig table api + cli (lnblotype, lnblofreq, freqrange) (25dec2007)
13035 + 7. FeConfig table api + cli (rest of params) (26dec2007)
13036 + 8. Support setting all fe config params (26dec2007)
13037 + 9. FeStatus table + db api (partial) (30dec2007)
13041 Frontend to support DVBS2_ECC card {{{
13044 Dual S/S2 card, where the DVB-S solution - STB6000 tuner, STV0288
13045 demodulator and the DVB-S2 solution - CE5038 tuner, ESS3100 demod, PCA9534
13047 Card elements: tuner/converter, demodulator, LNB control, I2Cto8IO (only S2)
13051 ---- the cfg_reg=0xff,inp=0xff,out=0xff
13052 set config: w gpo cfg_reg 0x61
13053 ---- the cfg_reg=0x60,inp=0xff,out=0xff
13054 rst dvbs2: w gpo out_reg 0xb
13056 ---- the cfg_reg=0x61,inp=0x65,out=0x4
13057 en ecc demod i2c: w gpo out_reg 0xc
13058 ---- the cfg_reg=0x60,inp=0x6c,out=0xc
13060 greader.elf -w -d 20 -i 3 -v 0x61
13061 greader.elf -w -d 20 -i 1 -v 0xb
13062 greader.elf -w -d 20 -i 1 -v 0x4
13063 greader.elf -w -d 20 -i 1 -v 0xc
13067 GPIO device (pca9538) {{{
13069 The device provides i/o config.
13072 Reg 0 - r - input port
13073 Reg 1 - rw - output port
13074 Reg 2 - rw - polarity inv
13075 Reg 3 - rw - config
13077 The config reg (3) should be set according to usage of physical i/o pins.
13078 Each bit describes if according pin is used for input or output.
13079 In addition each pin connected to something, so certain functionality
13080 supported. For example, 4th pin can set dvbs2 demod enable/disable.
13082 7 - O - select dvbs or dvbs2 (1 - dvbs)
13084 5 - I - pl (phys layer)
13085 4 - O - en i2c dvbs2 tuner (1 -enable)
13086 3 - O - en i2c dvbs2 demod (1 -enable)
13087 2 - O - reset dvbs2 (1 -en, 0 -dis)
13088 1 - O - reset dvbs (1 -en)
13089 0 - I - reset of dvbs2 demod (1-en, 0-off/rst)
13091 Once the config byte should be written. After that the output should go to
13092 output reg and otherwise from input reg.
13093 The current status of input can be read from input reg, where output bits give
13094 no information. Same for input status.
13096 IRP default config (22feb2009)
13103 Has 1 read reg and 12 write regs.
13106 POR FL SB3 SB2 SB1 SB0 TU1 TU0
13108 POR bit - PowerOnReset -
13109 FL bit - Freq (& Phase) Lock - `1' if the device is locked
13110 SB[3:0] - VCO Sub-Band
13111 TU[1:0] - Tune unlock state - these bits define tune unlock window
13113 0 0 - Vvar inside threshold
13114 0 1 - Vvar above threshold
13115 1 0 - Vvar below threshold
13118 LNB functional flow {{{
13120 The 22kHz sends to LNB together w/ 13/18V. So the power out of LNB should be on
13121 to send any signal.
13124 LD7 (green) - polarity - On=no power, Off=Vertic(13V)/Horiz(18V)
13125 LD6 (green) - lnb power - On=power off
13126 LD5 (green) - high band - On=low, Off=high(22kHz)
13129 LD3 (green) - pl (physical layer)
13147 22 eGPODisI2CZifS2 }}}
13155 CFePortSKYPHY::SetPortFreq {{{
13156 | |-CFeTunerCE5038::set_Frequency()
13163 15 eZifS2ReadStatOnly
13166 |-CFePortSKYPHY::SetPortSymRate()
13167 |-ecc3100_set_symbolrate()
13168 5 eWriteLongRegEnGPO
13171 # 6 eReadLongRegEnGPO
13174 5 eWriteLongRegEnGPO
13177 5 eWriteLongRegEnGPO
13180 5 eWriteLongRegEnGPO
13183 5 eWriteLongRegEnGPO
13186 |-CFeTunerCE5038::set_TunerBandwidth()
13196 |-CalcBitRateFromSR()
13197 |-SetBitRate2_ECC()
13198 ?6 eReadLongRegEnGPO
13199 ? 23 eGPOEnI2CDVBS2
13200 ? 24 eGPODisI2CDVBS2
13201 5 eWriteLongRegEnGPO
13204 |-CFePortSKYPHY::SetPortSpectrInv
13205 # 6 eReadLongRegEnGPO
13208 # 6 eReadLongRegEnGPO
13211 # 6 eReadLongRegEnGPO
13214 |-CFePortSKYPHY::SetPortRollOff
13215 # 6 eReadLongRegEnGPO
13218 5 eReadLongRegEnGPO
13220 24 eGPODisI2CDVBS2 }}}
13227 There is fifo buffer in sdram on the dvbs2 card. The sdram size iz 16MB.
13228 The fifo size iz 4MB, it contains 4K rows 1KB each.
13229 The buffer has 4096 rows each 256*32bits (8192b = 1KB)
13238 The fifo_meter is rd_row - wr_row, means number of occupied rows.
13239 The fifometer occupied 12bit int i2c read at bytes 0xb n 0xa
13240 0xa 11 - 8 this is last 4bits of fifo_meter
13241 0xb 7 - 0 this is 1st 8bits of fifometer
13243 If stream packet is 188B, so
13247 Size of fifo is 33554432 bits
13248 Max fullness allowed 32768000 bits
13250 ram_fullness_crn - current fullness in Bytes
13251 ram_fullness_max - keep max fullness value in B ( 0 )
13252 ram_fullness_min - keep min fullness value in B ( 4194304 x400000 )
13253 ram_fullness_lastdo_max - last max fullness value in B ( 4194304 x400000 )
13254 ram_fullness_lastdo_min - last min fullness value in B ( 0 )
13256 insert -> | row | 0
13264 To get current fullness in Bs.
13265 If current > max fullness, so set max fullness to current.
13266 If current < min fullness, so set min fullness to current.
13269 Follows should be init as 1 in IRP. (Haim 26mar2009)
13270 hw_config.FloatConfig.FeDVBS2AcurateTSOut
13271 hw_config.FloatConfig.FeDVBS2DDSTSOut
13272 Follows for new fast algo (Haim 26mar2009)
13273 hw_config.FloatConfig.FeDVBS2DDSDriftDis
13277 FeEcc3100Tuner::PowerUpInitParam()
13279 |-> Set port sym rate
13280 | |-> CalcBitRateFromSR()
13281 |-> Set port modulation
13282 | |-> CalcBitRateFromSR()
13283 |-> Set port stream ID
13284 | |-> CalcBitRateFromSR()
13286 |-> Get dejitter revision (2nd byte)
13287 |-> if rev==0x03, set FeDVBS2FPGA03_DDS=1, otherwise FeDVBS2FPGA03_DDS=0
13292 |-> Check ECC if locked.
13293 |-> from unlock to lock: Check MPEG packet type config
13298 | |-> OPTLock_Delay = SKYPHY_ASIC_MONITOR_SML_PERIOD (20ms)
13299 |-> from lock to unlock:
13301 | |-> OPTLock_Delay = SKYPHY_ASIC_MONITOR_BIG_PERIOD (300ms)
13302 |-> staying in lock: on every 5
13303 | |-> CalcBitRateFromPCR()
13304 | |_> OPTLock_Delay = SKYPHY_ASIC_MONITOR_SML_PERIOD (20ms)
13305 |_> otherwise (staying in unlock)
13306 |-> CalcBitRateFromSR()
13310 get_ReceiverStatus()
13312 |-> (8) if locked, update bit rate according to receiver params
13313 | |-> CalcBitRateFromSignalStatus()
13318 |-> RestartLockOptimize()
13319 \_> CalcBitRateFromSR() - calc bitrate from sym rate
13324 CalcBitRateFromSR() {{{
13325 gets; RS_value, modulation, FastOutputRate, boolean
13326 |-> calc output bit rate from modcod+sym rate and if (FastOutputRate)
13327 |-> set accurateOutputRate=ACCURATE_OUTPUT_START
13328 |-> accurateOutputStamp=0
13329 | Enable_DDS() - disable DDS
13330 | SetBitRate2_DDS() - "New SR-Restart"
13331 | Enable_DDS() - enable DDS
13332 |_> SetBitRate2_ECC()
13334 CalcBitRateFromPCR() {{{
13335 |-> if get bit rate > 0
13338 Enable_DDS() - en/dis DDS by reset
13340 SetBitRate2_DDS() {{{
13341 |-> if same rate as before - return
13342 |_> config dj by calling i2c addr
13348 Acquisition_mode - can be 0 for Range, 1 - Timing
13349 OPTLock_Delay - delay till next call. Can be as follows
13350 SKYPHY_ASIC_MONITOR_BIG_PERIOD 300m
13351 SKYPHY_ASIC_MONITOR_SML_PERIOD 20m
13352 OPTtrack_stamp - timestamp
13353 TunerOptimize_TRACK - keep status of last call of Optimize_lock()
13358 ACCURATE_OUTPUT_START
13359 ACCURATE_OUTPUT_RFSET
13360 ACCURATE_OUTPUT_1STPCR - need for multi stream
13361 ACCURATE_OUTPUT_DONE - accurated
13364 Check if OPTLock_Delay & check w/ OPTtrack_stamp
13365 Stamp on OPTtrack_stamp
13366 is_new_telemetry_available() - ?
13368 Read PL frame sync.
13370 If OPT_AlgoState==0 || Acquisition_mode==0
13371 pl_unsync_process() - ?
13372 set OPTLock_Delay = SKYPHY_ASIC_MONITOR_BIG_PERIOD
13375 Read GPIO input status & check sync bit.
13376 lock_unlock_state() - ? (set tx_lock_state)
13377 Read TX_STATUS2 reg & check
13378 if baseband frame failed CRC since last interrupt, so
13379 basebane frame processor finite state in sync - ?
13380 if MPEG packet failed CRC since last interrupt - ?
13381 If PL sync & BB sync
13382 Read BB_HDR_STAT2 (transport status reg)
13383 If NPD, set mpeg_type_config
13387 update mpeg_type_config with ISSY_SHORT or ISSY_LONG
13388 Config MPEG packet type (write to MPEG_TYPE_CONFIG)
13390 If from Unlock to Lock
13391 (TunerOptimize_TRACK==OFF & tx_lock_state==ST_FEL_LOCK)
13392 set OPTLock_Delay = SKYPHY_ASIC_MONITOR_SML_PERIOD
13393 If from Lock to Unlock
13394 (TunerOptimize_TRACK==ON & tx_lock_state==ST_FEL_UNLOCK)
13395 set TunerOptimize_TRACK = OFF
13396 set OPT_AlgoRUN = 1
13397 set OPT_AlgoState = 0
13398 set OPTLock_Delay = SKYPHY_ASIC_MONITOR_BIG_PERIOD
13400 (TunerOptimize_TRACK==ON & tx_lock_state==ST_FEL_LOCK)
13401 Every 5 SKYPHY_ASIC_MONITOR_SML_PERIOD call CalcBitRateFromPCR()
13402 set OPTLock_Delay = SKYPHY_ASIC_MONITOR_SML_PERIOD
13404 call CalcBitRateFromSR()
13405 On every 5th OPT_AlgoState
13408 NPD - Null-packet Deletion
13409 ISSY - Input Stream SYncronization
13410 UPL - User Packet Length
13411 ISI - Input Stream Identifier
13415 DVB frontend configurable parameters {{{
13419 frequency - tuner freq (L band 950000 - 2150000 Hz)
13420 symbol rate - symbols per sec (sps)
13421 FEC rate - 1/2, 2/3, 3/4, 4/5, 5/6, 7/8, 8/9, auto
13422 Spectral invertion - normal, inverted
13423 Drift compansation - off
13425 RollOff - 20%, 25%, 35%, auto
13427 Polarity - set polarity of LNB converter (13/18V vertical/horizontal)
13428 lnb_band - On/Off 22kHz to set high or low band in Ku/C band
13429 freq_range range of
13430 lnb_lo_type define LNB local oscillator freq range (diseqc, universal, wide band, Ku-band, C-band)
13431 lnb_lo_freq lnb lo frequency
13435 FEC rate (add.) - 1/4, 1/3, 2/5, 3/5, 9/10
13439 SNMP runtime path {{{
13440 The SNMP manager while running looking for MIBs in wrong path (this is
13442 The work around for the problem is to run script w/ follows
13443 snmpset -c public localhost UCD-DLMOD-MIB::dlmodName.1 s "ifTable" UCD-DLMOD-MIB::dlmodPath.1 s "${PWD}/ifTable.so"
13446 -------------------------------------------------------------------------------
13447 ----------------------------------- Softier -----------------------------------
13448 -------------------------------------------------------------------------------
13449 001 - QA machine preparation procedure {{{
13451 draft 0.1 07oct2003
13453 --- I --- Introduction {{{2
13455 This doc supposed to help you to build QA machine and whole
13456 environment for check images on target cards. It is splited in
13457 2 main sections called Windows machine and Linux machine, because
13458 of complication of creation procedure. Shortly speaking, the image
13459 should be created on Linux machine and executed from Windows machine.
13461 If you have any question regarding this doc please call to Gery Kahn
13464 --- II --- Windows machine {{{2
13467 a. Hardware to collect
13469 Power supply for DM642,
13474 b. Connect PCIBridge to Emulator
13475 c. Connect JTAG cable to Emulator and DM642
13476 d. Connect Serial cable between COM port on Windows machine and serial
13478 e. Connect power supply to DM642
13480 2. PCI Bridge card installation
13481 a. Insert PCIBridge card in PCI slot
13482 b. Install WinDrive 6.02
13483 c. Start WinDrive and choose File>New
13484 d. Check that follows line exists in the list:
13485 "PCI: TIPCI2040 PCI-DSP Bridge Controller"
13487 3. Prepare Windows machine
13488 a. Install Code Composer Studio(CCS) 2.2
13489 b. Upgrade it to CCS 2.2.18 from s-main/company/install/codecomposer/upgrade
13490 c6000-2.20.00-full-to-c6000-2.20.18-full
13491 c. Install from EVM642 CD (should create c:/ti/boards/...
13492 d. Copy follows files from gery-dt/share/ccs
13493 softier.cfg, servis.dll, tixds6400_11.drv
13494 c. Run CSS Setup (icon on desktop)
13495 Choose: "Install Device Drivers"
13496 Add file tixds6400_11.drv
13497 Drap-n-Drop newly installed driver in "System Config" window
13498 Properties window automaticly opened
13499 Choose "Auto generate board data file w/ extra config file"
13500 Choose config file softier.cfg
13501 Under tab "Processor Config" choose "Add Single"
13502 Under tab "Startup GEL file" choose ti/boards/gel/evm642.gel
13504 4. Running Image on Target
13506 b. Choose File>Load Program and find linux.out, previously copied
13507 from Linux machine.
13508 c. Choose File>Data>Load and find romfs.dat, previously copied from
13510 d. Install and start TerraTerm application
13511 e. Config it by choosing Setup>Serial port and setup options:
13515 f. Choose Run in CCS2. After 5-10 sec should see output of started image
13516 and get shell prompt.
13517 g. Run 'ls' and see that it's functional.
13519 --- III --- Linux machine {{{2
13522 a. create user in linux-s machine
13525 a. telnet to linux-s
13526 b. Copy tms-cx-tools-<timestamp>.tbz to your machine
13527 scp /stuff/repository/kernel/tools/tms-cx-tools-<timestamp>.tbz
13529 c. back to own machine and cd /
13530 d. Follows will open tar file:
13531 sudo tar -jxf <path>/tms-cx-tools-<timestamp>.tar.bz2
13532 e. cp -r /usr/local/tools/.cxoffice ~
13533 f. Checking previously installed tools, by calling
13534 tms320c6-coff-gcc from command line. Should return
13535 '>> error: no input files'
13538 a. add to .tcshrc or .bashrc at home dir
13539 setenv CVSROOT :pserver:<user>@linux-s:/cvs
13541 export CVSROOT=:pserver:<user>@linux-s:/cvs
13542 b. In tcsh run 'source ~/.tcshrc'
13543 if bash run '. ~/.bashrc'
13544 c. Go to home dir and call 'cvs login'
13545 d. run 'cvs co uClinux-dist'
13546 e. 'cd uClinux-dist'
13547 f. run 'sh mklinks.sh'
13548 g. If you running Bash call
13549 '. /usr/local/tools/env.src
13550 If you running Tcsh call
13551 <missing for now 7oct2003 Gery>
13552 h. call 'make xconfig' and choose
13553 'Target platform selection' where
13554 put Vendor/Product to 'TI/TMS320C6 ;
13555 Libc version to 'uClibs' ;
13556 put 'y' for Customize Kernel Settings
13557 and 'y' for Customize Vendor/User Settings
13558 if want to edit those.
13559 Push 'MainMenu' and 'Save and Exit'
13562 k. After build is done copy uClinux-dist/linux-2.4.x/linux.out
13563 and uClinux-dist/images/romfs.dat to previously prepared Windows
13568 002 - Add user appl to uClinux {{{
13570 All paths start from uClinux-dist
13572 add to user/Makefile
13573 dir_$(CONFIG_USER_HELLO_HELLO) +=hello
13575 add to config/config.in
13576 bool 'hello' CONFIG_USER_HELLO_HELLO
13578 create dir named 'hello'
13580 copy C,H and Makefile to previously created dir
13585 003 - Compile LTP for tms320c6 {{{
13587 Changes in /usr/local/tools/tms320c6-coff-gcc {{{2
13589 1. chmod tms320c6-coff-gcc
13590 sudo chmod 775 /usr/local/bin/tms320c6-coff-gcc
13591 2. edit tms320c6-coff-gcc
13592 export GCC2C_CONVERTER_OPTIONS="-D_TMS320C6X -D_TMS320C6x \
13594 -I/home/ady/uClinux-dist/uClibc/include \
13595 -I/home/ady/uClinux-dist/linux-2.4.x/include \
13596 -I/home/ady/uClinux-dist/linux-2.4.x/include/linux \
13598 export GCC2C_WRAPPER_SAVETEMPS=1
13604 If defined _GNU_SOURCE so
13605 uclinux/uclibc/include/signal.h
13606 |->uclinux/uclibc/include/ucontext.h
13607 |-> sys/ucontext.h which is not found
13609 from uclinux/glibc/NOTES
13610 If you define this macro, everything is included: ISO C89, ISO C99, POSIX.1,
13611 POSIX.2, BSD, SVID, X/Open, LFS, and GNU extensions. In the cases where
13612 POSIX.1 conflicts with BSD, the POSIX definitions take precedence.
13613 from uClinux-dist/glibc/manual/signal.texi
13614 signal handler default behaviour depends in GNU and non-GNU libs, so
13615 depends on _GNU_SOURCE
13616 There is no handler activity in sigpending02.c so ...
13618 solution: delete _GNU_SOURCE from testcases/kernel/syscalls/sigpending/Makefile
13619 sent email to ltp-list@lists.sourceforge.net
13624 Changes in uclinux/linux-2.4.x/include/linux/stddef.h {{{
13628 !!!THOSE CHANGES error uclinux compilation!!!
13633 typedef unsigned long size_t;
13637 Compiler ti search size_t in uclinux/lib/libc/include/stddef.h
13641 # define ptrdiff_t int
13644 from uClinux-dist/linux-2.4.x/include/linux/malloc.h if __STDC__, so include
13645 stddef.h, but no definition for ptrdiff_t there.
13647 Files uClinux-dist/uClibc/include/malloc.h
13648 uClinux-dist/lib/uClibc/include/malloc.h
13649 uClinux-dist/glibc/malloc/malloc.h
13655 004 - LTP project {{{1
13657 A - need changes for porting
13658 B - compilation problem/not implemented yet
13663 G - E + integrated in test framework
13667 Min installation needed placed in ~/prjs/rt_ltp
13669 The install target of main Makefile calls to install target of Makefiles under
13670 testcases and tools directories.
13674 |->testcases install {{{3
13676 | |->create 'bin' dir for further links
13678 | |->command install
13680 | |->kernel install
13692 | | | | |_>create links from local binaries to ../../../bin/
13694 | | | |->mmapstress
13712 | | |->sched install
13714 | | |_>syscalls install
13718 | |_>network install
13720 |->tools install {{{3
13722 | |->apicmds install
13724 | | |_>create links in ../testcases/bin/ for follows binaries
13725 | | tst_brk tst_brkm tst_res tst_resm tst_exit tst_flush tst_brkloop
13728 | |->genload install
13730 | | |_>create link for 'stress' like ../testcases/bin/genload
13732 | |->netpipe-2.4 install
13734 | |->netpipe-2.4-ipv6 install
13736 | |_>create link for 'gethost' in ../testcases/bin/
13738 |_> run IDcheck.sh {{{3
13740 |-> creates if needed users: nobody, bin, daemon and groups: nobody, bin,
13742 |_> checks if executed by root
13750 At root dir exists 4 scripts:
13751 IDcheck.sh - executed by make install (see installation)
13752 runalltests.sh - actually calls follows
13753 pan/pan $quiet_mode -e -S $instances $duration -a $$ -n $$ $pretty_prt -f ${TMP}/alltests $logfile $outputfile
13754 where 'alltests' content binaries and command lines to run. It is created from files under runtests/
13755 Particulary 'mem01' found in 'mm', 'crashme'; 'mem02' in 'mm', 'stress.part1'
13764 |->get_high_address() from ./lib/get_high_address.c {{{3
13766 | |->testcases/kernel/syscalls/access/access03.c
13767 | | |_>negative test cases
13768 | |->testcases/kernel/syscalls/access/access05.c
13769 | | |_>negative test cases
13770 | |->testcases/kernel/syscalls/chmod/chmod06.c
13771 | | |_>negative test cases
13772 | |->testcases/kernel/syscalls/chown/chown04.c
13773 | | |_>negative test cases
13774 | |->testcases/kernel/syscalls/lchown/lchown02.c
13775 | | |_>negative test cases
13776 | |->testcases/kernel/syscalls/link/link04.c
13777 | | |_>negative test cases
13778 | |->testcases/kernel/syscalls/lstat/lstat02.c
13779 | | |_>negative test cases
13780 | |->testcases/kernel/syscalls/mkdir/mkdir01.c
13781 | | |_>negative test cases
13782 | |->testcases/kernel/syscalls/mknod/mknod06.c
13783 | | |_>negative test cases
13784 | |->testcases/kernel/syscalls/mremap/mremap03.c
13785 | | |_>negative test cases
13786 | |->testcases/kernel/syscalls/msync/msync05.c
13787 | |->testcases/kernel/syscalls/rmdir/rmdir05.c
13788 | | |_>negative test cases
13789 | |->testcases/kernel/syscalls/stat/stat03.c
13790 | | |_>negative test cases
13791 | |->testcases/kernel/syscalls/symlink/symlink03.c
13792 | | |_>negative test cases
13793 | |->testcases/kernel/syscalls/truncate/truncate03.c
13794 | | |_>negative test cases
13795 | |_>testcases/kernel/syscalls/unlink/unlink07.c
13796 | |_>negative test cases
13798 |->usc_global_setup_hook() from lib/parse_opts.c, which is {{{3
13799 | macro TEST_PAUSE from include/usctest.h
13801 | |->get STD_start_break original sbreak size
13802 | | if exist env vars USC_TP_SBRK and USC_LP_SBRK
13804 | |_>call 'sbrk(STD_TP_sbrk)' if exists env var USC_TP_SBRK
13806 |->usc_test_looping() from lib/parse_opts.c, which is {{{3
13807 | macro TEST_LOOPING from include/usctest.h
13809 | |_>if STD_LP_sbrk and Debug, so call 'sbrk(STD_LP_sbrk)'
13810 | Debug set if env var USC_DEBUG or USC_VERBOSE
13815 Usage of get_high_address() can get *NULL and be Ok, except msync and mremap.
13816 Those tests should be rewrited complete (look at COMMON)
13818 Usage of usc_global_setup_hook() triggered by env vars USC_TP_SBRK and
13819 USC_LP_SBRK. Can't find any place
13820 Usage of usc_test_looping()
13825 540 files, 422 in syscalls
13830 fs_inod- Rapidly creates and deletes files through
13831 multiple processes running in the background.
13832 fs_perms- Regression test for Linux filesystem perms.
13833 fsx-linux- Filesystem stress test developed by Apple.
13834 growfiles- will grow a list of files.
13835 lftest- to verify the file size limitations of a fs.
13836 linktest- Regression test for max links per file.
13837 openfile- Creates files and opens simultaneously.
13838 proc01- Recursively reads all files within /proc fs.
13839 rwtest- Currently can handle read,write,reada,writea,
13840 ssread,sswrite, and many varieties of listio.
13844 In libmm/mm_core_apis.c mm_core_test02() use fork() ???
13846 mem mmapstress mtest01 mtest05 mtest06 mtest07 page shmt vmtests
13849 |->mem01 exercising virtual memory allocation and usage.
13850 | log: 122 sym per test; 26330 tests in 100sec, so 693MB for 24h
13852 |_>mem02 check that memory can be allocated and freed. check for zeroed memory
13853 log: 256 sym per test; 972 tests in 100 sec, so 54MB for 24H
13856 |->mmapstress01 - (fork) stresses mmaps; forks number of children, all of whom
13858 | same file, make a given number of accesses to random pages in the map
13859 | (reading & writing and comparing data).Then the child exits and the parent
13860 | forks another to take its place. Each time a child is forked, it stats the
13861 | file and maps the full length of the file.
13862 |_>mmapstress02 - (brk) reading into or writing from a mmaped regular file
13863 which lacks the needed permissions.
13866 |_>mtest01 - (fork) mallocs memory <chunksize> at a time until malloc fails.
13869 |_>mmstress - (brk,fork,thread) Performs General Stress with Race conditions
13872 |->mmap1 - (thread) stressing the mm by simultanious
13873 | map/unmap/read by light weight processes. (24h)
13874 |->mmap2 - stressing the mm by repeaded
13875 | map/write/unmap of a large gb size file.
13876 |->mmap3 - (thread) stressing the mm by repeaded map/write/unmap
13877 | of file/memory of random size (maximum 1GB).
13878 |_>shmat1 - (thread) stressing the mm by repeaded shmat/write/read/shmatd of
13879 file/memory of random size (maximum 1000 * 4096).
13882 |->mallocstress - (thread) Stresses the VMM and C library by spawning N threads
13883 | which malloc blocks of increasing size until malloc returns
13885 |_>shm_test - (thread) Stresses memory management subsystem of Linux. Spawns
13886 multiple pairs of reader & writer threads. One thread will create
13887 the shared segment of random size and write to this memory, the
13888 other pair will read from this memory.
13891 |->page01 - (fork) Create a number of process, each of which requests a large
13892 | chunk of memory to be assigned to an array. Write to each
13893 | element in that array, and verify that what was written/stored
13894 | is what was expected.
13905 |->shmt09 - (brk for FAIL)
13909 |->data_space - (fork)
13911 |_>stack_space - (fork)
13916 clisrv - Read contents of data file. Write each line to socket, then read
13917 line back from socket and write to standard output.
13919 ht_enabled - Test for whether HT enabling is the default setting and
13920 the kernel option works as expected.
13921 ht_affinity - Test for whether a set of system calls is provided to bind
13922 itself or another process to a subset of currently active
13923 processors and to get affinity information.
13925 process_stress - Stresses the process management kernel code.
13928 pth_str01 - Creates a tree of threads.
13929 pth_str02 - Creates n threads.
13930 pth_str03 - Creates a tree of threads does calculations and returns result
13944 005 - System calls tests {{{1
13945 Porting LTP kernel system calls 669 tests.
13964 c alarm07 - fork }}}2
14038 a exit02 - fork }}}2
14078 a fdatasync01 - fork
14079 a fdatasync02 - fork
14113 a ftruncate04 - fork
14150 a getresgid03 - #10
14159 a getsid02 - thread
14174 b ipc/shmget01 - #23
14175 b ipc/shmget02 - #23
14176 b ipc/shmget03 - #23
14177 b ipc/shmget04 - #23
14178 b ipc/shmget05 - #23
14179 ipc/msgget01 - link error
14180 ipc/msgget02 - link error
14181 ipc/msgget03 - link error
14182 ipc/msgget04 - link error
14183 ipc/msgctl01 - link error
14184 ipc/msgctl02 - link error
14185 ipc/msgctl03 - link error
14186 ipc/msgctl04 - link error
14187 ipc/msgctl05 - link error
14190 ipc/msgctl08 - link error
14191 ipc/msgctl09 - link error
14192 msgrcv01 - link error
14193 msgrcv02 - link error
14194 msgrcv03 - link error
14195 msgrcv04 - link error
14196 msgrcv05 - link error
14197 msgrcv06 - link error
14198 msgsnd01 - link error
14199 msgsnd02 - link error
14200 msgsnd03 - link error
14201 msgsnd04 - link error
14202 msgsnd05 - link error
14203 msgsnd06 - link error
14204 semget01 - link error
14205 semget02 - link error
14206 semget03 - link error
14207 semget05 - link error
14208 semget06 - link error
14209 semctl01 - link error
14210 semctl02 - link error
14211 semctl03 - link error
14212 semctl04 - link error
14213 semctl05 - link error
14214 semctl06 - link error
14215 semop01 - link error
14216 semop02 - link error
14217 ipc/semop03 - link error
14218 ipc/semop04 - link error
14219 ipc/semop05 - link error
14223 ipc/shmdt01 - link error
14225 ipc/shmctl01 - link error
14226 ipc/shmctl02 - link error
14227 ipc/shmctl03 - link error
14228 ipc/shmctl04 - link error }}}2
14241 a kill12 - fork }}}2
14303 a modify_ldt02 - fork
14305 b mount02 - #10, fork
14322 b munlockall01 - #19
14323 b munlockall02 - #19
14328 b nanosleep01 - #10(fixed in b11),fork
14329 b nanosleep02 - #10(fixed in b11),fork
14330 b nanosleep03 - #10(fixed in b11),fork
14331 b nanosleep04 - #10(fixed in b11),fork
14353 b personality01 - #24
14354 b personality02 - #24
14387 b read01 - comp err
14397 a recvfrom01 - fork
14422 sched_get_priority_max01
14423 sched_get_priority_max02
14424 sched_get_priority_min01
14425 sched_get_priority_min02
14426 sched_getscheduler01
14427 sched_getscheduler02
14428 sched_rr_get_interval01
14429 sched_rr_get_interval02
14430 sched_rr_get_interval03
14434 a sched_setparam03 - fork
14435 a sched_setparam05 - fork
14436 sched_setscheduler01
14437 a sched_setscheduler02 - fork
14442 a sendfile02 - fork
14459 a setgroups04 - sbrk
14474 a setpriority04 - thread
14477 a setregid02 - fork
14478 a setregid03 - fork
14479 a setregid04 - fork
14480 a setresgid01 - fork
14481 a setresgid02 - fork
14482 a setresgid03 - fork
14483 a setresuid01 - fork
14484 a setresuid02 - fork
14485 a setresuid03 - fork
14487 a setreuid02 - fork
14488 a setreuid03 - fork
14489 a setreuid04 - fork
14490 a setreuid05 - fork
14492 setrlimit01 - fork, comp err
14497 a settimeofday01 - fork
14498 a settimeofday02 - fork
14502 a sigaction01 - thread
14513 a sigrelse01 - fork
14515 socketcall01 - compilation error
14516 socketcall02 - compilation error
14517 socketcall03 - compilation error
14518 socketcall04 - compilation error
14537 symlink02 - link err
14544 sysctl01 - compilation error
14545 sysctl03 - fork, compilation error
14546 sysctl04 - compilation error
14547 sysctl05 - compilation error
14556 syslog01 - bash script
14557 syslog02 - bash script
14558 syslog03 - bash script
14559 syslog04 - bash script
14560 syslog05 - bash script
14561 syslog06 - bash script
14562 syslog07 - bash script
14563 syslog08 - bash script
14564 syslog09 - bash script
14565 syslog10 - bash script
14578 truncate04 - fork }}}2
14607 vhangup02 - fork }}}2
14634 writev05 - fork }}}2
14726 getitimer - compiled
14727 gettimeofday - compiled
14728 nanosleep - compiled
14729 setitimer - compiled
14730 settimeofday - compiled
14737 InterprocesCommunication {{{2
14836 sched_get_priority_max
14837 sched_get_priority_min
14839 sched_rr_get_interval
14861 abort/abort01.c common
14863 execl/execl01.c process
14864 execle/execle01.c process
14865 execlp/execlp01.c process
14866 execv/execv01.c process
14867 execve/execve01.c process
14868 execve/execve02.c process
14869 execve/execve05.c process
14870 execve/execve06.c process
14871 execvp/execvp01.c process
14872 exit/exit01.c process
14873 exit/exit02.c process
14875 fcntl/fcntl07B.c fs
14886 ftruncate/ftruncate04.c fs
14887 getpid/getpid02.c process
14888 getsid/getsid01.c process
14889 ipc/msgctl/msgctl05.c ipc
14890 ipc/shmctl/shmctl01.c ipc
14891 kill/kill01.c signal
14892 kill/kill03.c signal
14893 kill/kill04.c signal
14894 kill/kill05.c signal
14895 kill/kill06.c signal
14896 kill/kill07.c signal
14897 kill/kill08.c signal
14898 kill/kill09.c signal
14899 kill/kill11.c signal
14900 kill/kill12.c signal
14901 modify_ldt/modify_ldt02.c mem
14902 mprotect/mprotect02.c mem
14903 mprotect/mprotect03.c mem
14904 nanosleep/nanosleep01.c time
14905 nanosleep/nanosleep02.c time
14906 nanosleep/nanosleep03.c time
14907 nanosleep/nanosleep04.c time
14909 pause/pause02.c signal
14910 pause/pause03.c signal
14916 prctl/prctl01.c process
14917 prctl/prctl02.c process
14918 ptrace/ptrace01.c common
14919 ptrace/ptrace02.c common
14920 ptrace/ptrace03.c common
14923 006 - Serial port tests {{{1
14925 Checking attributes:
14926 baud rate: 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
14928 parity (odd,even,none)
14931 crtsdts - hardware flow control
14932 ixon - software flow control
14935 007 - BusyBox project {{{1
14937 current version 0.60.4
15003 Taking testsuites from version 1.00-pre5
15006 008 - Scheduling tests {{{1
15009 busyloop - loop that does nothing
15010 ioloop - a loop that does io operation
15011 systemloop - a loop that does system call
15013 starvation - when a process doesn't get CPU time
15017 1. Run N={2,3,5,10,100} busyloop processes and compare there times
15018 2. Run N={2,3,5,10,100} ioloop processes and compare there times
15019 3. Run N={2,3,5,10,100} systemloop processes and compare there times
15020 4. Run N={3,6,12,99} mixed processes and compare there times
15022 5. Run previous cases when processes have different priorities
15023 6. Max number of ctx switches per sec. Run 2 processes perform sched_yield()
15024 when done check number of ctx switches.(Need shell patch)
15025 7. Time beetween switch on/out. Measure time between ctx switches for all
15026 previous scenarious. (Need kernel patch)
15027 8. Signal delivery latency. (Need kernel patch)
15032 D - delta of time (in msec) between checks
15033 N - number of processes {2,3,5,10,100}
15034 M - time to wait in secs {1,5,10,30,60}
15036 1. ./use D N M ./busyloop
15037 2. ./use D N M ./ioloop
15038 3. ./use D N M ./systemloop
15044 009 - Breathru {{{1
15047 Functionality and POSIX tests for general_iso group
15050 Till 22feb2004 get 2 deliveries.
15055 1. All test should be placed under DONE
15056 2. Please use makefile.custom DONE
15057 3. Check errors in comments, especially at the head of C files.
15058 4. Stop using STD_FUNCTIONAL_TEST macro at all, just print results.
15059 5. Whenever a test requires parameters, the error notes "Parameter is
15060 missed" should be "Usage: …" with the exact command line
15065 # asctime02 FAIL on x86 and on tms320c6
15066 # atoll01 FAIL on x86 and crash tms320c6 (they mentioned something about it in their mail)
15067 # calloc02 still FAIL on x86 and crash tms320c6
15068 # strlen01 wrong Usage (written –N instead of –S) [I fixed it]
15069 # malloc02 get stuck on tms320c6
15070 # usage message still not understandable.
15075 CVS: there are 3 modules: gcc-3_2-gcc2c gcc2c-wrapper gcc2c_scripts
15078 Wrapper (from <tools>/gcc2c-wrapper/gcc2c-compiler-wrapper) invokes
15079 converter, then pass along the converted output file (in a temp dir) to a 2nd
15080 stage compiler, either vanilla GCC (for fast testsuites), or to TI compiler
15081 (for actual use in the product).
15082 Wrapper may bypass the converter and pass along the original file to a 2nd
15083 stge compiler (GCC or TI). In this case wrapper used to translate GCC options
15084 into relevant TI options.
15089 run 'gcc2c_scripts/make-wrapper.sh'
15091 gcc2c_scripts/make-wrapper.sh
15092 gcc2c-wrapper/gcc2c-compiler-wrapper.cpp (only warnings):
15101 NO_CONVERTER_INVOCATION
15103 PASSTHRU_GCC_OPTIMIZE_OPTIONS_TO_CONVERTER
15111 GCC2C_SECOND_STAGE_GCC_INVOKE
15112 GCC2C_SECOND_STAGE_GCC_OPTIONS
15113 GCC2C_SECOND_STAGE_GCC_NO_PASS_WARNING_OPTIONS
15115 GCC2C_SECOND_STAGE_CCS_WINE_INVOKE
15116 GCC2C_SECOND_STAGE_CCS_COMPILER_OPTIONS
15117 GCC2C_SECOND_STAGE_CCS_COMPILER_EXTRA_OPTIONS
15118 GCC2C_SECOND_STAGE_CCS_CONVERTED_COMPILE_OPTIONS
15119 GCC2C_SECOND_STAGE_CCS_LINKER_OPTIONS
15120 GCC2C_SECOND_STAGE_CCS_LIBRARY_PATH
15121 GCC2C_SECOND_STAGE_CCS_LOADER_OPTIONS
15122 GCC2C_SECOND_STAGE_CCS_RAW_COMMAND_LINE
15127 (No converter root) or ((No 2nd stage gcc) and (No 2nd stage wine)) or
15128 ((2nd stage gcc) and (2nd stage wine))
15129 (2nd stage wine) and (No 2nd stage library path)
15130 wrapper tmp dir doesn't have absolute path
15131 wrapper tmp dir is root `/'
15133 Prepare cmdln for gcc:
15134 SecondStageGCCInvoke DEFAULT_SECOND_STAGE_GCC_COMPILER_ARGS \
15135 SecondStageGCCOptions `-L' ConverterRoot`/'CONVERTER_LIB
15142 gcc2c_scripts/build-gcc2c.sh (changed)
15144 GCC2C_GCC_VANILLA_LOCATION
15146 |_>build-gcc2c-command.sh
15151 3. Run testsuite {{{2
15153 gcc2c_scripts/run-gcc-testsuite.sh
15154 The result file placed at ~/gcc-gcc.log and just do follows
15155 grep -e "^FAIL" -e "^WARN" -e "^UNRESOLVED" -e "^ERROR" -e "^XPASS"
15157 3. Build libgcc-ti (done by build-gcc2c.sh)
15158 run 'gcc2c_scripts/make-libgcc-ti.sh'
15161 Sankhya testsuite starts from running run-sankhya-testsuite.sh, which
15162 calls 'run-testsuite.sh sankhya', where:
15166 4. Prepare tools release {{{2
15167 gcc2c_scripts/make-gcc2c-release.sh
15174 source /usr/local/tools/env_tcsh.src
15175 source ~/softier/tools/Sankhya/last/tests/setup.csh
15176 check that in /opt/GNUPlus/c64x/lib/gcc-lib/c64x-coff/3.3/specs link has follows:
15177 -c -ar -x -i /opt/GNUPlus/c64x/lib/gcc-lib/c64x-coff/3.3 -i /home/gxk/softier/user_uclinux_evm_k60_l5_u6_i4/libs -l/home/gxk/softier/user_uclinux_evm_k60_l5_u6_i4/libs/crti.o
15178 and libraries follows:
15179 -llibc.lib -llibdt.lib -lliblddk.lib
15181 /opt/GNUPlus/c64x/bin/c64x-coff-gcc -fomit-frame-pointer -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -fno-builtin -nostartfiles -D_TMS320C6 -D__PIC__ -fpic -D__inline__=inline -D__signed__=signed -D__SOFTIER_LONGLONG__=long -D__SOFTIER_LONG__=int -D__gnuc_va_list=va_list -D_TMS320C6X_NOCONVERTER -I/home/gxk/softier/user_uclinux_evm_k60_l5_u6_i4/include -Wl,/home/gxk/softier/user_uclinux_evm_k60_l5_u6_i4/libs/userapps.cmd -o stam.o stam.c
15183 build project txt_parser:
15184 /opt/GNUPlus/c64x/bin/c64x-coff-gcc -fomit-frame-pointer -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -fno-builtin -nostartfiles -D_TMS320C6 -D__PIC__ -fpic -D__SOFTIER_LONG__=long -D__SOFTIER_LONGLONG__=long -D_TMS320C6 -D__inline__=inline -D__signed__=signed -D_TMS320C6X_NOCONVERTER -I/home/gxk/softier/user_uclinux_evm_k65_l8_u8_i5/include -c txt_scanner.c -o ./txt_scanner.o
15185 /opt/GNUPlus/c64x/bin/c64x-coff-gcc -fomit-frame-pointer -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -fno-builtin -nostartfiles -D_TMS320C6 -D__PIC__ -fpic -D__SOFTIER_LONG__=long -D__SOFTIER_LONGLONG__=long -D_TMS320C6 -D__inline__=inline -D__signed__=signed -D_TMS320C6X_NOCONVERTER -I/home/gxk/softier/user_uclinux_evm_k65_l8_u8_i5/include -c txt_parser.tab.c -o ./txt_parser.tab.o
15186 /opt/GNUPlus/c64x/bin/c64x-coff-gcc -fomit-frame-pointer -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -fno-builtin -nostartfiles -D_TMS320C6 -D__PIC__ -fpic -D__SOFTIER_LONG__=long -D__SOFTIER_LONGLONG__=long -I/home/gxk/softier/user_uclinux_evm_k65_l8_u8_i5/include -Wl,-ar,-x -o txt.sankhya txt.c ./*.o /home/gxk/softier/user_uclinux_evm_k65_l8_u8_i5/libs/crti.o /home/gxk/softier/user_uclinux_evm_k65_l8_u8_i5/libs/userapps.cmd
15191 Before KAD procedure{{{2
15192 Copy follows files to local dir: boot_evm642_loadlinux.bin,
15193 evm642_program_flash.out, gzip_linux.bat, osd_fpga_rev4.bin, program_flash.cfg,
15195 Also put in the same dir: linux.out and romfs.img
15197 Configure program_flash.cfg The example follows:
15199 rootdir = C:\burnlinux\evm642_v104\
15200 BOOTLOADER = boot_evm642_loadlinux.bin
15201 FPGA = osd_fpga_rev4.bin
15202 LINUX = linux.out.gz
15205 Load evm642_program_flash.out from CCS menu (File->Load Program). Press F5
15206 and will get menu. Choose Burn all, just romfs, etc. Wait till popup box
15207 and press '8' to exit.
15210 After BSL procedure {{{2
15211 monitor 2.03, gel 2.02
15212 Copy follows to <lddk>/monitor directory:
15214 Create linux.out, kad.out, jffs2.img and copy to previous dir.
15220 013 - USB tests {{{1
15222 Total 182 testcases.
15224 All tests should be done on EVM and VM cards.
15225 All tests where DOK (disk on key) used should be done for MSystems,Sandisk and
15226 genery one. It is also hard drive.
15227 All tests should be done with passive hub or without it. Decided not to check
15230 --- Main Procedure ---
15231 1. Boot with DOK plugged in. Make atomic test. Plugging test.
15232 2. Boot with DOK plugged in. Make N times Plugging test.
15233 3. Boot with DOK plugged in. Make movie test.
15234 4. Boot with DOK plugged in. Do survival test.
15235 5. Boot with DOK plugged in. Do survival test N times.
15236 6. Boot with DOK plugged in. Do survival movie test.
15237 7. Do previous tests without usb device at booting.
15238 ---------------------- 12 testcases.
15241 Plugg in. Make atomic test. Unplugg.
15244 Make sure device recognized by system.
15246 Make read and write test. Unplugg device in the middle of read/write.
15250 * Survival movie test.
15251 Same as survival test just run movie instead of `read/write test'.
15254 Make sure device recognized by system.
15256 Make read and write test.
15260 Same as atomic, but instead of `read and write' test, just run player to
15261 see movie on display.
15264 014 - Microwindows {{{1
15267 Have to config kernel for Framebuffer
15268 in order to test config fbtest and compile it.
15269 bug fixed in user/fbtest/Rules.make (not included in u9)
15271 deleted demos/nxscribble , cause use of wide-char which is non-supported.
15273 delete MAP_SHARED flad from mmap() in drivers/scr_fb.c +266
15276 How to build for linux-x86? {{{2
15277 Pre-build config files placed at <mw>/src/Configs>, where README file describes
15278 them. Copy needed config file as <mw>/src/config and run `make' to build. So
15279 run `cp ./Configs/config.x11 ./config'
15281 problem: on FC3 freetype package installs headers in dirs
15282 `/usr/include/freetype1' and `/usr/include/freetype2', and MW searchs for
15283 `/usr/include/freetype'.
15284 solution: change path to freetype header from `freetype/*.h' to
15285 `freetype1/freetype/*.h' in file ./engine/font_freetype.c
15287 problem: change install dir
15288 solution: in file Makefile.rules
15290 How to build for MediaLinux {{{2
15291 Basic `Y' configuration:
15307 export GCC2C_NO_CONVERTER_INVOCATION=1
15314 nanox/nxtransform.c
15316 demos/mwin/Makefile
15317 demos/nanowm/Makefile
15318 demos/nanowm/nanowm.h
15319 demos/nanox/Makefile
15320 demos/nanox/nxterm.c
15321 demos/nxkbd/Makefile
15322 demos/nxroach/Makefile
15323 demos/nxroach/nxroach.c
15324 demos/nxscribble/li_recognizer.c
15325 demos/nxscribble/util.c
15326 demos/nxscribble/Makefile
15327 demos/tuxchess/Makefile
15329 demos/nanox/launcher.c
15333 deleted demos: nbreak vnc
15338 drivers/scr_fb.c line 307
15339 the munmap() problem. currently commented.
15344 015 - Replace linux funcs by TI {{{1
15346 Given list of 208 funcs from TI's lib rts6400.lib which gives good performance
15348 70 of them already in libm, 73 - already in liblddk, 15 - new for liblddk,
15349 2 canceled (ctime,clearerr), 1 - already in libc (memcpy64)
15350 It is left 47 funcs.
15352 The whole list {{{2
15385 clearerr.obj libc canceled, due to usage of FILE
15396 ctime_.obj ? (ctime_r in libc) canceled
15402 del_afn.obj liblddk
15403 del_afp.obj liblddk
15404 del_sof.obj liblddk
15405 del_sofn.obj liblddk
15406 del_sofp.obj liblddk
15457 frcaddd.obj liblddk
15458 frcaddf.obj liblddk
15459 frcdivd.obj liblddk
15460 frcdivf.obj liblddk
15461 frcmpyd.obj liblddk
15462 frcmpyf.obj liblddk
15465 imath40.obj liblddk
15491 memcpy64.obj libc (already)
15492 memmov.obj ? (memmove - libc)
15502 new_afn.obj liblddk
15503 new_afp.obj liblddk
15504 new_sof.obj liblddk
15505 new_sofn.obj liblddk
15506 new_sofp.obj liblddk
15514 renormd.obj liblddk
15515 renormf.obj liblddk
15563 The list of 15 new functions added to liblddk{{{2
15580 The list of 47 left {{{2
15581 abs.obj libc no same code or better
15582 atof.obj libc no same code or better
15583 atoi.obj libc no same code or better
15584 atol.obj libc no same code or better
15585 bsearch.obj libc no same code or better
15587 isalnum.obj libc no it is macro in our code
15588 isalpha.obj libc no it is macro in our code
15589 isascii.obj libc no it is macro in our code
15590 iscntrl.obj libc no it is macro in our code
15591 isdigit.obj libc no it is macro in our code
15592 isgraph.obj libc no it is macro in our code
15593 islower.obj libc no it is macro in our code
15594 isprint.obj libc no it is macro in our code
15595 ispunct.obj libc no it is macro in our code
15596 isspace.obj libc no it is macro in our code
15597 isupper.obj libc no it is macro in our code
15598 isxdigit.obj libc no it is macro in our code
15599 memccpy.obj libc no
15600 memchr.obj libc ? "inline, so have to decide"
15601 memcmp.obj libc ? "inline, so have to decide"
15603 memset.obj libc yes
15605 qsort.obj libc no same code or better
15606 strcat.obj libc ? "inline, so have to decide"
15607 strchr.obj libc ? "inline, so have to decide"
15608 strcmp.obj libc ? "inline, so have to decide"
15609 strcpy.obj libc ? "inline, so have to decide"
15610 strcspn.obj libc ? "inline, so have to decide"
15611 strerror.obj libc ? "inline, so have to decide"
15612 strlen.obj libc ? "inline, so have to decide"
15613 strncat.obj libc ? "inline, so have to decide"
15614 strncmp.obj libc ? "inline, so have to decide"
15615 strncpy.obj libc ? "inline, so have to decide"
15616 strpbrk.obj libc ? "inline, so have to decide"
15617 strrchr.obj libc ? "inline, so have to decide"
15618 strspn.obj libc ? "inline, so have to decide"
15619 strstr.obj libc ? "inline, so have to decide"
15620 strtod.obj libc ? "inline, so have to decide"
15621 strtok.obj libc ? "inline, so have to decide"
15622 strtol.obj libc ? "inline, so have to decide"
15623 strtold.obj libc ? "inline, so have to decide"
15624 strtoul.obj libc ? "inline, so have to decide"
15625 toascii.obj libc no
15626 tolower.obj libc no
15627 toupper.obj libc no
15631 memccpy.obj libc no
15632 memchr.obj libc ? "inline, so have to decide"
15633 memcmp.obj libc ? "inline, so have to decide"
15635 memset.obj libc yes
15636 strcat.obj libc ? "inline, so have to decide"
15637 strchr.obj libc ? "inline, so have to decide"
15638 strcmp.obj libc ? "inline, so have to decide"
15639 strcpy.obj libc ? "inline, so have to decide"
15640 strcspn.obj libc ? "inline, so have to decide"
15641 strerror.obj libc ? "inline, so have to decide"
15642 strlen.obj libc ? "inline, so have to decide"
15643 strncat.obj libc ? "inline, so have to decide"
15644 strncmp.obj libc ? "inline, so have to decide"
15645 strncpy.obj libc ? "inline, so have to decide"
15646 strpbrk.obj libc ? "inline, so have to decide"
15647 strrchr.obj libc ? "inline, so have to decide"
15648 strspn.obj libc ? "inline, so have to decide"
15649 strstr.obj libc ? "inline, so have to decide"
15650 strtod.obj libc ? "inline, so have to decide"
15651 strtok.obj libc ? "inline, so have to decide"
15652 strtol.obj libc ? "inline, so have to decide"
15653 strtold.obj libc ? "inline, so have to decide"
15654 strtoul.obj libc ? "inline, so have to decide"
15657 memccpy.obj libc no
15658 memchr.obj libc ? "inline, so have to decide"
15659 memcmp.obj libc ? "inline, so have to decide"
15661 memset.obj libc yes
15665 Replace memset() in libc
15666 Add 15 TI's functions to liblddk
15671 Ant build environment {{{2
15673 cd <ant-src>/builds/dm642-xgcui
15675 |--> ../.(layers,layers-target)./src/rules/build-auto.txt {{{3
15677 | |--> ../../src/rules/build-unix.txt {{{4
15678 | | |- BUILD_CC, GNU-CPP, RM, CP, BUILD_MAKELIB, BUILD_LINK
15679 | | |- BUILD_LINKFLAGS, BUILD_CFLAGS, BUILD_LIB_EXT, BUILD_OBJ_EXT,
15680 | | |- BUILD_EXE_SUFFIX, PYTHON, XSLT, RESOURCES_MAKEFILE
15681 | | |_ <rules> %.$(BUILD_OBJ_EXT): %.c }}}4
15683 | |_ BUILD_LTI }}}3
15685 |--> ../../src/rules/target-gcc.txt {{{3
15687 | |- CC, DEPEND_CC, MAKELIB, LINK, LINK_OUT
15689 | |- LIB_EXT, OBJ_EXT, ASM_EXT, DEPEND_OBJ_EXT, DEPEND_EXT, PREPROC_EXT,
15690 | |- EXE_SUFFIX, EXE_PREFIX
15691 | |- COMPILER_FLAGS, PREPROC_FLAGS, LINKFLAGS, Warnings
15692 | |- CFLAGS, CFLAGS_DEP
15693 | |_ LIBS, LINKFLAGS }}}3
15695 |--> ../../src/rules/all.txt {{{3
15696 | |- PROGRAM_NAME, PROGRAM_VERSION, MESSAGE_FILES, UNIT_TESTS,
15697 | |- INCLUDES, ALL_OBJECTS, PREREQS
15698 | |- OBJ_DIR, OBJ_ROM_DIR, OBJ_DDT_DIR, OBJ_PRE_DIR, OBJ_MEM_DIR, PRE_DIR,
15699 | |- DEPEND_DIR, BIN_DIR, GEN_DIR, PREBUILT_DIR
15701 | |- SPRITES, SWAPPED, RESOURCES, MESSAGES, FIX_RESOURCES, FIX_MESSAGES
15702 | |- FIX_SPRITES RESOURCE_PATH
15705 | | $(OBJ_PRE_DIR)/%.$(OBJ_EXT): $(PRE_DIR)/%.$(PREPROC_EXT)
15706 | | $(PRE_DIR)/%.$(PREPROC_EXT): %.c
15707 | | $(OBJ_DIR)/%.$(OBJ_EXT): %.c
15708 | | $(OBJ_ROM_DIR)/%.$(OBJ_EXT): %.c
15709 | | $(DEPEND_DIR)/%.$(DEPEND_EXT): %.c Dependencies
15710 | | @$(DEPEND_CC) $< $(INCLUDES) $(CFLAGS_DEP) | sed -e '...'
15712 | |_ <targets> depends }}}3
15714 |- COMMON_FLAGS, CFLAGS,
15715 |- ANT_MALLOC, ANT_REALFLEX
15717 |--> ../../src/layers/xwin/make.txt {{{3
15718 | |--> $(ROOT)/src/layers/common/make.txt
15719 | |--> $(ROOT)/src/layers/fb/make.txt
15720 | |- OBJECTS, COMPONENT (LAYERS,LAYERS-TARGET), LEAF(layers,layers-target)
15721 | |--> $(RULES)/rules.txt }}}3
15723 |--> ../../src/browser/commonsrc/make.txt
15725 |--> ../../src/plugins/player/make.txt
15728 |--> ../../src/fe_generic_glass/make.txt
15731 |--> ../../src/rules/post.txt
15732 |- MODULES, OBJECTS, LIB_NAMES, MY_LIBS
15733 |- <rules> $(BIN_DIR)/ssleay.$(LIB_EXT), $(BIN_DIR)/https.$(LIB_EXT)
15736 $(RUN): $(PREREQS) $(OBJECTS) $(MY_LIBS) $(DLLS)
15745 #include <X11/Xlib.h>
15746 #include <X11/Intrinsic.h>
15747 #include <X11/StringDefs.h>
15748 #include <X11/Shell.h>
15749 #include <X11/keysym.h>
15756 |- Widget w, panel;
15757 |-> useropts_process_cmdline() common/useropts.c
15758 |-> memory_initialise() driver.c
15759 | |-> flex_init() common/memory/flex2.c or fake-flex.c
15760 | |_> mm_init() common/memwatch.c
15762 |-> useropts_geometry() common/useropts.c
15763 |-> useropts_process_cmdline() common/useropts.c
15765 |-> toplevel = XtAppInitialize()
15766 |-> panel = XtCreateManagedWidget()
15767 |-> layers_recorder_init() record-replay/record_misc.c
15768 |-> layers_record_cmdline() record-replay/record.c
15769 |-> xwin_time_init() xwin/alarm.c
15770 |-> XtAddEventHandler()
15771 |-> useropts_dont_open_window() common/useropts.c
15772 |-> create_image() driver.c {{{3
15774 | |-> DefaultVisualOfScreen()
15776 | |-> ImageByteOrder()
15777 | |-> init_8bpp() driver.c
15778 | | |-> DefaultColormapOfScreen()
15779 | | |-> my_alloc_colour() driver.c
15780 | | | |-> XAllocColor()
15782 | | |_> XQueryColor()
15783 | |_> XCreateImage() }}}3
15785 |-> init_debug() driver.c
15786 | |_> layers_debug_cmdline() common/trace.c
15788 |-> useropts_memdump_disabled() common/useropts.c
15789 |-> layers_dbglist() common/trace.c
15790 |-> dbg_indent() common/trace.c
15791 |-> do_initialise() driver.c
15792 | |-> confman_initialise() common/confman/cm_switch.c
15793 | |-> layers_namecache_init()
15794 | |-> layers_dns_init()
15795 | |-> underlay_initialise2() fb/thewimp.c
15796 | |_> layers_win_update() common/peers/selectpeer.c
15798 |-> XtAppAddSignal()
15799 |-> layers_recorder_replaying()
15800 |_> event_loop() driver.c
15801 |-> layers_check_modal() common/modal.c
15802 |-> layers_leaving_modal() common/modal.c
15803 |-> handle_event() driver.c
15804 | |-> XtAppPending()
15805 | |_> XtAppProcessEvent()
15807 |-> XtAppProcessEvent()
15808 |-> DECLARE_TIMER(), START_TIMER(), END_TIMER() unix/timing.h
15809 |-> task__run() common/task.c
15810 |-> underlay_update() underlay.h macro - layers_win_update(FALSE)
15811 |-> layers_clear_modal() common/modal.c
15812 |_> layers_terminate() fb/terminate.c
15816 X functions from layers/xwin {{{2
15818 XAllocColor (Display, Colormap, XColor)
15819 XQueryColor (Display, Colormap, XColor)
15820 DefaultColormapOfScreen (Screen)
15822 DefaultVisualOfScreen (Screen)
15824 ImageByteOrder (Display)
15825 XCreateImage (Display,Visual,unsigned int depth, int format, int offset,
15826 char *data, unsigned int width, unsigned int height,
15827 int bitmap_pad, int bytes_per_line)
15828 XPutPixel (XImage *ximage, int x, int y, unsigned long pixel)
15829 XtGetGC (Widget w, XtGCMask value_mask, XGCValues *values)
15831 XtReleaseGC (Widget w, GC gc)
15832 XPutImage (Display *display, Drawable d, GC gc, XImage *image, int src_x,
15833 int src_y, int dest_x, dest_y, unsigned int width, height)
15834 XCheckTypedEvent (Display *display, int event_type, XEvent *event_return)
15835 XLookupString (XKeyEvent *event_struct, char *buffer_return,int bytes_buffer,
15836 KeySym *keysym_return, XComposeStatus *status_in_out)
15840 XCreatePixmapCursor
15847 XtCreateManagedWidget
15852 XWarpPointer (Display *display, Window src_w, dest_w, int src_x, src_y,
15853 unsigned int src_width, src_height, int dest_x, dest_y)
15855 Display from /usr/include/X11/Xlib.h
15859 Change `Xlib' on `nx11' in `src/rules/target-gcc.txt'
15862 Have 2 heap allocations, which allocated 6MB each, by default. Could be manage
15863 with `--heapsize 2m --flexsize 2m'
15869 <copy swapped.out to here>
15870 python ../tools/scripts/python/fixresources.py -littleendian -master ../src/fe_generic_glass/master.txt -output r.out
15872 ml --geometry 400x200 --url file:meta.html
15876 Load new file - ## file:<filename>
15877 Load new page - ## <url>
15879 To automatic close error messages set follows in config:
15880 dialog.autoconfirm.delay: 9
15883 16dec2004 22may2005
15890 Add macro `FLAVOUR_PLUGINS 1' in fe_generic/variant.h
15891 add to Makefile `include $(ROOT)/src/plugins/make.txt'
15892 In fe_generic/frontend.c add follows:
15893 `#if FLAVOUR_PLUGINS
15894 #include "example_plugin.h" '
15895 and in layers_client() add call to `example_plugin_register()'
15898 at fe_generic/frontend.c add inside of `FLAVOUR_PLUGINS':
15900 pl1_plugin_register()
15903 Function to implement:
15923 After ANT's start the dmx takes 50% of CPU. This because of dmx region of type
15924 1 and write for every pixel.
15925 Changes: change dmx region to type 2 and explicitly write.
15926 All changes placed under macro CANCEL_FIX_29DEC
15933 ANT window resize {{{2
15935 The idea is to resize ANT window (and DMX region) by adding HTML META tags in
15936 html document. Not to rescale.
15937 There are 2 ways to do it. By command line parameter and by META tag.
15939 Command line parameter
15940 ----------------------
15941 The `ml --geometry 320x160' does open window of given size, but dmx region still
15943 Change of fb_init() (from builds/ml/mlx/mlx.c) to send right W&H to dmx region.
15944 Look for architecture bellow: {{{3
15946 main() (from src/layers/ml/driver.c)
15947 |->mlx_init_size() (from builds/ml/mlx/mlx.c)
15949 | |->bmp_get_scr_size()
15950 | |_>fix H&W for dmw region from macros MARGIN_TOP,MARGIN_BOT,HMARGIN
15952 |->useropts_process_cmdline()
15953 |->memory_initialise()
15954 |->useropts_geometry()
15958 | |->bmp_load_dummy() // open dmx region with H&W initialized in
15959 | // mlx_init_size()
15962 |->call_bmp_disable()
15963 |->layers_recorder_init()
15965 |->create_image() (from src/layers/ml/driver.c)
15967 | |-> // print "Opening screen..."
15977 HTML lets specify meta data - info about document rather than document
15978 content. For example: <META name="Author" content="David"> Here, `META' element
15979 specifies a property named `Author' and a value for it `David'.
15980 The frontend can resize and reposition the window.
15981 Definition of meta tags:
15982 <META name="winwidth" content="320">
15983 <META name="winheight" content="200">
15984 The ANT should be run w/ option: `fe_generic.toolbar.on: 0'
15985 from fresco-larch-f-2-4.pdf
15986 browser_doc_lookup_meta() (page 57)
15987 Look for architecture bellow: {{{3
15989 browser_doc_lookup_meta() (src/browser/commonsrc/browser.c)
15990 |->backend_check_meta_merge()
15991 |_>backend_check_meta()
15993 browser_doc_lookup_meta() (src/browser/commonsrc/backend.c)
15994 |->be_doc_finished() (src/browser/commonsrc/backend.c)
15996 | |->backend_check_meta()
16006 final changes: {{{3
16008 builds/ml/mlx/mlx.c
16009 builds/ml/mlx/mlx.h
16010 src/browser/commonsrc/backend.c
16011 builds/ml/mlx/bmp.c
16012 builds/ml/mlx/bmp.h
16015 1. common dmx region size if command line options `--geometry W&H' used
16016 2. add ability to read 4 new meta tags (winwidth,winheight,win_x_pos,win_y-pos)
16017 3. add functionality to resize ANT, depend on new meta tags
16018 (works if no toolbar)
16025 Should change path to dmxio.h ( asm/dmx/dmxio.h ) in follows files:
16026 src/plugins/mplayer/jsmplayer.c
16027 src/plugins/mplayer/mplayer.c
16028 builds/ml/mlx/mlx.c
16029 builds/ml/mlx/bmp.c
16031 Add linker option `--default_order' to Makefile
16034 1. Unresolved symbols: pow,ceil,log,floor,fmod ( not exists in libm )
16035 2. Unresolved syms: __cinit, __pinit (crti.o)
16039 ANT font manager usage {{{2
16042 Source ape-webfonts-1-4.pdf
16044 src/layers/webfonts.h
16046 webfonts_initialise()
16047 webfont_find_typeface()
16048 takes font name, style word, language number and set of flags. returns
16049 typeface id. The lang nbr corresponds to the number returned by func
16050 lang_name_to_num() from layers/common/unicode/lang.c
16055 1. change hardcoded width & height in src/browser/commonsrc/backend.c
16056 be_doc_finished() and mlx_resize() from builds/ml/mlx/mlx.c
16057 2. find feature called transition or disloving (HTML,CSS, ANT ???)
16063 main() (from src/layers/ml/driver.c)
16064 |->mlx_init_size() (from builds/ml/mlx/mlx.c)
16066 | |->bmp_get_scr_size()
16067 | |_>fix H&W for dmw region from macros MARGIN_TOP,MARGIN_BOT,HMARGIN
16069 |->useropts_process_cmdline()
16070 |->memory_initialise()
16071 |->useropts_geometry() (from src/layers/common/useropts.c)
16072 | // fill W&H for off-screen buffer
16073 |->mlx_init() (from builds/ml/mlx/mlx.c)
16074 | |_>fb_init() (from builds/ml/mlx/mlx.c)
16076 | |->bmp_load_dummy() (from builds/ml/mlx/bmp.c) // open dmx region with
16077 | | | // H&W initialized in mlx_init_size()
16078 | | |_>real_bmp_load() (from builds/ml/mlx/bmp.c)
16082 |->call_bmp_disable()
16083 |->layers_recorder_init()
16085 |->create_image() (from src/layers/ml/driver.c)
16087 | |-> // print "Opening screen..."
16092 |->useropts_memdump_disabled()
16093 |->layers_dbglist()
16095 |->mlx_init_AddInput()
16097 |->layers_recorder_replaying()
16100 | |->underlay_update()
16101 | | |_>layers_win_update() (from src/layers/fb/thewimp.c)
16102 | | |-?layers_recorder_event()
16103 | | |->layers_win_validate_all() 30us
16106 | | |->do_update_screen() 30us
16107 | | | |->rectlist_optimise()
16108 | | | |->screen_to_frame_buffer()
16109 | | | |->layers_record_event_string()
16110 | | | |->underlay_update_screen() (from src/layers/ml/driver.c)
16111 | | | | |_>destimageblit()
16112 | | | | |_>destimageblit24()
16113 | | | | |->fake_alpha()
16114 | | | | |->mlx_PutPixel() 335 times
16115 | | | | |->mlx_round_corners_validate()
16116 | | | | |_>call_bmp_refresh()
16117 | | | |->layers_record_event_string()
16118 | | | |_>rectlist_dispose()
16119 | | |_>layers_record_event_string()
16121 | |->call_bmp_enable()
16130 own makefile. have to change UCLINUX_PATH.
16136 Using my makefiles.
16137 make clean all install
16143 make clean all install
16146 09aug2004 www.libsdl.org
16148 SDL configuration {{{2
16150 configure --prefix=/usr/local/SDL --enable-strict-ansi --disable-joystick --disable-cdrom --disable-oss --disable-esd --disable-arts --disable-nas --disable-diskaudio --disable-mintaudio --disable-nasm --disable-dga --disable-pth --disable-stdio-redirect --disable-directx --disable-sdl-dlopen --disable-atari-ldg --without-x --disable-audio
16156 if havn't sound|cdrom|joystick so delete from Makefile.in follows tests:
16157 loopwave, testcdrom, testjoystick
16158 configure --prefix=/usr/local/SDL/bin --with-sdl-prefix=/usr/local/SDL
16161 tms320c6 w/ conv {{{3
16163 Adding cpu-os attributes for config.sub
16164 Should be used w/ configure parameter target like evm642|vm1|vm2*
16166 Add target medialinux case
16167 Changing src/main/Makefile.in
16170 setenv CONFIG_SITE ~/prjs/SDL/mySDL/config.site
16172 configure --build=i686-pc-linux-gnu --host=x86-linux --target=evm642 --prefix=/opt/tms320c6/SDL --disable-shared --disable-joystick --disable-cdrom --disable-oss --disable-esd --disable-arts --disable-nas --disable-diskaudio --disable-mintaudio --disable-nasm --disable-video-x11 --disable-dga --disable-video-x11-vm --disable-video-x11-dgamouse --disable-video-x11-xv --disable-video-x11-xinerama --disable-video-x11-xme --disable-video-dga --disable-video-photon --disable-video-ps2gs --disable-video-xbios --disable-video-gem --disable-video-opengl --disable-pth --disable-stdio-redirect --disable-directx --disable-sdl-dlopen --disable-atari-ldg --without-x --disable-audio
16175 configure --build=i686-pc-linux-gnu --host=x86-linux --target=evm642 --prefix=/opt/tms320c6 --disable-shared --disable-joystick --disable-cdrom --disable-esd --disable-arts --disable-nas --disable-diskaudio --disable-mintaudio --disable-nasm --disable-video-x11 --disable-dga --disable-video-x11-vm --disable-video-x11-dgamouse --disable-video-x11-xv --disable-video-x11-xinerama --disable-video-x11-xme --disable-video-dga --disable-video-photon --disable-video-ps2gs --disable-video-xbios --disable-video-gem --disable-video-opengl --disable-pth --disable-stdio-redirect --disable-directx --disable-sdl-dlopen --disable-atari-ldg --without-x
16178 make clean all install && pushd test && make conv=1 clean all install ; popd
16180 *Change src/video/fbcon/SDL_fbvideo.c
16181 change MAP_SHARED to 0
16182 comment call to FB_OpenMouse
16183 *Change src/video/fbcon/SDL_fbevents.c
16184 /dev/tty0 to /dev/console
16185 comment ioctls KDGKBMODE, KDSKBMODE and KDSETMODE to keyboard {
16186 get mode, set raw mode , set graphic mode }
16189 tms320c6 w/o conv {{{3
16190 setenv GCC2C_NO_CONVERTER_INVOCATION 1
16193 # gxk 19aug2004 add GCC2C_NO_CONVERTER_INVOCATION=1
16194 new_command="GCC2C_NO_CONVERTER_INVOCATION=1 $command"
16196 Change include/SDL_endian.h
16197 comment lines 60-68
16198 Change test/makefile
16200 configure --host=x86-linux --target=evm642 CC=tms320c6-coff-gcc LD=tms320c6-coff-ld CXX=tms320c6-coff-gcc AR=tms320c6-coff-ar NM=tms320c6-coff-nm RANLIB=tms320c6-coff-ranlib CFLAGS="-I/home/gxk/softier/uClinux-dist/uClibc/include -I/home/gxk/softier/uClinux-dist/linux-2.4.x/kad/include -fomit-frame-pointer -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -fno-builtin -nostartfiles -D_TMS320C6 -D__inline__=inline -D__signed__=signed -D_TMS320C6X_NOCONVERTER -D__PIC__ -fpic" AR_FLAGS="ur" --prefix=/usr/local/SDL --disable-shared --disable-joystick --disable-cdrom --disable-oss --disable-esd --disable-arts --disable-nas --disable-diskaudio --disable-mintaudio --disable-nasm --disable-video-x11 --disable-dga --disable-video-x11-vm --disable-video-x11-dgamouse --disable-video-x11-xv --disable-video-x11-xinerama --disable-video-x11-xme --disable-video-dga --disable-video-photon --disable-video-ps2gs --disable-video-xbios --disable-video-gem --disable-video-opengl --disable-pth --disable-stdio-redirect --disable-directx --disable-sdl-dlopen --disable-atari-ldg --without-x --disable-audio
16202 pushd test && make clean all install-gxk && popd
16205 cp Makefile & config.status from linux-based SDL tests and change it.
16206 Create 23 tests. Status table:
16235 The configure way {{{3
16236 Adding follows in config.sub:
16237 evm642 | vm1 | vm2*)
16238 basic_machine=tms320c6
16246 cp config.site from <SDL place>
16247 setenv CONFIG_SITE ~/prjs/SDL/mySDL_image/config.site
16248 setenv SDL_CONFIG /home/gxk/prjs/SDL/mySDL/sdl-config
16250 change Makefile.in:
16251 showimage_LDADD = -l$(UCLINUX_PATH)/lib/crti.o -l$(UCLINUX_PATH)/lib/libc.a -l$(UCLINUX_PATH)/lib/libdt.a -l/usr/local/tools/ti-lib/libsoftier.lib -l../SDL/src/.lib/libSDL.a -l./.libs/libSDL_image.a -l../libpng-1.2.7/libpng.a -l$(UCLINUX_PATH)/../vendors/TI/TMS320C6/userapps.cmdshowimage_LDADD = -l$(UCLINUX_PATH)/lib/crti.o -l$(UCLINUX_PATH)/lib/libc.a -l$(UCLINUX_PATH)/lib/libdt.a -l/usr/local/tools/ti-lib/libsoftier.lib -l../SDL/src/.lib/libSDL.a -l./.libs/libSDL_image.a -l../libpng-1.2.7/libpng.a -l$(UCLINUX_PATH)/../vendors/TI/TMS320C6/userapps.cmd
16252 CCLD = tms320c6-coff-ld
16253 LINK = $(LIBTOOL) --mode=link $(CCLD) $(LDFLAGS) -o $@
16254 showimage_LDFLAGS = -z -ar -x
16255 showimage: $(showimage_OBJECTS) $(showimage_DEPENDENCIES)
16256 $(LIBTOOL) --mode=link $(CCLD) $(LDFLAGS) $(showimage_LDFLAGS) $(showimage_OBJECTS) $(showimage_LDADD) -o $@
16258 @list='$(PROGRAMS)'; for p in $$list; do \
16259 if test -f $$p; then \
16260 echo "cp $$p $(DESTDIR)$(bindir)/$$p"; \
16261 $(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(bindir)/$$p; \
16264 install-exec: install-exec-am install-Programs
16266 Change in ltconfig:
16267 old_archive_cmds='$AR ru $oldlib$oldobjs'
16269 Add follows in configure:
16270 after `# Actually configure libtool. ac_aux_dir is where install-sh is found.'
16273 rm -rf config.cache
16274 configure --build=i686-pc-linux-gnu --host=x86-linux --target=evm642 --prefix=/opt/tms320c6 --enable-strict-ansi --disable-shared --disable-joystick --disable-cdrom --disable-video-X11 --enable-video-fbcon --without-x --disable-gif --disable-jpg --disable-lbm --disable-png --disable-pnm --disable-tga --disable-xpm --with-sdl-prefix=/home/gxk/prjs/SDL/mySDL --disable-libtool-lock
16276 configure --build=i686-pc-linux-gnu --host=x86-linux --target=evm642 --prefix=/opt/tms320c6 --enable-strict-ansi --disable-shared --disable-joystick --disable-cdrom --disable-video-X11 --enable-video-fbcon --without-x --disable-gif --disable-lbm --disable-pnm --disable-tga --disable-xpm --with-sdl-prefix=/home/gxk/prjs/apps/SDL --disable-libtool-loc
16279 gxk makefiles: make clean all install
16284 configuration: {{{3
16286 setenv CONFIG_SITE ~/prjs/SDL/mySDL_mixer/config.site
16287 setenv SDL_CONFIG /home/gxk/prjs/SDL/mySDL/sdl-config
16289 Adding follows in config.sub:
16290 evm642 | vm1 | vm2*)
16291 basic_machine=tms320c6
16299 Change in Makefile.in:
16300 libSDL_mixer_la_LIBADD = $(MIKMOD_LIB) $(TIMIDITY_LIB) $(NATIVE_MIDI_LIB) @SYSTEM_LIBS@ -l/opt/tms320c6/SDL/lib/libSDL.a -l/home/gxk/softier/uClinux-dist/uClibc/lib/libm.a
16301 playwave_LDADD = -l/home/gxk/softier/uClinux-dist/uClibc/lib/crti.o -l/home/gxk/softier/uClinux-dist/uClibc/lib/libc.a -l/home/gxk/softier/uClinux-dist/uClibc/lib/libdt.a -l/usr/local/tools/ti-lib/libsoftier.lib libSDL_mixer.la -l/home/gxk/softier/uClinux-dist/vendors/TI/TMS320C6/userapps.cmd
16302 playmus_LDADD = -l/home/gxk/softier/uClinux-dist/uClibc/lib/crti.o -l/home/gxk/softier/uClinux-dist/uClibc/lib/libc.a -l/home/gxk/softier/uClinux-dist/uClibc/lib/libdt.a -l/usr/local/tools/ti-lib/libsoftier.lib libSDL_mixer.la -l/home/gxk/softier/uClinux-dist/vendors/TI/TMS320C6/userapps.cmd
16303 CCLD = tms320c6-coff-ld
16304 LINK = $(LIBTOOL) --mode=link $(CCLD) $(LDFLAGS) -o $@
16305 playwave_LDFLAGS = -z -ar -x
16306 playwave_LDFLAGS = -z -ar -x
16307 playwave: $(playwave_OBJECTS) $(playwave_DEPENDENCIES)
16309 $(LIBTOOL) --mode=link $(CCLD) $(LDFLAGS) $(playwave_LDFLAGS) $(playwave_OBJECTS) $(playwave_LDADD) $(LIBS) -o $@
16310 playmus: $(playmus_OBJECTS) $(playmus_DEPENDENCIES)
16312 $(LIBTOOL) --mode=link $(CCLD) $(LDFLAGS) $(playmus_LDFLAGS) $(playmus_OBJECTS) $(playmus_LDADD) $(LIBS) -o $@
16314 @list='$(PROGRAMS)'; for p in $$list; do \
16315 if test -f $$p; then \
16316 echo "cp $$p $(DESTDIR)$(bindir)/$$p"; \
16317 $(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(bindir)/$$p; \
16320 install-exec: install-exec-recursive install-Programs
16322 Change in ltconfig:
16323 old_archive_cmds='$AR ru $oldlib$oldobjs'
16325 Add follows in configure:
16326 after `# Actually configure libtool. ac_aux_dir is where install-sh is found.'
16327 AR="AR" AR_FLAGS="AR_FLAGS"
16329 rm -rf config.cache
16330 configure --build=i686-pc-linux-gnu --host=x86-linux --target=evm642 --prefix=/opt/tms320c6 --without-x --disable-shared --with-sdl-prefix=/home/gxk/prjs/SDL/mySDL --disable-sdltest --disable-music-cmd --disable-music-mod --disable-music-midi --disable-music-timidity-midi --disable-music-native-midi --disable-music-native-midi-gpl --disable-music-ogg --disable-music-mp3
16342 configure --without-x --disable-shared --disable-music-cmd --disable-music-wave --disable-music-mod --disable-music-midi --disable-music-timidity-midi --disable-music-native-midi --disable-music-native-midi-gpl --disable-music-ogg --enable-music-mp3
16347 gxk makefiles: make conv=1 clean all install
16353 Marc send 7 games till 13sep2004:
16356 pacwars2 - NO - C++
16357 maelstrom - NO - C++
16360 xpired - non attractive
16364 make clean net-bubble install
16367 |-> display_InitSDL()
16369 |-> utils_InitRandom()
16370 |-> chargement_LoadGameData()
16372 |-> pix_InitAnimPix()
16374 |-> while(quit_game==0)
16375 |-> SDL_ShowCursor(1)
16377 | |-> switch(etat_menu)
16388 |-> SDL_ShowCursor(0)
16389 |-> if (quit_game!=1)
16390 |-> opponent_type = ...
16393 |-> network_TcpClose()
16394 |-> chargement_UnLoadGameData()
16395 |-> network_Shutdown()
16396 |_> SDL_DestroyMutex()
16400 make clean all install
16404 The game defined to run is vectoroids needed also SDL_image library, which is
16405 separate project from SDL.
16408 make clean DATA_PREFIX=../data/ nosound && make install
16410 make clean && make DATA_PREFIX=../data/ all && make install
16414 setenv GCC2C_NO_CONVERTER_INVOCATION 1
16415 setenv GCC2C_SECOND_STAGE_CCS_COMPILER_EXTRA_OPTIONS "-pds77 -pds238"
16416 make clean sdl install
16420 |-> OpenAll() (src/init.c)
16421 |-> InitProgramInfo()
16422 |-> InitPlayerInfo()
16425 |-> InitRND(NEW_RANDOMIZE)
16426 |-> InitVideoDisplay()
16427 |-> InitVideoBuffer()
16429 |-> InitEventFilter(FilterMouseMotionEvents)
16431 |-> InitElementProperties(); /* initializes IS_CHAR() for el2gfx() */
16432 |-> InitLevelInfo()
16433 |-> InitGadgets(); /* needs to know number of level series */
16434 | |-> CreateLevelEditorGadgets() (src/editor.c)
16435 | | |-> CreateControlButtons() (src/editor.c)
16436 | | |-> CreateCounterButtons()
16437 | | |-> CreateDrawingArea()
16438 | | |-> CreateTextInputGadgets()
16439 | | |-> CreateScrollbarGadgets()
16440 | | |_> CreateCheckbuttonGadgets()
16441 | |-> CreateGameButtons()
16442 | |-> CreateToolButtons()
16443 | |_> CreateScreenGadgets()
16444 |-> InitGfxBackground()
16449 cd <abombniball>/src
16450 make clean all install
16453 Abombniball - Version 0.2b (C) 2001
16457 The objective of Abombniball is to defuse all the explosives on each
16458 level. As a ball, this would normally be a simple task, however each
16459 level is filled with traps and devious puzzles placed there
16460 by...oh...lets say "Dr. Y-Front", your arch-nemesis (he's very evil).
16461 These traps take the form of special tiles which disappear or do other
16464 Gray Tile - A solid tile. He never falls away and abandons you like
16465 all those other tiles. He's always be there for you.
16469 Red Tile - These all vanish after you leave them. Leaving a gapping
16470 hole in the grid and an empty space in your heart.
16472 2 Tile - More caring and forgiving than those selfish color tiles.
16473 You can bounce on these submissive fellas twice before
16476 Blue Arrow - Rude fellows. Shove you in whatever direction the arrow
16479 Red Arrow - Even ruder still. They make you jump in whatever
16480 direction the arrow is pointing.
16482 You defuse bombs by landing on the bombs square, however you can only
16483 defuse the bomb thats currently counting down. Trying to defuse any
16484 other bomb will cause it to explode.
16486 Each level provides you with a certain amount of jumps, they are limit
16487 so use them with care.
16508 start search from test called <sdl>/test/testbitmap.c
16511 |-> SDL_Init() src/SDL.c
16513 | |-> SDL_ClearError()
16514 | |-> SDL_InitSubsystem() src/SDL.c
16515 | | |-? SDL_VideoInit() src/video/SDL_video.c
16516 | | | |-? ... - SDL_videodevice video = FB_CreateDevice()
16517 | | | | |-> malloc()
16518 | | | | |-? SDL_OutOfMemory()
16519 | | | | |_> memset()
16520 | | | |-> memset(vformat)
16521 | | | |-> VideoInit() - FB_VideoInit() src/video/fbcon/SDL_fbvideo.c
16522 | | | | |-> getenv(SDL_FBDEV) or /dev/fb0
16523 | | | | |-> open(/dev/fb0)
16524 | | | | |-? SDL_SetError()
16525 | | | | |-# SDL_CreateMutex() // create hardware surface lock mutex
16526 | | | | |-? SDL_SetError(), FB_VideoQuit()
16527 | | | | |-> ioctl(,FBIOGET_FSCREENINFO,) // get the type of video
16528 | | | | | // hardware
16529 | | | | |-? SDL_SetError(), FB_VideoQuit()
16531 | | | | |-> getenv("SDL_FBACCEL") // check if disable hw acceleration
16534 | | | | |-? SDL_SetError(), FB_VideoQuit()
16535 | | | | |-> ioctl(, FBIOGET_VSCREENINFO,) //get current screen depth
16536 | | | | |-> FB_SavePalette() // save hw palette if needed
16538 | | | | |-> FB_OpenKeyboard() src/video/fbcon/SDL_fbevents.c
16539 | | | | | |-> Open keyboard device: /dev/tty%d,/dev/vc/%d,/dev/tty
16540 | | | | | |-> ioctl(,KDGKBMODE,) // make sure the input is a
16541 | | | | | | // console terminal
16542 | | | | | |_> FB_vgainitkeymaps() // fill vga_keymap[][]
16544 | | | | |_> FB_OpenMouse() src/video/fbcon/SDL_fbevents.c
16546 | | | |-? SDL_VideoQuit()
16547 | | | |-> SDL_CreateRGBSurface()
16548 | | | |-? SDL_VideoQuit()
16550 | | | |-> SDL_StartEventLoop() src/events/SDL_events.c
16551 | | | | |-> SDL_StopEventLoop()
16552 | | | | |-> memset()
16553 | | | | |-> SDL_AppActiveInit()
16554 | | | | |-> SDL_KeyboardInit() src/events/SDL_keyboard.c
16555 | | | | | |-> SDL_EnableUNICODE()
16556 | | | | | |-> ... - FB_InitOSKeymap() src/video/fbcon/SDL_fbevents.c
16558 | | | | | | |-> KVAL()
16561 | | | | | |-> SDL_EnableKeyRepeat()
16562 | | | | | |_> fill keynames[]
16564 | | | | |-> SDL_MouseInit() src/events/SDL_mouse.c
16565 | | | | |-> SDL_QuitInit() src/events/SDL_quit.c
16566 | | | | |-> SDL_StartEventThread() src/events/SDL_events.c
16567 | | | | | | // init event queue
16569 | | | | | |-> memset()
16570 | | | | | |-# SDL_CreateMutex()
16572 | | | | | |_? SDL_CreateThread() src/thread/SDL_thread.c
16573 | | | | | |-> malloc()
16574 | | | | | |--? SDL_OutOfMemory()
16575 | | | | | |-> memset()
16576 | | | | | |-> malloc()
16577 | | | | | |--? SDL_OutOfMemory()
16578 | | | | | |--? free()
16579 | | | | | |-> SDL_CreateSemaphore()
16580 | | | | | |--? free()
16581 | | | | | |-> SDL_AddThread()
16582 | | | | | |-> SDL_SYS_CreateThread() src/thread/SDL_systhread.c
16583 | | | | | |--? SDL_DelThread()
16584 | | | | | |--? free()
16585 | | | | | |-> SDL_SemWait()
16586 | | | | | |-> SDL_DestroySemaphore()
16587 | | | | | |_> free();
16589 | | | | |__? SDL_StopEventLoop()
16591 | | | |--? SDL_VideoQuit()
16592 | | | |_> SDL_CursorInit()
16593 | | | |-? SDL_CreateCursor()
16594 | | | |-? SDL_SetCursor()
16595 | | | |_> SDL_CreateMutex()
16597 | | |-# SDL_AudioInit()
16598 | | |-# SDL_TimerInit()
16599 | | |-# SDL_JoystickInit()
16600 | | |_# SDL_CDROMInit()
16602 | |_? SDL_InstallParachute()
16604 |-> SDL_SetVideoMode()
16606 | |-> SDL_GetVideoMode()
16607 | |-> SDL_ResetKeyboard()
16608 | |-> SDL_ResetMouse()
16609 | |-? SDL_FreeSurface()
16610 | |-> SDL_WM_GrabInputOff()
16611 | |-> SDL_LockCursor() src/video/SDL_cursor_c.h
16612 | | |_> SDL_mutexP()
16613 | |-> SetVideoMode - FB_SetVideoMode() src/video/fbcon/SDL_fbvideo.c
16614 | |-? SDL_PrivateResize()
16615 | |-? SDL_DitherColors()
16616 | |-? SetColors - FB_SetColors() src/video/fbcon/SDL_fbvideo.c
16617 | |-> SDL_SetClipRect()
16618 | |-> SDL_ClearSurface()
16620 | | |-> SDL_FillRect()
16622 | | | |-> SDL_UnlockSurface()
16624 | | | | |-> FB_UnlockHWSurface()
16626 | | | | | |-> SDL_mutexV()
16628 | |-> SDL_SetClipRect()
16629 | |-> SDL_ResetCursor() src/video/SDL_cursor.c
16630 | |-> SDL_UnlockCursor() src/video/SDL_cursor_c.h
16631 | | |_> SDL_mutexV()
16632 | |-> SDL_SetCursor() src/video/SDL_cursor.c
16633 | |-? UpdateMouse - FB_UpdateMouse()
16634 | |-> SDL_WM_GrabInput()
16635 | |-> SDL_GetRelativeMouseState()
16638 |-> SDL_PollEvent() (src/events/SDL_events.c)
16639 | |-> SDL_PumpEvents() (src/events/SDL_events.c)
16640 | | |-> PumpEvents - FB_PumpEvents() (src/video/fbcon/SDL_fbevents.c)
16642 | | | |-> handle_keyboard() src/video/fbcon/SDL_fbevents.c
16644 | | | | |-> TranslateKey()
16645 | | | | |-? SDL_GetModState()
16646 | | | | |-? switch_vt()
16647 | | | | |_? SDL_PrivateKeyboard() (src/events/SDL_keyboard.c)
16648 | | | | |-> SDL_PushEvent() (src/events/SDL_keyboard.c)
16650 | | | |_> handle_mouse() src/video/fbcon/SDL_fbevents.c
16651 | | | | |-> SDL_PrivateMouseMotion()
16652 | | | | |-> SDL_GetMouseState()
16653 | | | | |_> SDL_PrivateMouseButton() src/events/SDL_mouse.c
16655 | | |_> SDL_CheckKeyRepeat()
16657 | |_> SDL_PeepEvents()
16659 |_> SDL_FreeSurface()
16664 SDL_Init() -> SDL_InitSubsystem() -> SDL_VideoInit() -> FB_VideoInit() ->
16665 FB_OpenKeyboard() (src/video/fbcon/SDL_fbevents.c)
16666 |-> connect to unix socket of lircd
16667 |_> FB_vgainitkeymaps() (src/video/fbcon/SDL_fbevents.c)
16668 |-> fill vga_keymap[] and keymap_temp[] The last is for map=0 and keys<128
16670 SDL_Init() -> SDL_InitSubsystem() -> SDL_VideoInit() -> SDL_StartEventLoop() ->
16671 SDL_KeyboardInit() (src/events/SDL_keyboard.c)
16672 |-> initialize keynames[] to NULL and SDL_KeyState[] to SDL_RELEASED
16673 |-> FB_InitOSKeymap() (src/video/fbcon/SDL_fbevents.c)
16674 | |_> fill keymap[] from vga_keymap[0], keymap_temp[]
16675 |-> SDL_EnableKeyRepeat(0, 0)
16676 |_> update keynames[], like `keynames[SDLK_BACKSPACE] = "backspace"'
16678 SDL_PumpEvents() ->
16679 FB_PumpEvents() (src/video/fbcon/SDL_fbevents.c)
16680 |-> handle_keyboard() (src/video/fbcon/SDL_fbevents.c)
16682 | |-> get scancode (buf & 7f)
16683 | |-> get state (buf & 80) pressed/released
16684 | |-> TranslateKey()
16685 | | |_> update keysym.scancode keysym.sym keysym.mod keysym.unicode
16686 | |_> SDL_PrivateKeyboard() (src/events/SDL_keyboard.c)
16687 | |-> update keysym.mod
16689 | |_> SDL_PushEvent()
16690 | |-> SDL_PeepEvents() (src/events/SDL_events.c)
16693 SDL_GetKeyState() (src/events/SDL_keyboard.c)
16694 |_> returns SDL_KeyState
16700 SDL_VideoInit() (src/video/SDL_video.c)
16701 |-> FB_VideoInit() (src/video/SDL_fbvideo.c)
16713 a. The wrong colors for BMP files (particulary for BMP file in vectoroids game) - ?
16714 b. Ability to build SDL without converter - week
16717 a. Add audio support (to port new library called SDL_mixer) - week
16718 b. To support more color algorithms (GIF,XBM,PNG) - 1 day per algorithm
16719 c. To define and port more games (depend by input device) - 1 day per game
16721 I believe that for next 2 weeks of my absent could be done, to speed SDL project,
16724 1. New game definitions
16725 2. New game porting
16726 3. SDL without converter porting
16727 4. SDL audio porting (at least with convereter)
16731 graphics: BMP,PNG,JPG,PCX
16733 libraries: SDL, SDL_image, SDL_mixer, SDL_net, libpng, libjpeg, zlib
16734 games: net-bubble, abombniball
16742 . /usr/local/tools/env.src
16743 export CONFIG_SITE="/home/gxk/prjs/apps/SDL/config.site"
16744 make clean all install
16755 |-> hw.rec_func = default_rec() (daemons/hw_default.c)
16757 | |-> rec_mode is LIRC_MODE_MODE2
16758 | |-> clear_rec_buffer() (daemons/receive.c)
16759 | | |-> //reading int in buffer of type `struct rbuf'
16761 | | |-> hw.readdata = default_readdata() (daemons/hw_default.c)
16763 | |-> decode_all() (daemons/ir_remote.c)
16765 | | |-> hw.decode_func = default_decode() (daemons/hw_default.c)
16769 lirc_t data[RBUF_SIZE];
16780 Prepare before configure {{{2
16782 Create config.site like below and set CONFIG_SITE pointed to the file.
16783 setenv CONFIG_SITE ~/prjs/LIRC/lirc-0.6.6/config.site
16785 CC=tms320c6-coff-gcc
16786 LD=tms320c6-coff-ld
16787 CXX=tms320c6-coff-gcc
16788 AR=tms320c6-coff-ar
16789 NM=tms320c6-coff-nm
16790 RANLIB=tms320c6-coff-ranlib
16794 Add at line 452 follows:
16795 "evm642 | vm1 | vm2*)
16796 basic_machine=tms320c6
16799 Add at line 1133 follows:
16807 Follows changes could be done in more deep locations(see Problematical changes),
16808 but it cause rerun of all autohell tools,so need further reseach.
16809 Problematical changes {{{3
16813 AC_CHECK_FUNCS(daemon)
16814 if test "$ac_cv_func_daemon" != yes; then
16815 AC_CHECK_LIB(bsd,daemon,daemon="-lbsd")
16816 if test "$daemon" = ""; then
16817 AC_MSG_ERROR([*** daemon() function not available on this system])
16822 if test "$driver" = "sony839"; then
16824 hw_module="hw_default.o receive.o transmit.o serial.o"
16825 HW_DEFAULT="hw_default"
16826 lircd_conf="sony/839.cfg"
16830 $SHELL -c "export GCC2C_SECOND_STAGE_CCS_COMPILER_EXTRA_OPTIONS=-ppd ; ./depcomp $depcc -c conftest.c -o conftest.o" >/dev/null 2>&1 &&
16834 $SHELL -c "export GCC2C_SECOND_STAGE_CCS_COMPILER_EXTRA_OPTIONS=-ppd ; ./depcomp $depcc -c conftest.c -o conftest.o" >/dev/null 2>&1 &&
16836 Line 7746 (check for daemon):
16837 comments lines 7817 - 7876
16840 if test "$driver" = "sony839"; then
16842 hw_module="hw_default.o receive.o transmit.o serial.o"
16843 HW_DEFAULT="hw_default"
16844 lircd_conf="sony/839.cfg"
16852 tmpdepfile=`echo "$object" | sed -e 's/.o$/.pp/'`
16855 if test $stat -eq 0; then :
16857 rm -f "$tmpdepfile"
16860 mv "$tmpdepfile" "$depfile"
16863 --- Makefile.in ---
16865 Changes in directories daemons, tools, doc:
16867 LIBS = -l../../../uClibc/lib/crti.o -l../../../uClibc/lib/libc.a \
16868 -l../../../uClibc/lib/libdt.a -l/usr/local/tools/ti-lib/libsoftier.lib \
16869 ../../../vendors/TI/TMS320C6/userapps.cmd
16870 CCLD = tms320c6-coff-ld
16871 LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_LDFLAGS) $(LDFLAGS) -o $@
16877 new_command="GCC2C_NO_CONVERTER_INVOCATION=1 $command"
16878 $show "$new_command"
16879 if $run eval "$new_command"; then :
16887 configure --host=x86-linux --target=evm642 CC_FOR_BUILD=gcc CC=tms320c6-coff-gcc LD=tms320c6-coff-ld CXX=tms320c6-coff-gcc AR=tms320c6-coff-ar NM=tms320c6-coff-nm RANLIB=tms320c6-coff-ranlib CPPFLAGS="-I/home/gxk/softier/uClinux-dist/uClibc/include -fomit-frame-pointer -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -fno-builtin -nostartfiles -D_TMS320C6 -D__PIC__ -fpic" AR_FLAGS="ur" --prefix=/opt/tms320c6/lirc --with-module-dir=/misc/home/softier/uClinux-dist/linux-2.4.x --with-tty=/dev/ttyS1 --without-x --with-driver=pctv --with-major=61 --with-port=none --with-irq=none --disable-daemonize --disable-long-codes
16889 configure --host=x86-linux --target=evm642 CC_FOR_BUILD=gcc CC=tms320c6-coff-gcc LD=tms320c6-coff-ld CXX=tms320c6-coff-gcc AR=tms320c6-coff-ar NM=tms320c6-coff-nm RANLIB=tms320c6-coff-ranlib CPPFLAGS="-I/home/gxk/softier/uClinux-dist/uClibc/include -fomit-frame-pointer -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -fno-builtin -nostartfiles -D_TMS320C6 -D__PIC__ -fpic" AR_FLAGS=ur --prefix=/opt/tms320c6/lirc --with-module-dir=/misc/home/softier/uClinux-dist/linux-2.4.x --with-tty=/dev/ttyS1 --without-x --with-driver=pctv --with-major=61 --with-port=none --with-irq=none --disable-daemonize --disable-long-codes
16893 w/o converter: {{{3
16895 Previous configurations {{{4
16896 Pinnacle w/o kernel module:
16897 configure --host=x86-linux --target=evm642 --prefix=/opt/tms320c6/lirc --with-module-dir=/misc/home/softier/uClinux-dist/linux-2.4.x --with-tty=/dev/ttyS1 --without-x --with-driver=pctv --with-major=61 --with-port=none --with-irq=none --disable-daemonize --disable-long-codes
16899 configure pinnacle w/o CONFIG_SITE:
16900 configure --host=x86-linux --target=evm642 CC=tms320c6-coff-gcc LD=tms320c6-coff-ld CXX=tms320c6-coff-gcc AR=tms320c6-coff-ar NM=tms320c6-coff-nm RANLIB=tms320c6-coff-ranlib CPPFLAGS="-I/home/gxk/softier/uClinux-dist/uClibc/include -fomit-frame-pointer -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -fno-builtin -nostartfiles -D_TMS320C6 -D__inline__=inline -D__signed__=signed -D_TMS320C6X_NOCONVERTER -D__PIC__ -fpic" AR_FLAGS="ur" --prefix=/opt/tms320c6/lirc --with-module-dir=/misc/home/softier/uClinux-dist/linux-2.4.x --with-tty=/dev/ttyS1 --without-x --with-driver=pctv --with-major=61 --with-port=none --with-irq=none --disable-daemonize --disable-long-codes
16903 setenv CONFIG_SITE ~/prjs/LIRC/lirc-0.6.6/config.site
16904 setenv GCC2C_NO_CONVERTER_INVOCATION 1
16906 configure --build=i686-pc-linux-gnu --host=x86-linux --target=evm642 --prefix=/opt/tms320c6/lirc --with-tty=/dev/ttyS1 --without-x --with-kerneldir=/home/gxk/prjs/uClinux-dist --with-driver=sony839 --disable-daemonize --disable-long-codes
16915 1. When building can't see dependencies files
16919 WARNING!!! follows files created by uClinux build, so find the original.
16920 Change at ~/softier/uClinux-dist/uClibc/include/bits/sigset.h line 112:
16921 instead of `(__SOFTIER_LONG__)~0' do `~0U'
16927 simple-way configuration {{{2
16929 Run `sh Configure' and answer follows: {{{3
16939 none lib search path
16940 none file ext for shared lib
16942 none optional libraries
16943 none optimizer/debugger flag
16947 n max 64 bit support
16949 /opt/tms320c6 install prefix
16953 none username for security test
16955 n setuid/setgid emulation
16957 n use the malloc that comes with perl5
16958 /opt/tms320c6 install prefix for add-on nmodules
16961 n configure vendor-specific add-on
16962 none additional directories for perl to search
16963 /opt/tms320c6/bin public executables pathname
16964 n built with extra modules
16965 none dir for install perl html files
16966 none dir for install module html files
16969 n use nm to extrace C symbols
16976 <default> domain name
16977 <default> e-mail address
16978 <default> admin e-mail address
16983 none site-specific html pages should be installed
16984 none site-specific library html pages
16998 none extensions do you wish to include
17001 Changes of config.sh: {{{3
17002 ccflags=' -fomit-frame-pointer -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -fno-builtin -nostartfiles -D_TMS320C6 -D__PIC__ -fpic -I/home/gxk/prjs/uClinux-dist/uClibc/include -D__inline__=inline -D__signed__=signed -D_TMS320C6X_NOCONVERTER'
17003 ccname='tms320c6-coff-gcc'
17007 cpprun='tms320c6-coff-gcc -E'
17008 cppstdin='tms320c6-coff-gcc -E'
17010 d_tm_tm_gmtoff='undef'
17011 d_tm_tm_zone='undef'
17016 full_ar='tms320c6-coff-ar'
17020 ld='tms320c6-coff-ld'
17021 ldflags='-z -ar -x'
17027 nm='tms320c6-coff-nm'
17032 Comments in makefile: {{{3
17038 If config.sh changes:
17039 To update scripts do `Configure -S'
17040 Dependencies `make depend'
17046 1. commented 2 fields tm_zone and tm_gmtoff in struct tm from time.h
17047 we r not supporting time zones.
17049 changed config.sh to undefine macros HAS_TM_TM_ZONE and HAS_TM_TM_GMTOFF.
17050 Not enough. Have to undef HAS_GNULIBC also.
17052 2. from paths.h: line 35: fatal error #5: could not open source file "config/autoconf.h", when compile pp_sys.c
17053 solution: Temporary
17054 seems our problematic implementation of shadow. Temporary solution is
17055 comment out include of autoconf.h in paths.h
17056 All functions from shadow.h in compiled in our libc.a, so get linkage
17057 problem - undefine symbol in libperl.a
17059 change config.sh to undef shadow and getspnam
17061 3. ARFLAGS in main makefile is `rcu'
17062 solution: Temporary
17065 4. Target w/o rules in main makefile: nwutil.h
17066 solution: Temporary
17069 5. Target w/o rules in main makefile: wince.h
17070 solution: Temporary
17073 6. Building of miniperl (main makefile) using CC instead of LD.
17074 solution: Temporary
17077 7. linkage problem in symbol isnan.
17078 solution: Temporary
17079 No such symbol in libc.a, libm.a , libsoftier.a So change config.sh to undef.
17085 full-way configuration {{{2
17087 Old idea to start from dir Cross: {{{3
17088 sh Configure -Dcc=tms320c6-coff-gcc -Dld=tms320c6-coff-ld -Dar=tms320c6-coff-ar -Dnm=tms320c6-coff-nm -Dprefix=/opt/tms320c6 -Dcpp=tms320c6-coff-gcc -Dranlib==tms320c6-coff-ranlib -Accflags="-fomit-frame-pointer -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -fno-builtin -nostartfiles -D_TMS320C6 -D__PIC__ -fpic -I/home/gxk/prjs/uClinux-dist/uClibc/include"
17091 sh ./Configure -des -Dusecrosscompile -Dtargethost=192.168.2.154 -Dtargetdir=/var/nfs -Dtargetarch=tms320c6-coff -Dcc=tms320c6-coff-gcc -Dcpp=tms320c6-coff-gcc -Dusrinc=/home/gxk/prjs/uClinux-dist/uClibc/include -Dincpth=/home/gxk/prjs/uClinux-dist/uClibc/include -Dlibpth=/home/gxk/prjs/uClinux-dist/uClibc/lib -Dtargetrun=telnet -Dtargetto=cp
17094 Access to stdio stream array - try iob, __iob, __sF nothing.
17095 How much NV preserve UVs.
17099 new simple-way configuration {{{2
17101 Run `Configure' from <perl> dir w/ follows answers:
17103 n to see the instructions
17106 <default> os version
17112 none lib search path
17113 none file ext for shared lib
17115 none optional libraries
17116 none optimizer/debugger flag
17117 -D_REENTRANT cc flags
17120 n max 64 bit support
17122 /opt/tms320c6 install prefix
17126 none username for security test
17128 n setuid/setgid emulation
17130 y use the malloc that comes with perl5
17131 /opt/tms320c6 install prefix for add-on nmodules
17134 /var/nfs configure vendor-specific add-on
17135 /var/nfs additional directories for perl to search
17136 /opt/tms320c6/bin public executables pathname
17137 n built with extra modules
17138 none dir for install perl html files
17139 none dir for install module html files
17140 none include in @INC
17142 n use nm to extrace C symbols
17149 <default> domain name
17150 <default> e-mail address
17151 <default> admin e-mail address
17153 <default> what to put after `#!' to startup perl
17156 none site-specific html pages should be installed
17157 none site-specific library html pages
17173 Changes in makedepend.SH
17174 line 230 add: `grep [^wince] |'
17177 delete lines 79 -82
17179 cp config.sh Cross/config.sh-tms320c6-coff
17182 Do follows changes in it generate_config_sh
17184 ccflags='-Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -fno-builtin -nostartfiles -D_TMS320C6 -D__PIC__ -fpic -I/home/gxk/prjs/uClinux-dist/uClibc/include -D__inline__=inline -D__signed__=signed -D_TMS320C6X_NOCONVERTER'
17187 cppflags='-D_REENTRANT'
17190 d_getspnam_r='undef'
17193 d_tm_tm_gmtoff='undef'
17194 d_tm_tm_zone='undef'
17196 full_ar='tms320c6-coff-ar'
17198 i32type='__SOFTIER_LONG__'
17202 ld='tms320c6-coff-ld'
17203 ldflags='-z -ar -x'
17205 libc='/home/gxk/prjs/uClinux-dist/uClibc/lib/libc.a'
17210 osname='medialinux'
17211 nm='tms320c6-coff-nm'
17213 u32type='unsigned __SOFTIER_LONG__'
17216 uquadtype='unsigned __SOFTIER_LONG_LONG__'
17219 ccflags=' -fomit-frame-pointer'
17220 ccname='tms320c6-coff-gcc'
17221 cpprun='tms320c6-coff-gcc -E'
17222 cppstdin='tms320c6-coff-gcc -E'
17225 Comments in makefile: {{{3
17231 If config.sh changes:
17232 To update scripts do `Configure -S'
17233 Dependencies `make depend'
17239 1. commented 2 fields tm_zone and tm_gmtoff in struct tm from time.h
17240 we r not supporting time zones.
17242 changed config.sh to undefine macros HAS_TM_TM_ZONE and HAS_TM_TM_GMTOFF.
17243 Not enough. Have to undef HAS_GNULIBC also.
17245 2. from paths.h: line 35: fatal error #5: could not open source file "config/autoconf.h", when compile pp_sys.c
17246 solution: Temporary
17247 seems our problematic implementation of shadow. Temporary solution is
17248 comment out include of autoconf.h in paths.h
17249 All functions from shadow.h in compiled in our libc.a, so get linkage
17250 problem - undefine symbol in libperl.a
17252 change config.sh to undef shadow, getspnam and getspnam_r
17254 3. ARFLAGS in main makefile is `rcu'
17255 solution: Temporary
17258 4. Target w/o rules in main makefile: nwutil.h
17259 solution: Temporary
17262 5. Target w/o rules in main makefile: wince.h
17263 solution: Temporary
17266 6. Building of miniperl (main makefile) using CC instead of LD.
17267 solution: Temporary
17270 7. linkage problem in symbol isnan.
17271 solution: Temporary
17272 No such symbol in libc.a, libm.a , libsoftier.a So change config.sh to undef.
17274 8. change in PerlIOStdio_invalidate_fileno() from perlio.c
17275 solution: add follows
17284 /home/gxk/prjs/uClinux-dist/uClibc/include
17285 -l/home/gxk/prjs/uClinux-dist/uClibc/lib/crti.o
17286 -l/home/gxk/prjs/uClinux-dist/uClibc/lib/libc.a
17287 -l/home/gxk/prjs/uClinux-dist/uClibc/lib/libm.a
17288 -l/home/gxk/prjs/uClinux-dist/uClibc/lib/libpthread.a
17289 -l/usr/local/tools/ti-lib/libsoftier.lib
17290 -l/home/gxk/prjs/uClinux-dist/uClibc/lib/libnsl.a
17291 /home/gxk/prjs/uClinux-dist/vendors/TI/TMS320C6/userapps.cmd
17293 Data types config for TI 3 {{{2
17295 Issue: convert all longs to __SOFTIER_LONG__ and not touch `long long', cause
17298 Taking care of `long double':
17301 uselongdouble='define'
17303 Taking care of `long long':
17304 d_longlong = define
17306 i64type='long long'
17309 u64type='unsigned long long'
17310 uquadtype='unsigned long long'
17312 quadtype='long long'
17314 Taking care of `long':
17316 i32type='__SOFTIER_LONG__'
17318 ivtype='__SOFTIER_LONG__'
17321 randseedtype='__SOFTIER_LONG__'
17323 u32type='unsigned __SOFTIER_LONG__'
17327 uvtype='unsigned __SOFTIER_LONG__'
17332 Problem in compile toke.c
17333 Solution to split it.
17338 More then 1000 files and lines as follows :
17344 Configuration options {{{3
17345 This is list of Perl configuration options and they default values.
17347 support of SOCKS [n] - proxy protocol library
17348 support of PerlIO [y] - alternate IO mechanism
17349 support of threading Perl [n] - threading support, which is believed to be
17350 stable, but runs slightly slower.
17351 support of Perl multiplicity [n] - multiple Perl interpreters can coexist
17352 within the same Perl executable.
17353 support for long doubles [n] -
17354 support of 64-bit int [n] -
17355 wrapping malloc [y] - protect against potential overflows
17356 usage of perl5 malloc [n] -
17357 install extra modules [n] - modules from CPAN
17358 use nm to extract C symbols [n] - ???
17359 support of dynamic loading [y] - have to choose file for linux
17360 (ext/DynaLoader/dl_dlopen.xs)
17361 build libperl.so [n] -
17362 support "fast sydio" [y] -
17364 ignore gethostname [n] -
17366 Doubles must be aligned on a how-many-byte boundary [4] -
17367 func to to generate random numbers [drand48] -
17368 type pointer is the second argument to getgroups() and setgroups() [gid_t] -
17369 extensions [attrs B ByteLoader Cwd Data/Dumper Devel/DProf Devel/Peek Devel/PPPort Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Opcode PerlIO/encoding PerlIO/scalar PerlIO/via POSIX re SDBM_File Socket Storable Sys/Hostname Sys/Syslog threads Time/HiRes Unicode/Normalize threads/shared] -
17370 which to load staticaly [none] -
17374 Perl installed (done on linux w/ default config opts){{{3
17421 It reads the entire file, compiles it into an internal representation, and
17422 executes the instructions. There are 3 major phases: parsing, compiling and
17425 Installed perl on linux with default configuration options takes 41MB.
17427 --- souce structure
17428 Core modules w/o needs of additional treatment - lib/
17429 Core XS modules - ext/
17430 Documentation - pod/
17431 Regression tests - t/
17432 Utils - utils/ x2p/ pod/ (where pod translator)
17433 Others are platform specific dirs.
17437 Perl can only use a vfork() that doesn't suffer from strict
17438 restrictions on calling functions or modifying global data in
17439 the child. For example, glibc-2.1 contains such a vfork()
17440 that is unsuitable. If your system provides a proper fork()
17441 call, chances are that you do NOT want perl to use vfork().
17443 needs further investigation.
17447 Link to modules info:
17448 http://cpan.uwinnipeg.ca/htdocs/faqs/cpan-search.html
17450 There are 3 types of modules. The core modules that not need additional
17451 treatment (no dependencies), the core modules depend on previously described
17452 and CPAN modules, which can to download, build and install from CPAN
17453 places. All operatins on CPAN modules could be done manualy or automaticaly
17458 Have 2 different internal threads implementations. The current model
17459 (ithreads), which is one interpreter per thread with explicit sharing of data.
17460 The old model (5005threads) is considered obsolete, buggy and unmaintained.
17461 The `threads' module is api for ithreads and `Thread' offer an interface to
17462 whichever has been configured.
17465 Large overhead of creating a thread and also cost of returning values.
17466 Bug on some platforms, might not be possible to destroy "parent" there is still
17468 !!!This model based on fork().
17471 All data is implicitly shared and access should be explicitly synchronized.
17475 The perl executable is normally obtained by linking perlmain.c with
17476 libperl.a, any static extensions (usually just DynaLoader), and
17477 any other libraries needed on this system (such as -lm, etc.). Since
17478 your system supports dynamic loading, it is probably possible to build
17479 a shared libperl.so. If you will have more than one executable linked
17480 to libperl.so, this will significantly reduce the size of each
17481 executable, but it may have a noticeable affect on performance. The
17482 default is probably sensible for your system.
17486 There are 3 implementatio of IO: PerlIO, standard stdio.h and safe|fast stdio.
17487 The most new is PerlIO, but standard stdio also supported. The last one is
17488 kind of feature, which described at http://www.research.att.com/sw/tools/sfio/
17492 Perl relies heavily on malloc(3) to grow data structures as needed, so perl
17493 is shipped w/ malloc optimized for typical request from perl.
17494 The system malloc also supported.
17501 sorted by they influence on project.
17504 1. Which perl to take?
17505 The best would be from uClinux source tree, but it has perl-5.0.5, which
17506 is not supports Tk. The perl starts to support Tk from perl-5.7.3 and
17507 Tk-800.xxx. The last update was perl-5.8.0 supports Tk-804.xxx.
17509 to take last stable which is perl-5.8.5
17510 2. Do we have to support modules?
17512 yes, cause some basic functionality (Module loader itself, Sockets, etc.)
17513 provided by modules.
17515 CRITICAL - must to answer ASAP
17516 ?. fork/vfork problem. At config wrote:
17517 "can only use a vfork() that doesn't suffer from strict restrictions
17518 on calling functions or modifying global data in the child. For example,
17519 glibc-2.1 contains such a vfork() that is unsuitable. If your system
17520 provides a proper fork() call, chances are that you do NOT want perl to
17522 So, we can't use our vfork and fork not supported?
17524 ?. Modules should be static or dynamic?
17525 if dynamic depends on implementation of shared object (waits for Mulli's approve)
17526 if static, so arises problem of perl binary size (w/o modules 3.5M), which
17527 badly hurts ithreads.
17529 MANDATORY - have to answer, but later
17530 ?. The perl binary size problem. Mostly because of libperl.a
17531 (look at shared libperl)
17532 ?. Which modules to build?
17533 from default extensions and CPAN (TBD - waits for Mark/Haim)
17534 number of modules must be there.
17535 Info on default modules/extensions:
17536 NAME-------- SIZE(KB) COMPILED TESTED
17539 set/get attrib of subroutine (depricated).
17541 the perl compiler, changing "backend" of Perl compiler.
17543 load byte compiled perl code.
17545 get current working directory
17547 stringified perl data structures, suitable for both printing and eval.
17549 Perl5 access to Berkeley DB version 1.x
17553 data debugging tool for the XS programmer
17554 Devel/PPPort 63 y n
17555 perl/pollution/portability
17557 interface to MD5 algo
17561 load the C Fcntl.h defines
17563 Filter/Util/Call 20 y n
17565 Perl5 access to the gdbm library.
17566 I18N/Langinfo 27 y n
17572 access to ndbm files
17575 access to odbm files
17576 PerlIO/encoding 53 y n
17577 PerlIO/scalar 12 y n
17580 interface to IEEE std 1003.1
17582 Perl pragma to alter regular expression behaviour
17584 access to sdbm files
17586 translation of the socket.h file.
17588 persistence for Perl data structures
17589 Sys/Hostname 10 y n
17592 threads/shared 108 y n
17595 Unicode/Normalize 401 y n
17597 ?. How to install CPAN modules? Should be precompiled or not?
17598 ?. What MediaLinux perl package contains?
17599 libs, utils, html, man, etc.
17600 ?. Which thread model to use?
17601 decided: cause 5005threads not supported, so should ithreads be supported,
17602 with one obstacle: size of perl binary.
17603 Another option not to support threads, if not widely used. (TBD by Mark)
17605 ?. Which IO model to use?
17606 newest PerlIO, but there are support for sfio and regular stdio.h
17607 Should be used PerlIO or stdio.h (TBD - Mark)
17608 Usage of sfio w/ Or.
17610 OPTIONAL - may be no need for answer
17611 ?. Which malloc to use?
17612 Anyway can work w/ system malloc, so have to be checked if performance problem.
17613 ?. Should be link with ActivePerl IDE?
17614 Already downloaded.
17615 ?. Which utilities have to be ported?
17616 All placed at bin dir. The list provided below
17652 03nov2004 - 10 objs created
17653 04nov - miniperl created
17654 07nov - trying to fully cross-compile - 30% done
17656 09nov - create project doc
17657 10nov - fork problem research
17658 11nov - continue to fully cross-compile
17660 Problematic modules :
17661 DB_File - Perl5 access to Berkeley DB version 1.x
17662 GDBM_File - Perl5 access to the gdbm library.
17663 NDBM_File - access to ndbm files
17664 ODBM_File - access to odbm files
17665 POSIX - interface to IEEE std 1003.1
17666 SDBM_File - access to sdbm files
17671 023 - MediaLinux GUI toolkit {{{
17675 Tk is a cross-platform toolkit, but development has stalled and thus Tk is missing many modern GUI widgets.
17676 Qt has a different licensing model (which may require a commercial license in some cases where FOX will not)
17677 Gtk has been ported to Windows, but it is not genuinely cross-platform
17678 wxWidgets promotes the use of native widgets on each supported platform
17686 024 - Toolchain w/ CCS 3.0 {{{1
17688 CCS3 arrived and mission is to create new tools w/ stuff from CCS3.
17689 List of stuff needs to rebuild w/ new compiler.
17690 converter and libgcc-ti.lib
17696 Currently (07dec2004) defined by Ady to rebuild only libs and apps.
17697 Prepare new tools. {{{2
17698 *Install old tools.
17700 cd /usr/local/tools/wine-ti-cc/support/dotwine/fake_window
17702 cp -r /misc/share/ccs3_4_lnx ./ti-3
17704 cd <uclinux> and prepare everything
17707 pushd /usr/local/tools/wine-ti-cc/support/dotwine/fake_windows ; rm -rf ti ; \
17708 ln -s ti-3 ti ; popd
17711 Created stuff will be burned and checked.
17712 Problem: sizes of binaries 30-50% bigger compare to CCS2.20
17714 2. Create libgcc-ti.lib (needed by converter)
17715 Creation skiped. Just cp from `ti-lib' for .../cgtools/lib/
17717 3. Kernel can build from this point. It doesn't need libsoftier.lib
17719 New decision (12dec2004):
17720 Create tools for 2.4 with both compilers, when 2.20 would be used as usual
17721 and 3.0 only for certain apps (like Ant or perl). There 3 changes:
17722 Added `ti3' and link `ti' would be to point out.
17723 Added `libsoftier-ti3.lib' and link `libsoftier.lib' would be to point out.
17724 Added tms320c6-coff-strip (original renamed to tms320c6-coff-strip.binutils)
17726 Script `comp.sh' added in `bin' dir.
17729 025 - HTTP server {{{
17730 To found multithreaded (ability to serve many connections - performance not
17731 an issue), written in C, easy to port (ANSI C), supports CGI protocol,
17732 support PHP, small, etc.
17735 name AnsiC model CGI PHP ver nbr_lines URL
17736 AOLserver y aolserver.com
17737 Apache y apache.org
17739 micro_httpd ? acme.com/software/micro_httpd/
17741 thttpd acme.com/software/thttpd/
17743 goahead y y 2.1.8 30K goahead.com
17747 1. can't auto detect the user line speed, by HTTP protocol, so have to prepare
17748 files for each of line speeds;
17749 2. can't run stream live video, cause HTTP must have whole file on server;
17750 3. icur a heavier server load
17754 Main flug naf Nuawei. (09-15jan2005)
17756 1. The personal entertaiment system used in Swiss Air.
17757 a. The system contains LCD monitor and wired control device, looks almost
17758 like remote control. It has main 6 buttons to control video play and menu
17759 capabilities. There are also separated cross-like buttons used in some
17760 games. No mouse-like functionality.
17761 b. The GUI system. Very simple 2D shapes. Multicolor, looks like 16bpp.
17762 c. Functionality. Menu to choose programs listed below:
17763 video data from outside cameras
17768 d. Compare to our system (demo):
17769 The GUI of SelecTV is much better.
17770 The control device functionality is the same.
17771 2. Huawei meetings.
17772 a. Most wanted issue was lack of API documentation, even for Linux
17773 knowledged people in Huawei. This issue could be splitted in two:
17774 standard API and Softier-decided-to-support API.
17775 The standard case is about known libraries, like (libc, libm, libpthread).
17776 Even here, the question was how much we different from uClinux project.
17777 The Softier-decided-to-support API is like which solution Softier has for
17778 GUI applications. In this particular case, the needed GUI API was created
17779 on the place and introduced to them.
17780 Special interest was in video capabilities, it's API and architecture.
17781 The BrowserDemo application was introduced to them and seems like what
17782 they want or at least accept. Our video play architecture was introduced
17783 and found very persuative compare to there system.
17784 The detailed description of video/audio codecs can bring strong confidence,
17785 cause it's gives the ability to compare different systems. The example
17786 document, which describes current Huawei system attached.
17788 It seems like we almost have full technical solution for Huawei-like
17789 customer. The weak pointes are no strong product wrap, which has
17790 user documentation, knowledge base for solutions (for example, porting).
17794 1. support advanced profile in MPEG4
17795 2. support 16bpp (565) and 32bpp BMP
17796 3. jpeg,bmp,gif,png
17797 4. detailed documenation for SelecTV ini files
17798 5. Course how to create video player?
17799 6. How to show OSD profile when player runs (mpeg4)
17802 9. Picture on picture
17803 10. Detailed doc for KAD
17804 11. Description of supported video file extentions.
17805 12. Documentation for player API
17806 13. Show chineese characters
17807 14. Document for porting C code
17808 15. Ability to bit profile player (with MA file)
17811 027 - Toolchain w/ CCs 3.1b {{{1
17813 New tools needed, cause of better C++ support in CCS 3.1b. Same procedure as
17814 for Toolchain w/ CCS 3.0. More atention what to copy from Win32.
17816 1. Copy ti31b to /usr/local/tools/wine-ti-cc/support/dotwine/fake_windows/ ,
17817 where contents install of CCS 3.1b (3.10.7.2) and RF in WinXP (only dirs left
17818 are: C6000, c6400, referenceframework and ddk (copied from 2.20.18)
17819 2. Prepared libsoftier-ti31b.lib. Done by Zvika, by replacing from
17820 c6000/cgtools/lib/rts6400.lib everything non-exist in libc and libm.
17821 3. Change tms320c6-coff-gcc to add `-pds1311' to CCS 3.x
17822 4. Split env_ll.src in 2 files env3.src and env31b.src, where change
17823 TMS320C6X_SUPPORT_WCHAR to 0 in both. Needed due to env var TMS320C6X_CCS31B
17824 which helps in libm to choose the right objs dir.
17825 5. Change comp.sh to include comp31b command
17826 6. Create `ln -s ../../../../../../../../ti-lib/libgcc-ti.lib libgcc-ti.lib' in
17827 /usr/local/tools/wine-ti-cc/support/dotwine/fake_windows/ti31b/c6000/cgtools/lib
17828 7. In /usr/local/tools/wine-ti-cc/support/dotwine/fake_windows/ti31b/c6000/bios/lib make follows:
17829 `ln -s ../../csl/lib/csl6415.lib csl6415.lib'
17831 How to build w/o support for WCHAR?
17836 make dep && make linux
17841 To add WCHAR support?
17842 change TMS320C6X_SUPPORT_WCHAR to 1 in env3.src|env31b.src
17843 change uClibc/.config to add 2 line below or run `make menuconfig' from uClibc:
17845 # UCLIBC_HAS_LOCALE is not set
17847 New objs for libm, new change of libm/Makefile
17849 cvs commit -m "long long support" uClibc/libm/Makefile
17850 cvs add uClibc/libm/ti_objs31b
17851 cvs commit uClibc/libm/ti_objs31b
17852 find uClibc/libm/ti_objs31b ! -path '*/CVS/*' ! -type d -exec cvs add {} \;
17853 find uClibc/libm/ti_objs31b ! -path '*/CVS/*' ! -type d -exec cvs commit -m "CCS 3.1b" {} \;
17854 cvs rtag -R libs-26 uClinux-libs
17856 028 - LONGLONG & WCHAR changes {{{1
17858 1. Add `long long' support (due to use of TI's compiler v5.0.0 from CCS3) {{{2
17860 libc preparations: {{{3
17862 a. (from tms320c6-coff-gcc) redefined __SOFTIER_LONGLONG__ to long long
17863 b. (from uClibc/incbs4videolude/limits.h) check macros LLONG_MAX, LLONG_MIN,
17865 c. (from uClibc/include/bits/uClibc_stdio.h)
17866 check for __UIM_BUFLEN, __UIM_BUFLEN_LLONG
17867 d. (from uClibc/include/stdlib.h uClibc/libc/stdlib/stdlib.c) labs() func.
17868 e. check follows funcs:
17869 ++ strtoll() (from uClibc/libc/stdlib/stdlib.c)
17870 ++ strtoull() (from uClibc/libc/stdlib/stdlib.c)
17871 ++ atoll() (from uClibc/libc/stdlib/stdlib.c)
17872 ++ llabs() (from uClibc/libc/stdlib/stdlib.c, uClibc/include/stdlib.h)
17873 ++ labs() (from uClibc/libc/stdlib/stdlib.c)
17875 - printf() (from uClibc/libc/stdio/printf.c)
17877 + f. Disable remark 452 which is "the type long long is non standard"
17878 g. New env var TMS320C6X_SUPPORT_LONGLONG which switchon support for long
17879 long without converter.
17882 uClibc/include/bits/uClibc_stdio.h -
17883 (uClibc/libc/sysdeps/linux/common/bits/uClibc_stdio.h
17884 uClibc/include/limits.h
17885 uClibc/include/stdlib.h
17886 uClibc/libc/stdlib/stdlib.c
17887 /usr/local/tools/env_ll.src
17888 /usr/local/tools/env.src
17889 /usr/local/bin/tms320c6-coff-gcc
17892 libm preparations: {{{3
17895 lltoa.obj - no such thing in x86 libc.a
17896 llshift.obj - added, but...
17897 negll.obj - found at libsoftier.lib
17898 strcoll.obj - added, but...
17899 imath64.obj - added, cause needed by code of llabs()
17902 uClibc/libm/ti_objs3/*
17903 uClibc/libm/Makefile
17906 Released like by follows commands:
17908 cvs commit -m "long long support" uClibc/libc/sysdeps/linux/common/bits/uClibc_stdio.h
17909 cvs commit -m "long long support" uClibc/include/limits.h
17910 cvs commit -m "long long support" uClibc/include/stdlib.h
17911 cvs commit -m "long long support" uClibc/libc/stdlib/stdlib.c
17912 cvs commit -m "long long support" uClibc/libm/Makefile
17913 cvs add uClibc/libm/ti_objs3
17914 cvs add -kb uClibc/libm/ti_objs3/*
17915 cvs commit -m "long long support" uClibc/libm/ti_objs3/*
17916 cvs rtag -R libs-20 uClinux-libs
17918 2. Add support for wchar {{{
17924 make xconfig and cancel busybox->tail
17929 change uClibc/.config to add 2 line below or run `make menuconfig' from uClibc:
17931 # UCLIBC_HAS_LOCALE is not set
17936 fix previous bugs {{{
17937 +user/busybox-1.00/editors/sed.c
17938 +user/busybox-1.00/Makefile
17939 `./snmpd -f -c ./snmpd.conf -Lf ./log.log &'
17941 now can ask info by:
17942 snmpget -c gxk -v 2c gxk-nb.softier.local system.sysUpTime.0
17943 snmpget -c gxk -v 2c 192.168.2.183 system.sysUpTime.0
17944 snmpwalk -c gxk -v 2c 192.168.2.183 system
17946 snmpwalk -c gxk -v 2c 192.168.2.183 .1 > a.txt
17948 iso.org.dod.internet.mgmt.mib-2
17951 iso.org.dod.internet.snmpV2.snmpModules
17955 snmpwalk -c gxk -v 2c 192.168.2.24 ipstbSys
17956 snmpwalk -c gxk -v 2c 192.168.2.24 1.3.6.1.4.1.9999.1
17957 snmpset -c gxk -v 2c 192.168.2.24 ipstbSys.sysContact.0 s gxk@softier.com
17961 copy SOFTIER-IPSTB-MIB.txt to /usr/share/snmp/mibs/
17962 env MIBS="+SOFTIER-IPSTB-MIB" mib2c -f ipstb -c mib2c.scalar.conf ipstbSys
17964 05may2005 done MIB w/ 1 ro node.
17966 Add new MIB to ML snmp:
17967 copy MIB source files to <snmp src>/agent/mibgroup
17968 change <snmp src>/agent/mibgroup/mkfile
17969 change <snmp src>/agent/mibgroup/mib_module_includes.h
17970 change <snmp src>/agent/mibgroup/mib_module_inits.h
17980 directory {internet 1}
17983 transmission {mib-2 10}
17984 experimental {internet 3}
17985 private {internet 4}
17986 enterprises {private 1} 1.3.6.1.4.1
17987 security {internet 5}
17988 snmpV2 {internet 6}
17989 snmpDomains {snmpV2 1}
17990 snmpProxys {snmpV2 2}
17991 snmpModules {snmpV2 3} 1.3.6.1.6.3
17996 imports from SNMPv2-SMI
18001 import from: SNMPv2-SMI SNMPv2-TC SNMPv2-CONF
18003 snmpMIB { snmpModules 1 } 1.3.6.1.6.3.1
18005 snmpMIBObjects { snmpMIB 1 } 1.3.6.1.6.3.1.1
18007 system { mib-2 1 } 1.3.6.1.2.1.1
18015 sysORLastChange 8 ro
18016 sysORTable 9 no acc
18017 sysOREntry 1 no acc
18018 sysORIndex 1 no acc
18026 snmpInBadVersions 3
18027 snmpInBadCommunityNames 4
18028 snmpInBadCommunityUses 5
18029 snmpInASNParseErrs 6
18031 snmpInNoSuchNames 9 ro
18032 snmpInBadValues 10 ro
18033 snmpInReadOnlys 11 ro
18034 snmpInGenErrs 12 ro
18035 snmpInTotalReqVars 13 ro
18036 snmpInTotalSetVars 14 ro
18037 snmpInGetRequests 15 ro
18038 snmpInGetNexts 16 ro
18039 snmpInSetRequests 17 ro
18040 snmpInGetResponses 18
18043 snmpOutNoSuchNames 21
18044 snmpOutBadValues 22
18046 snmpOutGetRequests 25 ro
18047 snmpOutGetNexts 26 ro
18048 snmpOutSetRequests 27 ro
18049 snmpOutGetResponses 28 ro
18051 snmpEnableAuthenTraps 30
18055 snmpTrap { snmpMIBObjects 4 }
18057 snmpTrapEnterprise 3
18059 snmpTraps { snmpMIBObjects 5 }
18062 snmpMIBConformance { snmpMIB 2 } 1.3.6.1.6.3.1.2
18063 snmpMIBCompliances 1
18067 snmpBasicNotificationsGroup 7
18069 snmpCommunityGroup 9
18070 snmpObsoleteGroup 10
18071 snmpWarmStartNotificationGroup 11
18072 snmpNotificationGroup 12
18074 HOST-RESOURCES-MIB {{{2
18077 import from: SNMPv2-SMI SNMPv2-TC SNMPv2-CONF IF-MIB
18079 hostResourcesMibModule { hrMIBAdminInfo 1 }
18082 hrSystem { host 1 }
18083 hrStorage { host 2 }
18084 hrDevice { host 3 }
18086 hrSWRunPerf { host 5 }
18087 hrSWInstalled { host 6 }
18088 hrMIBAdminInfo { host 7 }
18095 |-> init_mib_modules() (agent/mib_modules.c)
18097 | |_> include agent/mibgroup/mib_modules_init.h, where
18098 | | ?-> init_snmp_mib()
18099 | | ?-> init_system_mib()
18100 | | ?-> init_sysORTable()
18101 | | ?-> init_vacm_vars()
18102 | | ?_> init_vacm_context()
18108 1. when call `snmpget -c gxk -v2c 192.168.2.183 1.3.6.1.6.3.1.1.6.1.0' getting
18109 `send response: Error building ASN.1 representation (build int size 2262606604:
18111 solution: The error message from snmplib/snmp_api.c, where it is macro called
18112 SNMPERR_BAD_ASN1_BUILD. The usage of this macro found in snmp_build() in the
18114 from debug log file:
18115 trace: *�*�*(): snmp_api.c, 2880:
18116 snmp_send: Building SNMPv2 message...
18117 trace: *�*�*(): snmp_api.c, 2884:
18118 dumph_send: PDU-RESPONSE
18119 trace: *�*�*(): snmp_api.c, 3243:
18120 snmp_pdu_realloc_rbuild: starting
18121 trace: *�*�*(): snmp_api.c, 3258:
18122 dumph_send: VarBind
18123 trace: *�*�*(): snmp.c, 341:
18125 trace: *�*�*(): snmp_api.c, 4695:
18126 sess_async_send: encoding failure
18127 send response: Error building ASN.1 representation (build int size 2264352924: s/b 4)
18132 | |->snmp_pdu_realloc_rbuild()
18134 | | |->snmp_realloc_rbuild_var_op() (snmplib/snmp.c)
18136 | | | |->asn_realloc_rbuild_int() (snmplib/asn1.c)
18142 Next will create config file:
18143 cfgmaker --global 'workdir: /home/gxk/prjs/snmp/mrtg' -output mrtg.cfg gxk@192.168.2.183
18144 where gxk -community and 192.168.2.183 -ip card'
18146 env LANG=C /usr/bin/mrtg ./mrtg.cfg --logging ./log.log &
18151 snmpd/modules/Makefile
18152 snmpd/snmplib/Makefile
18153 snmpd/snmpd/Makefile
18154 snmpd/snmpd/Rules.mak
18155 snmpd/snmpd/snmpd.c
18157 030 - wchar telnet fix {{{1
18159 If uClibc is built with UCLIBC_HAS_WCHAR, telnetd sends "InvInvInv" to the
18160 remote client after spawning login. This string is begining of the message
18161 "Invalid multibyte format string."
18163 Changes done to the file: user/telnetd/state.c
18165 Build uClinux-dist release w/ WCHAR:
18167 . /usr/local/tools/env31b.src
18170 make dep && make linux
18174 make lib && make user
18180 1. Add locale support
18181 2. Check wchar w/ it
18184 `cd uClibc' and `make menuconfig', where check support for WCHAR and LOCALE
18185 `cd uClibc/extra/locales'
18186 fix gen_wc8bit.c, gen_wctype.c, gen_collate.c
18187 create codesets.txt and locales.txt
18188 fix uClibc/extra/Makefile
18192 Next error happened in `uClibc/extra/locale', when
18193 `gcc -O2 -Wall -DCTYPE_PACKED=1 -DDO_WIDE_CHAR=1 gen_wc8bit.c -o gen_wc8bit'
18194 Fix it by change all SOFTIER's macros to original types.
18195 Next is miss of codesets.txt file. Fixed by running follows:
18196 `find /home/gxk/prjs/uClinux-dist/uClibc/extra/locale/charmaps -name "*.pairs" \
18197 > /home/gxk/prjs/uClinux-dist/uClibc/extra/locale/codesets.txt'
18198 Next problem in uClibc/extra/locale/gen_wctype.c fixed by replace Softier's
18199 macros to original types.
18200 Next miss of locales.txt, fixed bu follows:
18201 `cp /home/gxk/prjs/uClinux-dist/uClibc/extra/locale/LOCALES \
18202 /home/gxk/prjs/uClinux-dist/uClibc/extra/locale/locales.txt'
18205 uClibc/extra/locale/gen_wc8bit.c
18206 uClibc/extra/locale/gen_wctype.c
18207 uClibc/extra/locale/gen_collate.c
18208 uClibc/extra/locale/Makefile
18210 uClibc/extra/locale/codesets.txt
18211 uClibc/extra/locale/locales.txt
18212 uClibc/extra/locale/uClibc_locale_data.h
18213 uClibc/extra/locale/locale_data.o
18227 There is var in uClibc/.config called `UCLIBC_HAS_LOCALE', which used in follows
18228 ./uClibc/include/ctype.h
18229 ./uClibc/include/iconv.h
18230 ./uClibc/include/bits/uClibc_locale.h
18231 ./uClibc/libc/stdlib/stdlib.c
18232 ./uClibc/libc/misc/locale/Makefile
18233 ./uClibc/libc/misc/internals/__uClibc_main.c
18234 ./uClibc/libc/misc/wchar/wchar.c
18235 ./uClibc/libc/misc/wchar/Makefile
18236 ./uClibc/libc/sysdeps/linux/common/bits/uClibc_locale.h
18238 ./uClibc/extra/Configs/Config.in
18242 setlocale() (uClibc/misc/locale/locale.c)
18243 localeconv() (uClibc/misc/locale/locale.c)
18244 nl_langinfo() (uClibc/misc/locale/locale.c)
18250 032 - Ping behaviour {{{1
18253 The problem: When run ping second time it's only print 1 message.
18256 1st - it is ICMP problem, caused by UDP multicast in Softier's network or
18257 exists only with dhcp client.
18258 2nd - connected to long_long/wchar support, cause not happened w/ CCS2.
18261 Found that C+c actualy causing problem to ping and th problem exists
18262 aslo in 2.4 where libs compiled with CCS2.
18264 Because cure is to do unblock to SIGALRM,so ..
18266 033 - toolchain fix 19jul2005 {{{1
18270 Symbols start w/ `_' from spru187l.pdf and objs names from rts of CCS3.1b
18271 Usage of Current place
18272 Convert double to ...
18273 _cvtdf cvtdf.obj libsoftier
18274 _fixdi fixdi.obj libsoftier
18275 _fixdli fixdli.obj libsoftier
18276 _fixdlli fixdlli.obj _llshru libsoftier
18277 _fixdu fixdu.obj libsoftier
18278 _fixdul fixdul.obj libsoftier
18279 _fixdull fixdull.obj _llshru libsoftier
18280 Convert float to...
18281 _cvtfd cvtfd.obj libsoftier
18282 _fixfi fixfi.obj libsoftier
18283 _fixfli fixfli.obj libsoftier
18284 _fixflli fixflli.obj _llshru libsoftier
18285 _fixfu fixfu.obj libsoftier
18286 _fixful fixful.obj libsoftier
18287 _fixfull fixfull.obj _llshru libsoftier
18289 _fltid fltid.obj libsoftier
18290 _fltif fltif.obj libsoftier
18291 _fltud fltud.obj libsoftier
18292 _fltuf fltuf.obj libsoftier
18294 _fltlid fltlid.obj libsoftier
18295 _fltlif fltlif.obj libsoftier
18296 _fltuld fltuld.obj libsoftier
18297 _fltulf fltulf.obj libsoftier
18298 Convert long long to...
18299 _fltllid fltllid.obj _llshl libsoftier
18300 _fltllif fltllif.obj _llshl libsoftier
18301 _fltulld fltulld.obj _llshl libsoftier
18302 _fltullf fltullf.obj _llshl libsoftier
18304 _absd absd.obj libsoftier
18305 _absf absf.obj libsoftier
18307 _llabs abs.obj libc
18308 _negd negd.obj libsoftier
18309 _negf negf.obj libsoftier
18310 _negll negll.obj libsoftier
18312 _llshl llshift.obj libm
18313 _llshr llshift.obj libm
18314 _llshru llshift.obj libm
18316 _addd addd.obj libsoftier
18317 _cmpd cmpd.obj libsoftier
18318 _divd divd.obj libsoftier
18319 _mpyd mpyd.obj libsoftier
18320 _subd subd.obj libsoftier
18323 _cmpf cmpf.obj libsoftier
18324 _divf divf.obj libsoftier
18325 _mpyf mpyf.obj libsoftier
18326 _subf subf.obj libsoftier
18328 _divi divi.obj libsoftier
18329 _remi remi.obj libsoftier
18330 _divu divu.obj libsoftier
18331 _remu remu.obj libsoftier
18333 _divli imath40.obj libsoftier
18334 _remli imath40.obj libsoftier
18335 _divul imath40.obj libsoftier
18336 _remul imath40.obj libsoftier
18338 _divlli imath64.obj _llshl,_llshru libm
18339 _remlli imath64.obj _llshl,_llshru libm
18340 _mpyll mpyll.obj libsoftier
18341 _divull imath64.obj _llshl,_llshru libm
18342 _remull imath64.obj _llshl,_llshru libm
18344 Not found symbols (from rts):
18349 Changes in libraries {{{2
18350 Based on List #1 remove follows objs from libm to libsoftier:
18351 llshift.obj, imath64.obj
18353 Add missed obj to libsoftier:
18356 Add follows to libsoftier (from STL project):
18357 defs.obj, error.obj
18360 Add tms320c6-coff-mk-cramfs to /usr/local/bin
18362 Change tms320c6-coff-strip to /usr/local/bin
18364 034 - filesystem {{{1
18367 To create remote fs, based http.
18374 put_inode: force_delete() - kill unused inodes
18375 delete_inode: ftp_delete_inode()
18378 |_> unlock_kernel()
18379 put_super: ftp_put_super()
18380 |-> ftp_disconnect()
18381 |-> ftp_cache_empty()
18383 statfs: ftp_statfs() - update file attr params
18384 file_ops ftp_dir_operations
18385 read: generic_read_dir()
18386 readdir: ftp_readdir()
18390 open: ftp_dir_open() - {return 0;}
18391 inode_ops ftp_dir_inode_operations
18392 create: ftp_create()
18393 lookup: ftp_lookup()
18394 unlink: ftp_unlink()
18397 rename: ftp_rename()
18398 inode_ops ftp_symlink_inode_operations
18399 readlink: ftp_readlink()
18400 follow_link: ftp_follow_link()
18401 file_ops ftp_file_operations
18402 read: generic_file_read()
18403 write: generic_file_write()
18404 mmap: generic_file_mmap()
18405 open: ftp_file_open() - {return 0;}
18406 release: ftp_file_release() - {return 0;}
18407 inode_ops ftp_file_inode_operations
18408 permission: ftp_file_permission()
18409 addr_ops ftp_file_aops
18410 readpage: ftp_file_readpage()
18411 writepage: ftp_file_writepage()
18412 prepare_write: ftp_file_preparewrite()
18413 commit_write: ftp_file_commitwrite()
18418 unsigned long f_ino;
18428 unsigned long f_blksize;
18429 unsigned long f_blocks;
18432 ftp_mount_data {{{5
18436 __kernel_uid_t uid;
18437 __kernel_gid_t gid;
18438 __kernel_mode_t file_mode;
18439 __kernel_mode_t dir_mode;
18440 char root[FTP_MAXPATHLEN];
18441 char mount_point[FTP_MAXPATHLEN];
18445 struct sockaddr_in address;
18446 struct ftp_mount_data mnt;
18447 char user[FTP_MAX_USER];
18448 char pass[FTP_MAX_PASS];
18449 struct semaphore sem;
18450 struct socket *ctrl_sock;
18451 struct socket *data_sock;
18452 struct ftp_dir_cache cache;
18457 ftp_read_super() {{{4
18458 |-> create `struct ftp_sb_info info'
18459 |-> update `struct super_block'
18460 |-> ftp_cache_init(info) - init dir_cache
18461 |-> ftp_parse_options() - update ip,port,user,pass,root,own,uid,gid,fmode,dmode,active
18463 | |-> create socket
18465 | |-> ftp_get_response() - gets number at start of line which is response (200 is Ok)
18466 | | |-> ftp_readline() - recv till `\n'
18467 | | |_> if 4th char is '-', so ...
18468 | |-> prepare buf for USER cmd
18469 | |-> ftp_execute() - send cmd, can reconnect, can care for response
18470 | | |-> close data socket
18471 | | |-? if ctrl socket is NULL call ftp_reconnect()
18472 | | |-> add `\r\n' to cmd
18473 | | |-> sock_send()
18474 | | |-? if error send, so ftp_reconnect()
18475 | | |_? ftp_get_response() (see above)
18476 | |-> prepare buf for PASS cmd
18477 | |-> ftp_execute() (see above)
18478 | |_> ftp_get_response() (see above)
18479 |-> ftp_init_root_dirent() - update file attr of root direntry from info
18482 | |-> ftp_set_inode_attr()
18483 | |-? if dir update i_op, i_fop (ftp_dir_operations,ftp_dir_inode_operations)
18484 | |-? if link update i_op (ftp_symlink_inode_operations)
18485 | |-? if file update i_op, i_fop and i_data.a_ops
18486 | | (ftp_file_inode_operations,ftp_file_operations, ftp_file_aops)
18487 | |_> insert_inode_hash(res)
18489 |_? iput() - drop usage count of inode. if 0 so destroyed.
18491 ftp_file_readpage() {{{4
18494 |-> ftp_read() till PAGE_SIZE
18496 | |-> ftp_getname()
18497 | |-> prepare RETR cmd
18498 | |-> ftp_execute_open()
18506 |-> ftp_get_name() - create full path name
18507 |-> ftp_proc_create()
18508 | |-> prepare STOR cmd
18510 | |-> ftp_execute_open()
18511 | | |-> ftp_execute_open_actv()
18512 | | |-> ftp_execute_open_pasv()
18513 | |-> ftp_close_data()
18515 |_> ftp_cache_invalidate()
18521 super_ops cramfs_ops
18522 statfs cramfs_statfs()
18523 file_ops cramfs_directory_operations
18524 read generic_read_dir()
18525 readdir cramfs_readdir()
18526 inode_ops cramfs_dir_inode_operations
18527 lookup cramfs_lookup()
18528 addr_ops cramfs_aops
18529 readpage cramfs_readpage()
18533 super_ops my_super_ops
18534 put_super my_put_super()
18536 read_inode my_read_inode()
18537 put_inode my_put_inode()
18538 file_ops my_path_file_ops
18539 open my_path_open()
18542 | |->get_tcp_conn()
18543 | |->http_send_query()
18544 | |->http_get_header()
18545 | |_>http_get_body()
18546 read my_path_read()
18547 release my_path_release()
18548 inode_ops my_path_inode_ops
18549 lookup my_path_lookup()
18550 file_ops root_file_ops
18551 read generic_read_dir()
18552 inode_ops my_root_inode_ops
18553 lookup my_root_lookup()
18559 GET - retrvs data with meta-data
18560 HEAD - retrvs only meta-data
18563 Apache changes in /etc/httpd/conf/httpd.conf :
18565 KeepAliveTimeout 360
18567 1. superblock ops and mount utility.
18568 2. file and inode ops (readonly)
18570 super_ops httpfs_sops
18571 put_inode: force_delete()
18572 delete_inode: ftp_delete_inode()
18573 put_super: ftp_put_super()
18574 statfs: ftp_statfs()
18575 file_ops ftp_dir_operations
18576 read: generic_read_dir()
18577 readdir: ftp_readdir()
18578 open: ftp_dir_open()
18579 inode_ops ftp_dir_inode_operations
18580 create: ftp_create()
18581 lookup: ftp_lookup()
18582 unlink: ftp_unlink()
18585 rename: ftp_rename()
18586 file_ops ftp_file_operations
18587 read: generic_file_read()
18588 write: generic_file_write()
18589 mmap: generic_file_mmap()
18590 open: ftp_file_open()
18591 release: ftp_file_release()
18592 inode_ops ftp_file_inode_operations
18593 permission: ftp_file_permission
18594 addr_ops ftp_file_aops
18595 readpage: ftp_file_readpage()
18596 writepage: ftp_file_writepage()
18597 prepare_write: ftp_file_preparewrite()
18598 commit_write: ftp_file_commitwrite()
18603 httpfs - freezed. actualy it's works.
18604 ftpfs - fixed proc.c to run in passive mode with MS IIS ftp server. active
18605 mode still runs only with Linux ftp server. In Windows - there is bug in ftp
18606 server where FTP server answer Ok for PORT command and after send 425 - "can't
18607 open data connection".
18612 035 - kernel 119 release {{{1
18614 1. BSP 3.0 integration
18615 2. DMX driver code from Eli
18616 3. Fast Logo bug fix from Oleg
18619 <bsp>/bsl/include/kad/ddk/cs4955.h - linux-2.4.x/kad/include/bsl/cs4955.h
18620 <bsp>/include/bsl_aud_codec.h - linux-2.4.x/kad/include/bsl/
18621 <bsp>/include/bsl_queries.h - linux-2.4.x/kad/include/bsl/
18622 All libs from <bsp>/lib/bsl/... - linux-2.4.x/kad/dm642/...
18624 Changes in bsl_queries.h:
18626 #define AUDIO_BURST_MODE_FLG 0x1 /**< Default mode for AIC23 codec*/
18627 #define AUDIO_TDM_MODE_FLG 0x2 /**< Default mode for UDA8113H codec*/
18628 #define AUDIO_DIT_MODE_FLG 0x4 /**< Optional mode for boards that has S/PDIF connector */
18630 Uint32 audio_mode_flags; /**< Possible Audio Transfer mode flags*/
18631 for audio_ports_prop_t
18633 Changes in bsl_aud_codec.h:
18634 Added new enum for Audio transfer modes
18636 AUDIO_BURST_MODE, /** Burst transfer mode */
18637 AUDIO_TDM_MODE, /** Time-Division Transfer mode*/
18638 AUDIO_DIT_MODE /** Digital Audio Transmit Transfer mode*/
18639 } audio_xmt_mode_e;
18641 audio_xmt_mode_e xmt_mode; /**< Audio Transfer mode */
18642 Changed api of aud_codec_getDevParams
18643 aud_codec_st aud_codec_getDevParams(Int codec_handle,audio_xmt_mode_e xmt_mode,CODEC_EDMA_DevParams *devParams);
18645 Follows src files calls ud_codec_getDevParams(), so should be changed. Example
18646 taken from bsp-2.26 (from <bsp-2.26>/ddk/native/src/)
18647 --- linux-2.4.x/kad/sound/edma_codec.c ---
18649 extern audio_xmt_mode_e current_audio_xmt_mode;
18650 Change call to aud_codec_getDevParams():
18651 aud_codec_getDevParams(DEFAULT_AUD_CODEC_HANDLE,current_audio_xmt_mode,&tmp_params)
18652 Add new init for edmaCfg.opt like:
18653 switch(current_audio_xmt_mode) {
18654 case AUDIO_BURST_MODE:
18655 edmaCfg.opt |= EDMA_FMKS(OPT, ESIZE, 32BIT);
18657 case AUDIO_TDM_MODE:
18658 case AUDIO_DIT_MODE:
18659 edmaCfg.opt |= EDMA_FMKS(OPT, ESIZE, 16BIT);
18664 Minory change at line 224 of 3d argument from `args' to `(Uint32 *)pargs'
18666 --- linux-2.4.x/kad/sound/pcmdrv.c ---
18670 linux-2.4.x/arch/tms320c6/drivers/dmx/dmxdrv.c (have chnages from Eli and Oleg)
18671 linux-2.4.x/kad/gio/evm642/video_api.c
18672 linux-2.4.x/kad/include/kkidef.h
18673 linux-2.4.x/kad/include/video.h
18674 linux-2.4.x/kad/include/bsl/bsl_aud_codec.h
18675 linux-2.4.x/kad/include/bsl/bsl_queries.h
18676 linux-2.4.x/kad/include/bsl/cs4955.h
18677 linux-2.4.x/kad/sound/edma_codec.c
18678 linux-2.4.x/kad/sound/pcmdrv.c
18679 Follows from linux-2.4.x/kad/dm642/:
18680 control_mv_600M_bsl.lib
18683 evmdm642_600M_bsl.lib
18684 evmdm642_720M_bsl.lib
18688 media1_600M_bsl.lib
18689 media2_1_600M_bsl.lib
18690 media_adapter_600M_bsl.lib
18691 media_adapter_720M_bsl.lib
18692 ny7000_600M_bsl.lib
18693 pci_per_720M_bsl.lib (newly added)
18701 To add kernel driver SPDIF sound output. The low-level driver (from BSL) taken
18702 from TI's McASP (Baruch). Should create kernel wrap for SPDIF. This change
18703 should be available for 600/720MHz of ec628 card (Huawei card).
18706 1. Add Baruch's BSL
18707 2. Make change SPDIF/other
18708 3. Check for support in OSS
18709 4. add Or's support for Keypad
18712 <bsp>/include/bsl_aud_codec.h - linux-2.4.x/kad/include/bsl/
18713 <bsp>/include/bsl_queries.h - linux-2.4.x/kad/include/bsl/
18714 All libs from <bsp>/lib/bsl/... - linux-2.4.x/kad/dm642/...
18717 linux-2.4.x/drivers/sound/evm642_aic.c
18718 linux-2.4.x/kad/sound/pcmdrv.c
18719 linux-2.4.x/kad/include/sound/pcmdrv.h
18720 linux-2.4.x/kad/sound/edma_codec.c
18721 linux-2.4.x/kad/include/kkidef.h
18722 linux-2.4.x/include/linux/soundcard.h
18725 <bsp>/include/pca9555_i2c.h - linux-2.4.x/kad/include/bsl/
18729 linux-2.4.x/include/linux/autoconf.h
18730 #define CONFIG_SOUND 1
18731 #define CONFIG_SOUND_EVM642 1
18732 #undef CONFIG_SOUND_MSNDCLAS
18733 #undef CONFIG_SOUND_MSNDPIN
18734 #undef CONFIG_SOUND_OSS
18736 linux-2.4.x/drivers/sound/
18740 linux-2.4.x/kad/sound/
18744 linux-2.4.x/kad/include/sound/
18748 init_evm642_sound() from linux-2.4.x/drivers/sound/evm642_aic.c
18749 |->pcmdrv_create() from linux-2.4.x/kad/sound/pcmdrv.c
18750 | |->alloc audio pcm handler
18751 | |->SWI_create() create SWI manager for playback
18752 | |->SWI_create() create SWI manager for record
18753 | |->bsl_getAudioPortsProp() get audio port params
18754 | |->aud_codec_setMode() set audio transfer mode
18755 | |->aud_codec_getDevParams() get dev params
18756 | |->DEV_createDevice( audiocodec ) -from BSP, creates DEV_IOMTYPE type device
18757 | | |->EDMA_CODEC_init() from linux-2.4.x/kad/sound/edma_codec.c
18758 | | | |_>C6X1X_EDMA_MCASP_init() from
18759 | | | linux-2.4.x/kad/sound/c6x1x_edma_mcasp.c
18760 | | |_>mdBindDev() from linux-2.4.x/kad/sound/edma_codec.c
18761 | | |->bsl_getAudioPortsProp()
18762 | | |->aud_codec_getDevParams()
18763 | | |->aud_codec_config() set codec params
18764 | | |_>mdBindDev() from linux-2.4.x/kad/sound/c6x1x_edma_mcasp.c
18765 | | |->ATM_setu() mark the port in use
18766 | | |->IRQ_map() map supplied irq to EDMA event
18767 | | |->HWI_dispatchPlug() plug EDMA dispatcher to HWI dispatcher
18768 | | |->MCASP_open() open & reset McASP
18769 | | |->MCASP_config() config w/ params given by caller func
18772 | |->DEV_createDevice( dio_Audiocodec )
18774 | |->SIO_create() for playback device
18775 | | |->mdCreateChan() from linux-2.4.x/kad/sound/edma_codec.c
18776 | | |->bsl_getAudioPortsProp()
18777 | | |_>mdCreateChan() from linux-2.4.x/kad/sound/c6x1x_edma_mcasp.c
18783 | |_>SIO_create() for record device
18784 | |->mdCreateChan() from linux-2.4.x/kad/sound/edma_codec.c
18785 | |->mdCreateChan() from linux-2.4.x/kad/sound/edma_codec.c
18787 |_>register_sound_dsp()
18789 pcmdrv_delete() from linux-2.4.x/kad/sound/pcmdrv.c
18790 |-? SIO_delete() for output stream
18791 |-? SWI_delete() for output stream
18792 |-? SIO_delete() for input stream
18793 |-? SWI_delete() for input stream
18794 |-> DEV_deleteDevice("/dioAudiocodec")
18795 |-> DEV_deleteDevice("/audiocodec")
18796 |_> kki_free() free audio pcm handler
18802 found bug - memory leak - where try to free non-allocated. fixed for k123.
18803 also the example application fixed and explanation added (setamode.c)
18806 FLASH driver for MediaLinux {{{1
18809 done for code from 26nov2005
18810 cvs co -D 2005/10/26 linux-2.6.7
18813 1. enable flash driver (Intel NOR driver for our flash MT28F128J3)
18814 2. make dynamic partitions configuration (from cmdline)
18815 3. search for diff between 2.6.7 and 2.6.13 (for 01sep2005)
18817 Flow of changes {{{2
18818 get new source from cvs (25sep2005). runs `make menuconfig' and set follows
18819 as built-in (not modules):
18820 CONFIG_MTD_BLOCK (not RO)
18821 CONFIG_MTD_CFI (under chip drivers)
18822 CONFIG_MTD_CFI_INTELEXT (under chip drivers)
18823 CONFIG_MTD_PHYSMAP (under mapping)
18824 start addr 0x90000000 (under mapping)
18825 length 0x1000000 (under mapping)
18826 bus 1 (under mapping)
18828 On case MTD block driver is built-in, so change init to mount mtdblock1
18833 1. add delow to include/asm/io.h:
18834 #define __raw_writeb(v,a) (*(volatile unsigned char *)(a) = (v))
18835 #define __raw_writew(v,a) (*(volatile unsigned short *)(a) = (v))
18836 #define __raw_writel(v,a) (*(volatile unsigned int *)(a) = (v))
18838 #define __raw_readb(a) (*(volatile unsigned char *)(a))
18839 #define __raw_readw(a) (*(volatile unsigned short *)(a))
18840 #define __raw_readl(a) (*(volatile unsigned int *)(a))
18844 #define PLL1708_SDIN GPIO_PIN1 /* Data input to the PLL1708 */
18845 #define DIG_OUT1 GPIO_PIN1 /* Digital output 1 (LED1) */
18846 #define PLL1708_SCLK GPIO_PIN2 /* Clock input to the PLL1708 */
18847 #define DIG_OUT2 GPIO_PIN2 /* Digital output 2 (LED2) */
18848 #define PLL1708_CS_ GPIO_PIN4 /* CS# signal to the PLL1708 */
18849 #define USB_HC_DREQ GPIO_PIN5 /* ISP1760/1 HC_DMA_REQ signal */
18850 #define USB_DC_DREQ GPIO_PIN6 /* ISP1761 DC_DMA_REQ signal */
18851 #define DM642_INT GPIO_PIN7 /* Sum of UART_INTA,UART_INTB,USB_DC_INT and USB_HC_INT interrupts */
18852 #define FLASH_PAGING_EXT GPIO_PIN9 | GPIO_PIN10 |\
18853 GPIO_PIN11 | GPIO_PIN12 /* FLASH Paging output pins */
18854 #define FLASH_WPENABLE GPIO_PIN13 /* Flash Write Program Enable pin */
18855 #define DIG_IN1 GPIO_PIN14 /* Digital Input 1 (push button on front panel) */
18856 #define DIG_IN2 GPIO_PIN14 /* Digital Input 2 (push button on front panel) */
18857 #define IR_DATA GPIO_PIN3 /* Infra Red receiver pin */
18859 2. fix in drivers/mtd/maps/physmap.c
18861 instead of `physmap_map.virt = (unsigned long)WINDOW_ADDR; ' write folllows
18862 `physmap_map.virt = (unsigned long)NULL; '
18863 instead of `iounmap((void *)physmap_map.virt);' write follows:
18864 `physmap_map.virt = 0'
18865 in cleanup_physmap()
18866 instead of `iounmap((void *)physmap_map.virt)' write follows
18867 `physmap_map.virt = 0'
18869 3. fix in user-2.6/config/rc.jffs2
18870 To delete start of dhcpcd at boot. Have to rebuild: `make romfs && make image'
18872 4. fix arch/tms320c6/modules/modules.cmd , where added *(__ksymtab_gpl)
18874 -----------------------------------
18875 4. fix in arch/tms320c6/usr/initramfs/init.
18876 Load modules in follow order
18877 /bin/busybox insmod /lib/modules/2.6.7/kernel/drivers/mtd/mtdpart.ko
18878 /bin/busybox insmod /lib/modules/2.6.7/kernel/drivers/mtd/cmdlinepart.ko
18879 /bin/busybox insmod /lib/modules/2.6.7/kernel/drivers/mtd/chips/cfi_cmdset_0001.ko
18880 /bin/busybox insmod /lib/modules/2.6.7/kernel/drivers/mtd/chips/gen_probe.ko
18881 /bin/busybox insmod /lib/modules/2.6.7/kernel/drivers/mtd/chips/cfi_probe.ko
18882 /bin/busybox insmod /lib/modules/2.6.7/kernel/drivers/mtd/maps/physmap.ko
18883 /bin/busybox insmod /lib/modules/2.6.7/kernel/drivers/mtd/mtd_blkdevs.ko
18884 #/bin/busybox insmod /lib/modules/2.6.7/kernel/drivers/mtd/mtdblock_ro.ko
18885 /bin/busybox insmod /lib/modules/2.6.7/kernel/drivers/mtd/mtdblock.ko
18886 /bin/busybox insmod /lib/modules/2.6.7/kernel/drivers/mtd/mtdchar.ko
18888 5. fix in order to enable write to the flash. (04sep2005)
18889 in arch/tms320c6/bsl/bsl_common.c there is init of different pins (call to
18890 CPIO_pinEnable). there pin #13 should be 1 (write to the flash), but the initial
18892 In order not to change generic mtd drv and init system w/ flash RO, decided
18893 (by Or) to have new ioctl which makes pin #13 writeable
18896 All sources taken w/ -D 2005/09/26
18898 Lack of sysfs support in MTD {{{2
18900 It starts from idea to use MTD tools for softier's driver, but all those tools
18901 use `/dev/mtd0', which is not create, cause MTD version for kernel 2.6.7
18902 doesn't support sysfs, so no /dev/mtd0 device created.
18903 Can't copy from current kernel (2.6.14), cause sysfs api changed also.
18904 Take example from softier's vbios module (from Or).
18908 manage jffs2 image {{{3
18909 purpose to change given jffs2 image on machine w/o physical flash.
18910 modprobe -r mtdblock
18915 modprobe mtdram total_size=6144,erase_block=128
18918 dd if=<image filename> of=/dev/mtdblock0
18919 mount -t jffs2 /dev/mtdblock0 /mnt
18921 Now possible to change/add/delete files.
18924 dd if=/dev/mtd0 of=<new image file>
18927 Kernel configuration and modules names. {{{3
18930 | |_> 1 debugging verbosity
18931 |-> M partitioning support mtdpart
18932 |-> - concatenating support
18933 |-> - RedBoot partition table parsing
18934 |-> M CmdLine partition table parsing cmdlinepart
18935 |-> - direct char dev access to MTD dev mtdchar
18936 |-> - caching block dev access to MTD dev mtdblock mtd_blkdevs
18937 |-> M ReadOnly block dev access to MTD dev mtdblock_ro mtd_blkdevs
18940 |-> - INFTL support
18941 |-> + RAM/ROM/Flash chips drivers
18942 | |-> M detect flash chips by CFI probe cfi_probe
18943 | |-> - detect non-CFI flash chips
18944 | |-> - flash chip driver adv config options
18945 | |-> M support for Intel/Sharp flash chips cfi_cmdset_0001
18946 | |-> - support for AMD flash chips
18947 | |-> - support for ST flash chips
18948 | |-> - support for RAM chips in bus mapping map_ram
18949 | |-> - support for ROM chips in bus mapping
18950 | |-> - Support for absent chips in bus mapping
18951 | |_> - Older drivers for non-CFI chips
18952 |-> + Mapping drivers for chip access
18953 | |-> - support non-linear mappings of flash chips
18954 | |-> M CFI flash device in physical memory map physmap
18955 | |-> 0x90000000 phys start addr of flash mapping
18956 | |-> 0x1000000 phys length of flash mapping
18957 | |-> 1 bus width in octets
18958 | |_> - generic uClinux RAM/ROM fs support
18959 |-> - Self-contained MTD dev driver
18961 |_> - NAND flash dev driver
18970 init_physmap() from drivers/mtd/maps/physmap.c
18971 do_map_probe() from drivers/mtd/chips/chipreg.c
18972 |-> get_mtd_chip_driver() - get driver obj from drivers list by name.
18973 | cfi_probe,jedec_probe,map_rom,etc.
18975 cfi_probe() (drivers/mtd/chips/cfi_probe.c)
18976 |_>mtd_do_chip_probe() (drivers/mtd/chips/gen_probe.c)
18977 |->genprobe_ident_chips() (drivers/mtd/chips/gen_probe.c)
18978 | |->genprobe_new_chip() (drivers/mtd/chips/gen_probe.c)
18979 | | |->cfi_probe_chip() (drivers/mtd/chips/cfi_probe.c) - probe per dev
18980 | | | | type X8 or X16
18981 | | | |->cfi_send_gen_cmd(0xF0, 0,...)
18982 | | | |->cfi_send_gen_cmd(0x98, 0x55,...)
18983 | | | |->qry_present() - query for Q R Y at 10h,11h,12h
18984 | | | |-?cfi_chip_setup() (drivers/mtd/chips/cfi_probe.c)
18985 | | | | |->cfi_read_query() (drivers/mtd/chips/cfi_probe.c)
18988 have to create MTD partition with at least 6 contiguous sectors in order to use
18989 jffs2 (garbage collection).
18991 Setting device RO/RW.
18992 History: for RO protection of flash (in 2.4) pin 13 closed.
18993 Found ioctl BLKROSET (from include/linux/fs.h) which set device RO (0 for RW).
18994 Call come to drivers/block/ioctl.c, where disk->fops->ioctl() called. It
18995 brings to drivers/mtd/mtd_blkdevs.c, where blktrans_ioctl().
18996 BUT no case for BLKROSET.
18997 Such case added and call to setblkmode() ( include/linux/mtd/blktrans.h )
18998 Changed struct mtd_blktrans_ops mtdblock_tr where added
19002 flash driver arch in 2.4 {{{2
19003 from BSP bsl/native/src/bsl_flash.c, MT28FxxxJ3_x8.c
19004 Hardware architecture {{{3
19005 Currently in our system there are 4 chip selects, which configured by EMIF.
19006 The addr bus is 20b for every cs and data bus is different.
19007 cs0 - sdram (data bus 64b)
19008 cs1 - flash, uart (data bus 8b)
19009 cs2 - usb (data bus ?b)
19012 Every cs has it's own address range, where cs1 starts at x90000000
19014 This flash chip has own hardware lock, based on block level. The block or
19015 eraseblock is 128KB.
19018 extren struct for simple funcs:
19019 struct FLASHSG_Fxns { erase, read, write, checksum, lock, unlock } where not
19020 used lock and unlock by Softier.
19024 FlashRead() - args (src,dst,len)
19026 DM642_FLASH_checksum()
19028 DM642_FLASH_erase()
19030 DM642_FLASH_write()
19031 FlashWrite() - args (hndlr, src, dst, size) - (MT28FxxxJ3.c)
19032 |-> nbr of Bs for each write - 2B
19033 |-> nbr of Bs to skip in 1st write for alignment
19034 |-> nbr of Bs to program on 1st write
19035 |-> start addr of 1st write for alignment
19036 |-> memset for internal buffer (0xff)
19037 |-> cp from src to internal buffer
19038 |-> FlashBufferProgramming() - (dst,src)
19039 | |-> set dst block addr
19040 | |-- loop for wait 0xffffffff times
19041 | |-- cp to block addr buffer write cmd (0x00e8), by call to
19042 | | WRITE_FLASH(a,d) - macro `*((volatile BYTE*)(a)) = (d)
19043 | |-- get status of write buffer cmd, by call to
19044 | | READ_FLASH(a) - macro `*((volatile BYTE*)(a))'
19045 | |-- check if status READY, so end of loop, by call macro FLASH_IDLE()
19046 | |-? check if waited till end of counter , so return w/ err BUSY
19047 | |-> write to block buffer count cmd (0x001f), by call WRITE_FLASH
19048 | |-- loop for index (0-31) to indexed write
19049 | |-- WRITE_FLASH_INDEX(dst,indx,src[indx]) - macro
19050 | | `*((volatile BYTE*)((BYTE*)(dst) + (i)))=(src)'
19051 | |->WRITE_FLASH(addr,cmd) - set buffer write confirm cmd (0x00d0) to block
19052 | |_> WaitComplete(src)
19053 | |-- loop for countr till 0xffffffff
19054 | |-- write READ_STS_CMD (0x0070) to addr
19056 | |-? if status read, so end of loop
19057 | |-? if loop ended w/ max counter, so return err timeout
19058 | |-> write CLEAR_STS_CMD (0x0050)
19059 | |-> write READ_ARRAY_CMD (0x00ff)
19060 | |_> FullStatusCheck() - checking status agains follow bits
19061 | VPP_BIT,LOCK_BIT,WRITE_ERR_BIT,ERASE_ERR_BIT
19062 |-> update src pointer
19063 |-> update how many Bs remain
19064 |-> update start addr
19065 |-> writing the rest in loop
19067 onboard_flash_pg_update()
19070 changes made in user also, to bring up mtd-utils.
19071 cvs -Q diff -upwN > patch
19073 create jffs2 image:
19075 cp <>/<file> ./opt/
19076 . /usr/local/tools/env.src
19077 tms320c6-coff-mk-jffs2 -d ./opt -o small.img -e 128 -v -U
19078 tms320c6-coff-bin2tihex -i ./small.img -o small.dat -a 0x90000000
19081 037 - add 32M ramfs to linux 2.4 {{{1
19083 Create ramfs32768.img file and place it in uClinux-dist/user/ramimage/
19084 Cahnge follows files:
19086 user/ramimage/Makefile
19089 create patch: cvs -Q diff -pwuN > patch
19092 038 - igmp bug fix in 2.4 {{{1
19094 fix in linux-2.4.x/arch/tms320c6/drivers/dm642_emac/dm642_emac_linux.c
19096 039 - sdk problems from Vertimatrix {{{1
19098 0. Critical – missing C++ symbols; - done; changed libsoftier.a, libc.a
19100 Those are unresolved symbols
19101 __add_dtor ./libvmclient.a
19102 __new_handler libsoftier.a
19103 __ftable libsoftier.a
19105 The symbol `__add_dtor' found in sinit.obj, symbol `__new_handler' found in
19106 vars.obj and `__ftable' in defs.obj All objs files from rts6400.lib
19107 After adding above objs to libsoftier.a, new unresolved symbol `__dtors_prt'
19108 from `exit.obj'. This obj can't be added to libsoftier.
19109 TI compiler creates global pointer2func `dtors_ptr', which collect dtors for
19110 global objs. On exit those dtors called. The exit() in libc,a can be changed.
19112 Added follows objs to libsoftier.a from rts6400.lib:
19113 vars.obj, sinit.obj,defs.obj
19114 Changed file uClibc/libc/stdlib/atexit.c to create global pointer `dtors_ptr'
19115 and call it at func exit().
19117 1. C++ function pointers casting issue; - done by Ady; typecasting should be added
19118 2. No try/catch; - done; changed libsoftier.a, crti.o, tms320c6-coff-gcc, tms320c6-coff-g++
19120 When compile simple file with `try n catch' get error `542: support for
19121 exception handling is disabled'.
19123 In order to enable exception handling (EH), have to add compiler flag
19124 `--exceptions' (from spnu151b) and instead of crti.o to use crti_eh.o
19125 Compilation w/ above changes brings unresolved symbols:
19126 __free_thrown_object
19127 __curr_eh_stack_entry
19129 __caught_object_address
19130 __catch_clause_number
19135 All those found at rts6400_eh.lib, in follows objs: dtor_list, eh_util, error,
19136 memzero, pure_virt, rtti, sinit, throw, vars, vec_newdel
19137 All objs from the list (except eh_util) already exist in libsoftier from
19138 rts6400.lib Hannit (07feb2006) told not to order, just to make sure current
19139 customer can keep working, so...
19141 Delete objs from libsoftier.a, which should be added from rts6400_eh.lib Add
19142 new objs. Rename crti_eh.o to crti.o
19144 3. Broken include file <netinet/igmp.h> - done; changed netinet/in.h
19146 when add include of `netinet/igmp.h' follows error appears: `20: identifier
19147 "__inline__" is undefined' After adding `-D\"__inline__=inline\"' to tmsg++
19148 new error: `20: identifier "__const__" is undefined', so once again added
19149 `-D\"__inline__=inline\"' to tmsg++.
19150 Both errors from file uClibc/include/linux/byteorder/swab.h
19151 Now unresolved symbol: `_htonl' from vmclient.o
19152 Check uClibc/include/linux/byteorder/generic.h
19153 Found that problem occures, when netinet/in.h included before netinet/igmp.h
19154 Also, when CPP file compiler send error about 2 declations of htonl(), so
19155 changed netinet/in.h to disable 1 of declations.
19157 To put include of netinet/igmp.h before include of netinet/in.h and small
19158 change in netinet/in.h to comment htonl() declaration.
19160 4. Broken include file <sys/stat.h> - done; changed bits/stat.h
19162 when compiled CPP file (not C), warning appears:
19163 `83: warning #163-D: unrecognized #pragma' from file include/bits/stat.h
19164 No such warning w/ C file. Based on spru187l.pdf (chap 7.7), macro STRUCT_ALIGN
19165 doesn't work. Check if comment this macro in stat.h will change sizeof struct
19166 stat. Found that not, always 88.
19168 Comment use of pragma STRUCT_ALIGN in bits/stat.h
19170 5a. –M / -MM don’t work (auto dependencies)
19171 5b. ALSO COMPILER VERY SLOW – 2.5 hours for OpebSSL
19173 build no tools-lnx (P4 2.66 512MB) for 11min
19175 6. Linking via gcc mishandles –L or –l;
19176 7. tms320c6-coff-ar doesn’t work increamentally;
19177 8. ^C in compilation crashes compiler;
19178 9. libpthread & libdt are duplicate;
19179 10. Can’t link with gcc – need to do it with ld;
19182 09feb2006 finished, email to Ady & Hannit.
19185 040 - auto upgrade procedure initial {{{1
19189 --- 0. Introduction {{{3
19191 The upgrade feature of Softier's MediaLinux OS.
19192 This feature provides ability to upgrade the whole system (kernel,filesystem,
19193 etc). The approach demands to create separate system, called upgrade, where all
19194 needed to get new copy of the main system (the name for the system
19195 actualy runs MediaEngine). Describtion for 2 systems:
19196 Upgrade system - kernel, kad, root filesystem,
19197 Main system - kernel, kad, root filesystem, alt filsystem and logo image.
19198 The only part aware about both systems is bootloader and it can decide which
19199 one (main or upgrade) to load. Normaly it is main system, but there are cases
19201 1. user will (pushing button in front of Softier's box)
19202 2. application decides that upgrade
19204 --- 1. System in preliminary status. {{{3
19207 The upgrade system brings new kernel, kad and filesystem image. All placed
19208 on the flash right after bootloader (order can be changed):
19209 Bootloader + UpgKernel + UpgKAD + UpgFS
19210 and the main system files placed right after (order can be changed)
19211 Kernel + KAD + FS + AltFS + Logo
19213 | Non upgradable part | Upgradable part |
19215 -------------------------------------------------------------
19216 | Boot | Upg | Upg | Upg | | Root | Alt | Logo |
19217 | Loader | Info | Kernel | FS | Kernel | FS | FS | image |
19219 So, the system splited in parts, which is upgradable and not. The non
19220 upgradable, means can't be rewrite by upgrade application.
19221 There are number of parameters and flags, which control upgrade flow,
19222 added to the system. Some of them can be changed.
19223 - Address of the upgarde system: read-only, kept by bootloader.
19224 - Upgrade control flags: read-write, API exists.
19225 - Address of the main system: read-write, no API.
19226 - Factory settings: read-write, API exists.
19228 Upgrade system address.
19229 The upgrade system can't be changed, by any application, except Softier's
19230 monitor tool. It's address only used by bootloader. In this case, it's
19231 read-only and no API to application level.
19233 Main system address.
19234 This data needed by bootloder and should be changed by upgrade application.
19235 It is read-write, but ONLY upgrade application knows how to change it, so no
19236 API. Placed in upgrade info block.
19238 Upgrade control flags.
19239 Those are used by bootloader and upgrade application. So defined as read-write
19240 and have API. There are 3 flags:
19241 FU - force upgrade - must to upgarde the system;
19242 FUA - force upgrade A - must to upgrade the system w/ factory settings;
19243 FUB - force upgrade B - must to upgrade the system, because of system boot
19245 STYPE - server type - used to choose which upgrade server to use: 0 - TFTP,
19249 Upgrade server name - changable parameter used, by upgrade application.
19250 Static ip - - changable parameter used, by upgrade application.
19251 There are 2 copies of factory settings. The read-only copy, kept that way
19252 and non upgradable and the read-write copy, placed in upgrade info block and
19253 have API to change it.
19255 The upgrade system description.
19256 This one have kernel, created as minimal as possible. Approximate list of
19257 discarded kernel options: sound, video, network fs, usb, scsi, ppp.
19258 The filesystem image should be minimal also. Approximate list of applications:
19259 dhcp client, busybox, boa, etc.
19261 --- 2. Boot sequence definitions. {{{3
19263 At the beginning, bootloader starts. Checks if FU set and if it's up proceedes
19264 to upgrade flow. This is case of simpe Auto upgrade. Otherwise, checks FUB flag,
19265 which, if set, brings us to upgrade flow also. This is case which previous
19266 kernel boot failure.
19267 At this stage, when both FU and FUB equal 0, bootloader checks for press of
19269 * If button not pressed or pressed for less then 5sec, proceedes to normal boot
19271 * If button pressed for > 5s and < 20 sec - the upgrade explicitly wanted. So make
19272 FU=1 (and FUA=0) and goes to upgrade flow.
19273 * If button pressed for > 20sec - the upgrade wanted w/ factory settings. So make
19274 FUA=1 (and FU=0) and goes to upgrade flow w/ factory settings.
19276 New feature to check if main system loads is flags FUB. It is set by bootloader
19277 before main system loaded and unset by main system itself, when load finished.
19278 Otherwise, when bootloader see it next time, it's mean that something wrong with
19279 boot of the main system and will upgrade it.
19281 --------------------------> RESET/BOOT
19283 | < FU==1 > --> UPGRADE <----
19286 | < FUB==1 > ------ |
19290 <success> <-- IPSTB <-- FUB=1 <--- < btn press > |
19294 | | /------------------\ |
19295 working system | | | | |
19301 --------------------
19303 --- 3. Upgrade flows. {{{3
19305 There are 2 types of upgrade scenatious:
19306 Auto upgrade, where no interaction with user.
19307 Manual upgrade, where asking for upgarde file from user.
19309 At the beginning of the stage the upgrade system loaded. The only purpose for
19310 this is to run upgrade application, which able to do whole upgrade. The app
19311 have to choose right upgrade scenario.
19312 First, it's checks FUA flag and if set, brings to manual upgrade flow w/
19313 factory settings. Otherwise, it waits 10sec (w/ blinking) for black button
19314 pressed. Press of it brings system to manual scenario. The lack of press brings
19315 to auto upgrade scenario.
19327 --- < btn press > ---
19330 MANUAL Upg ----> AUTO Upg
19335 -------> RESET <------
19338 --- 4. Auto scenario. {{{3
19340 The upgrade application decided to go in Auto upgrade scenario. In order to
19341 connect to download upgrade file, DNS resolving needed, so it runs DHCP client.
19342 Second, read upgrade server name and tries to download upgrade file.
19343 Now unzip file and checks its integrity. Finaly, burn unzipped it and
19344 verify. If successfull, set all upgrade flags to 0 and reset.
19345 The upgrade app reads 2 values of upgrade server name - default and volatile.
19346 It's starts with volatile and in case of fail, use default.
19347 Any of above steps if fails 3 times will cause reset. Reset will bring to
19348 auto upgarde once again.
19352 < set network > -------
19354 < connect > -----------|
19356 < download > ----------|
19358 < verify integrity > --| |
19360 < burn flash > -------- |
19362 < update boot info > ----------|
19366 RESET <------------------
19368 --- 5. Manual scenario. {{{3
19370 There are 2 ways to get to this stage. User pushed button for > 20 sec at 1st
19371 time or user pushed button (for any amount of time) for the second time.
19372 The first way gives manual update scenario with use of factory settings and
19373 the second brings just manual upgrade scenario.
19374 The factory settings is just static IP address burned on flash, by box
19375 provider, w/o ability to update it.
19376 The flow itself goes like this:
19377 The upgrade application checks for FUA flag and if found FUA==1 will read
19378 and set static IP. Otherwise, proceeds to run DHCP client to get dynamic one.
19379 At next step HTTP server (boa) will be started.
19380 From this stage the system will interact w/ user. The user should run HTTP
19381 browser and connect to previously started HTTP server. The html pages will
19382 guide him to add path for the zip file.
19383 After the user push proceed button (from html page), the system will download
19384 zip file and place it in ram disk. Open it and check integrity. Burn and check
19385 validity. Update boot info. Set down FUA flag and reset.
19386 In case of an error happened
19391 < FUA==1 > ---> < static IP > ----
19394 < set network > ---- | |
19396 | <----------------- |
19399 < run http > -------------------->|
19401 / user interaction / |
19403 < download > -------------------->|
19405 < verify integrity > ------------>|
19407 < burn flash > ------------------>|
19409 < update boot info > ---------------->|
19414 RESET <-------------------------
19416 --- 6. Upgrade parameters API {{{3
19420 Can read them from procfs, like `cat /proc/upgrade/flags' or change them,
19421 like `echo 1 > /proc/upgrade/flags'
19422 There are 2 functions, provided read and write capabilities, write_upgflags()
19423 and read_upgflags(). Both placed at <source>/user/upgrade/libupg/upg.c
19425 - Factory settings -
19427 TFTP server name - domain name of tftp server, where to download files. Can
19428 be read from /proc/upgrade/server
19429 There is function set_upg_server_name(), provided ability to change the
19430 parameter. Placed at <source>/user/upgrade/libupg/upg.c
19432 Static ip - used in manual update, when no DNS resolving. Can be read from
19433 /proc/upgrade/static_ip. Also, there is function set_static_ip() , provided
19434 ability to change the parameter. Placed at <source>/user/upgrade/libupg/upg.c
19436 FTP server name, username and password - those parameters for alternative
19437 upgrade server. Placed at <source>/user/upgrade/libupg/upg.c
19439 All API functions selected in one library, called libupg.a and declarations
19440 placed at <source>/user/upgrade/libupg/upg.h
19441 There is example application (<source>/user/upgrade/uman.c), which uses
19442 most of API functions.
19444 --- 7. How to UPGRADE {{{3
19446 First, have to get 2 separate sources, one for upgrade system and other for
19448 How to build upgrade system.
19451 choose 'Customize kernel settings' and 'Customize User settings'
19452 then in kernel configuration menu choose 'Load configuration from file' and
19453 write `.config-mdm-upg-720'.
19454 in 'uclinux application configuration' also choose 'Load configuration from
19455 file' and write `.config-upg'
19456 Now save and close all menus.
19458 make dep && make linux && make lib && make user
19460 Now only 3 files needed (linux.out,kad.out,upg-jffs2.img) to be copied to
19461 monitor, in order to burn them.
19463 How to build main system.
19464 It is almost the same as upgrade system.
19465 Have to load file in kernel configuration menu, called `.config-mdm-720' and
19466 right after to choose 'System type' and after 'General setup', where change
19467 BSL version from BSL-V3 to BSL-V4
19468 In application menu, the file name is `.config-main'
19471 There are 5 files from main system, which should be zipped by command:
19472 `tar czf upgrade.tar.gz {linux.out.gz,kad.out.gz,root-jffs2.img,cfg-jffs2.img,logo.jpg}'
19473 Pay attention that linux.out and kad.out already zipped by monitor utility and
19474 logo.jpg also taken from monitor.
19475 Have to place upgrade.tar.gz to TFTP or FTP server directory.
19477 The card starts with upgrade system. Only factory settings exist are default
19478 TFTP server name and default static ip.
19479 In order to set other settings use application called uman. Run it `uman' to
19482 Finaly, doing upgrade itself:
19485 new big picture {{{4
19487 --------------------------> RESET/BOOT <--------------------------------------
19490 | < FU==1 || FUB==1 > ---------------> UPGRADE |
19492 | | | load UpgK + UpgFS |
19496 | n | | <-- < FUA==1 > |
19497 | IPSTB <-- FUB=1 <--- < btn press > | | |n |
19499 <-- <success> | |y | | wait 10s |
19501 | | /------------------\ | |<-- < btn press > - |
19502 FUB=0 | | | | | | | |
19503 | | <5s <20s >20s | | | |
19504 working sys | | | | | | | |
19505 ----- FU=1 FU=0 | / / |
19506 FUA=0 FUA=1 | / / |
19508 -------------- / / |
19513 MANUAL Upg <------------------------------- AUTO Upg <---- |
19516 < FUA==1 > ---> [ get static IP ] -- < dhcp > -------------- |
19519 < dhcp > ----------- | | / n | |
19520 |y | | < STYPE==0 > --
19522 |<---------- <use non def ip> | <use non def srvr>
19525 |<----------- <use def ip> ---->| | n3 | |
19526 | n3 | < use non def srvr > -- | |
19527 < run http > ---------------------->| | | n3 | |
19528 | | | < use def srvr > -->| |
19529 / user interaction / | | |y | |
19530 | | |<-------------- |->|
19532 < download > ---------------------->| < connect > -------------------->| |
19534 < verify integrity > -------------->| | n3 | |
19535 | n3 | < download > -------------------->| |
19536 < burn flash > -------------------->| | n3 | |
19537 | n3 | < verify integrity > ------------>| |
19538 < update boot info > ------------------>| | n3 | |
19539 | | < burn flash > ------------------>| |
19540 FUA=0,FU=0,FUB=0 | | n3 | |
19541 | | < update boot info > ------------> |
19543 | | FU=0,FUA=0,FUB=0 |
19545 | | --------------------------->|
19546 | --------- FU=1,FUA=0 ---------------->|
19547 | and 3 secs blinking |
19549 --------------------------------------------------------------------->
19551 --- 8. comments for QA {{{3
19553 Auto upgrade testcases
19555 1. upgrade w/ default TFTP server
19556 1.a upgrade w/ default TFTP server w/o needed file
19557 1.b upgrade w/ default TFTP server w/o running server
19558 1.c upgrade w/ default TFTP server w/o such machine in the network
19559 2. upgrade w/ volatile TFTP server
19560 2.a upgrade w/ volatile TFTP server w/o needed file
19561 2.b upgrade w/ volatile TFTP server w/o running server
19562 2.c upgrade w/ volatile TFTP server w/o such machine in the network
19563 3. upgrade w/ FTP server
19564 3.a upgrade w/ FTP server w/o needed file
19565 3.b upgrade w/ FTP server w/ wrong username
19566 3.c upgrade w/ FTP server w/ wrong password
19567 3.c upgrade w/ FTP server w/ wrong path
19569 Manual upgrade testcases
19571 1. upgrade w/ volatile static ip
19572 2. upgrade w/ volatile static ip - error in ip parameter
19573 3. upgrade w/ default static ip
19574 4. upgrade w/ IP from DNS
19575 5. upgrade to unknown name
19577 the old big picture {{{2
19579 --------------------------> RESET/BOOT <------------------------------------------------------------------------
19582 | < FU==1 || FUB==1 > ---------------> UPGRADE |
19584 | | | load UpgK + UpgFS |
19587 | | | --- < FUA==1 > |
19589 | IPSTB <-- FUB=1 <--- < btn press > | | | |
19590 | n | ^ | | | wait 10s |
19591 <-- <success> | |y | | y | n |
19592 |y | | | --- < btn press > ----------------- |
19593 | | /------------------\ | | | |
19594 FUB=0 | | | | | | | |
19595 | | <5s <20s >20s | MANUAL Upg AUTO Upg |
19596 working sys | | | | | | | n3 |
19597 ----- FU=1 FU=0 | | y n3 < set network > ------- |
19598 FUA=0 FUA=1 | < FUA==1 > ---> < static IP > -- | n3 | |
19599 | | | |n ^ |y | < connect > -----------| |
19600 -------------- | n3 | | | | n3 | |
19601 < set network > ---- | | < download > ----------| |
19602 |y | | | n3|-->| FU=1,FUA=0 and
19603 | <----------------- | < verify integrity > --| | 3 secs blinking
19605 | n3 | < burn flash > --------| |
19606 < run http > -------------------| | n3| |
19607 | | < update boot info > -- |
19608 / user interaction / | | |
19610 < download > -------------------| | |
19611 | n3 | --------------------->|
19612 < verify integrity > -----------| |
19614 < burn flash > -----------------|-------- FU=1,FUA=0 -------->|
19615 | n3 | and 3 secs blinking |
19616 < update boot info > --------------- |
19620 -------------------------------------------------------->
19622 --- 6. BSP level {{{2
19624 This level will keep changes describe information about flash and EEPROM. It is
19625 also brings API to read and write, in some cases, that info.
19627 Information, which needed by bootloader to load upgrade system kept in
19628 boot_prop_t, from include/bsl_queries.h, shortly desribed as
19629 address of upgrade info structure (see below) in flash
19630 address, where non-upg system starts in flash
19631 address and size of upg kernel,kad,fs,bootloader
19635 static IP and TFTP server FQDN.
19637 Information about non-upg system, needed to operate it, will be kept in specialy
19638 allocated flash block, described by newly defined type upg_prop_t):
19639 Uint32 krnl_adr; /* kernel address */
19640 Uint32 krnl_sz; /* kernel size */
19641 Uint32 kad_adr; /* kad address */
19642 Uint32 kad_sz; /* kad size */
19643 Uint32 rootfs_adr; /* root filesystem address */
19644 Uint32 rootfs_sz; /* root filesystem size */
19645 Uint32 altfs_adr; /* alt filesystem address */
19646 Uint32 altfs_sz; /* alt filesystem size */
19647 Uint32 logo_adr; /* logo image address */
19648 Uint32 logo_sz; /* logo image size */
19649 Also 2 new functions to be able read and write this data from flash.
19651 There are number of flags needed for upgrade flow that will be kept in EEPROM
19652 and described by new field in type hw_mng_info_t (include/bsl_queries.h)
19653 Also 2 new functions to read and write this data byte, called upgrade_flags.
19655 --- 7. Kernel/KAD level {{{2
19656 The same kernel/kad source will be used for both upgrade and main system, so
19657 new macro which defines upgrade will be created (CONFIG_ARCH6X_UPGOS).
19659 linux-2.4.x/kad/dm642/
19660 linux-2.4.x/kad/include/bsl/bsl_queries.h
19661 linux-2.4.x/arch/tms320c6/config.in
19663 Add eeprom device...
19665 linux-2.4.x/kad/include/bsl/bsl_eeprom.h
19668 1. to define upg kernel ? {{{3
19669 A B + C + D + E + F
19670 current w/o snd w/o fat,ftpfs w/o video w/o usb, w/o ppp
19671 nfs,smbfs input (fix 001) scsi
19672 ------- ------- ------------- --------------- ------------ ----------
19673 (own weight) 0 46(33) 541(0) 429(152) 335(0) 69(0)
19674 MiniOS kernel 3401K 3355K 2814K 2385K (1170K) 2050K (991K) 1981K (949K)
19675 kad 490K 457K 457K 305K (132K) 305K (132K) 305K (132K)
19680 SCSI (needed for USB) no
19684 fs w/o FAT,VFAT,smbfs,ftpfs,ntfs
19688 Network devs w/o ppp
19690 a. Check if it can run w/o procfs and devfs.
19691 b. Make root fs cramfs or RO.
19694 2. to define upgFS ? {{{3
19696 w/o smb, w/o lirc,wget
19697 top,ppp ftp,adsl,netstat
19698 fs-jffs2 5034K 3067K 1437K
19699 cramfs 4660K 2831K 1315K
19702 busybox-1.0 bunzip2,cat,cmp,gunzip,
19716 tftp 167K x (fix patch_002)
19718 busybox-1.0: cat,chmod,gunzip,hostname,ifconfig,ln,md5sum,mount,route,tar,tftp
19727 3. Force Upgrade flags ! {{{3
19728 Could be placed at flash, but...
19729 minimum 128K block size in flash. can be incorporate w/ factory settings and
19730 monitor info. The alternative place is EEPROM.
19732 15nov2005 after meeting w/ Baruch
19733 Minimize Monitor info and Boot info, so all data could be placed in EEPROM.
19734 Part of info (unchanged) would go to bootloader itself.
19736 prepare_comm_area() from linux-2.4.x/kad/kernel/comm_area.c
19738 |-> bsl_getMACaddress() from bsl/native/src/bsl_queries.c
19739 | |-> bsl_eeprom_getProp() from bsl/native/src/bsl_eeprom.c
19740 | |-> bsl_eeprom_read()
19743 4. define Factory settings ! {{{3
19744 Currently only ip address and FQDN for TFTP server.
19746 5. create 32M ramfs image ! {{{3
19748 can be used only w/ extgernal heap <80MB
19749 tar -v -t -f obj.tar.gz
19751 Upgrade application {{{
19754 1. How to do reset ?
19756 2. How to do blinking ?
19758 To put file: `tftp -p 192.168.2.45 -l ./abc'
19759 To get file: `tftp -g 192.168.2.45 -r ping.c'
19761 Provided by tar/gunzip
19763 6. Burn file on flash
19764 Current monitor have DSP/BIOS application which use BSL lib also.
19767 +0. Check if reset button pressed
19769 +1. Check if has IP and DNS resolving
19771 2 . Read static IP from flash
19775 4. Read TFTP server name from flash
19777 5. Get file by tftp
19783 8. Burn file on flash
19784 In case of N files, where some are just binaries (kernel, kad) and others
19785 filesystems - should be able to dynamicaly create/del mtdblock/mtdchar
19786 devices and change there addresses/sizes.
19788 -9. Update boot info on flash
19789 create mtdchar device for info region. define upg_info structure and write
19790 there at application level.
19792 10. Write/Read on eeprom
19797 user/dhcpcd-new/client.c - example of use
19798 linux-2.4.x/drivers/char/ledman.c - the led driver
19801 2a. change of compression tool to bzip2 ? {{{
19802 May safe 300K for linux.out
19803 There is a problem to use other zip, cause not always works (Belfer).
19804 I did bzip2 convertion for dm642
19808 | Non upgradable part | Upgradable part |
19810 ---------------------------------------------------------------
19811 | Boot | Upg | Upg | Upg || | Root | Alt | Logo |
19812 | Loader | Kernel | FS | Info || Kernel | FS | FS | image |
19814 ---------------------------------------------------------------
19815 ---------------------------------------------------------------
19816 | | mtd4 | upg system
19818 | | mtd2 | | mtd0 | mtd4 | | main system
19819 ---------------------------------------------------------------
19822 *. static ip parsing in upgrade app
19823 *. add new option - upgarde w/ default factory settings
19825 The new scenario brought to sight, because of availability to change factory
19826 settings (static ip and upg server). In this case the default value, kept in
19827 read-only area from monitor time, should be differ from volatile one.
19828 When property needed, the upgrade app will get 2 values (default and volatile)
19829 and tries to use volatile one. In case of fail, the app will use default
19830 and copy it's value to volatile in case of success.
19831 The actual place of volatile properties is upgrade info block on flash. This
19832 requests new app/func to be able to write on this block (see project:
19833 explicitly reset factory settings to default).
19834 The default values would be burned, by monitor utility, together w/ bootloader.
19835 Both systems (upgrade and main) would be able to read/write those params (write
19836 only in case of volatile). The volatile parameters could change values in
19838 - run utility for coping new values from default to volatile explicitly.
19839 - the upgrade app can't use current values of volatile params and successfuly
19843 *. Explicitly reset factory settings to default.
19844 The utility read whole upgrade info data, change values of volatile parameters
19845 from defaults and write it back to the flash.
19847 *. add new upgrade server - FTP
19848 The FTP server added as secondary upgrade server. This is option that can
19849 be choosen by user. This feature add 3 more parameters: server name, username
19850 and password. All of them keep in upgrade info block. New flag also added,
19851 which server to use TFTP or FTP.
19853 *. build kernel as PRODUCTION
19855 5. hostname resolving
19856 <from Or> - it is part of WINS algorithm, which implemented in samba server,
19857 nmbd. He would look, if it works now.
19859 6. index.cgi not used with Mozilla
19861 7. Add IP and FQDN validation in upg app
19863 8. stop calling ifconfig in upg app
19865 9. Add CRC for upg info data ???
19866 In case of power failure at uinfo write time, it gives to bootloader option
19867 to to upgrade again. But in this case upg app will not setdown FU/FUA, so
19868 bootloader will upgrade anyway.
19874 x fix002 - enable tftp client.
19875 x fix003 - create ramfs 32MB image file.
19876 x fix004 - make build DDK optional
19877 x fix005 - added: to clean romfs/image, to choose which image to create, new
19878 image for upgrade system, new rc file for upgrade system.
19879 x fix006 - new mtdchar for upgrade info, support upgrade kernel, support for
19880 old style BSP, proc entries for static ip
19881 x fix007 - proc entries for tftp servername
19882 x fix008 - eeprom|uflags device
19883 x fix009 - main kernel shutdown FUB flag, fix for /proc/upg_flags, new config
19884 files for kernel and apps
19885 x fix009b- fix .config-mdm-main-720 and upg app changes.
19886 x fix010 - fix static_ip form, fix upg flags to hex
19887 x fix011 - move all upgrade files to /proc/upgrade, add default and volatile
19888 values, change rc files.
19889 x fix012 - enable lock for uinfo dev, fix for upgrade, flashtool, uman
19890 linux-2.4.x/drivers/mtd/devices/mtd_bslv4.c - kernel-build-134
19891 user/upgrade/upgrade.c - user-45
19892 user/upgrade/uman.c
19893 user/upgrade/libupg/upg.c
19894 user/upgrade/libupg/upg.h
19895 user/upgrade/Makefile
19896 user/mtd-utils/flashtool.c
19897 vendors/TI/TMS320C6/rc_upg
19898 x fix013 - add FTP as upgrade server
19899 + config/.config-upg
19900 + config/.config-main
19901 + linux-2.4.x/kad/include/bsl/bsl_queries_upg.h
19902 + linux-2.4.x/fs/proc/proc_misc.c
19903 + user/upgrade/Makefile
19904 + user/upgrade/uman.c
19905 + user/upgrade/upgrade.c
19906 + user/upgrade/libupg/upg.c
19907 + user/upgrade/libupg/upg.h
19908 + vendors/TI/TMS320C6/Makefile
19909 + vendors/TI/TMS320C6/rc_upg
19910 + vendors/TI/TMS320C6/rc_bslv4
19914 041 - add ftp path to FTP upgrade server {{{1
19917 Add ftp path, so upgrade files could be placed in different directories of ftp
19918 server. The path itself, placed in uinfo and could be changed by management
19921 1. Add new field in bsl_queries_upg.h called `char ftp_path[256]'
19922 2. Change upg.c uman.c upgrade.c
19924 Get file from ftp from root:
19925 echo "default login ftp password softier" > ~/.netrc
19926 echo "mget <file>" | ftp -pi 192.168.2.45
19928 Get file from certain dir:
19929 echo -e "default login ftp password softier\\nmacdef getit\\ncd /pub\\nbin\\nmget <file>\\nquit\\n\\n" > ~/.netrc
19930 echo "\$ getit" | ftp -pi 192.168.2.45
19933 042 - upgrade fixes - user-50 {{{1
19935 fix read volatile static ip before default static ip
19936 fix read of static ip from new card more accurate
19937 change default upgrade server to FTP instead TFTP
19938 change altfs to be at the end of flash area, even w/ root-cramfs
19939 lots of API changes
19940 change ustart to do vfork at 1st
19941 changes of factory settings flow {{{
19942 in case of button push for >20sec, follows happened
19943 both def values (tftp and ip) copy to volatile values
19944 and all other volatile value deleted (all ftp settings).
19945 after that system goes to regular upgrade, which waits for 2nd button press.
19948 new big picture {{{
19949 --------------------------> RESET/BOOT <--------------------------------------
19952 | < FU==1 || FUB==1 > ---------------> UPGRADE |
19954 | | | load UpgK + UpgFS |
19958 | n | | <---- < FUA==1 > |
19959 | IPSTB <-- FUB=1 <--- < btn press > | | |n |
19960 | n | ^ | | copy factory | |
19961 <-- <success> | |y | settings to | |
19962 |y | | | volatile and | |
19963 | | /------------------\ | delete others | |
19964 FUB=0 | | | | | | | |
19965 | | <5s <20s >20s | | | |
19966 working sys | | | | | ---------->| |
19967 ----- FU=1 FU=0 | | |
19970 -------------- y | n |
19971 --- < btn press > --- |
19976 MANUAL Upg <-------------------------------- AUTO Upg <------ |
19979 < dhcp > -----> [ get static IP ] -- < dhcp > -------------- |
19983 | | | < STYPE==0 > --
19985 |<---------- <use non def ip> | <use non def srvr>
19988 |<----------- <use def ip> ---->| | n3 | |
19989 | n3 | < use non def srvr > -- | |
19990 < run http > ---------------------->| | | n3 | |
19991 | | | < use def srvr > -->| |
19992 / user interaction / | | |y | |
19993 | | |<-------------- |->|
19995 < download > ---------------------->| < connect > -------------------->| |
19997 < verify integrity > -------------->| | n3 | |
19998 | n3 | < download > -------------------->| |
19999 < burn flash > -------------------->| | n3 | |
20000 | n3 | < verify integrity > ------------>| |
20001 < update boot info > ------------------>| | n3 | |
20002 | | < burn flash > ------------------>| |
20003 FUA=0,FU=0,FUB=0 | | n3 | |
20004 | | < update boot info > ------------> |
20006 | | FU=0,FUA=0,FUB=0 |
20008 | | --------------------------->|
20009 | --------- FU=1,FUA=0 ---------------->|
20010 | and 3 secs blinking |
20012 --------------------------------------------------------------------->
20014 User big picture {{{
20016 --------------------------> SYSTEM BOOT <----- + 3 sec blibking --------------
20019 | < UPGRADE > ---------------> load Upg system |
20022 | | | -- < Factory Settings > |
20024 | n | | copy FS to | |
20025 | IPSTB <------------- < btn press > | volatile and | |
20026 | ^ | | delete others | |
20028 | | | | ----------->| |
20029 | | ------------------ | | |
20030 | | | | | | wait 10 sec |
20031 | | <5s <20s >20s | | |
20033 | ----- upgrade factory | y | n |
20034 | | settings | --- < btn press > --- |
20036 | -------------- | | |
20038 | MANUAL Upg <--------------------------------- AUTO Upg <---------- |
20041 | < dhcp > -----> <use volatile ip> < dhcp > ------------------->|
20044 | |<------------- | / n |
20045 | | | < use ftp > --------- |
20047 | |<---------- <use FC ip> --> | <use volatile tftp> |
20050 | | n3 | |<--------- | |
20051 | < run http > ------------------>| | | n |
20052 | | | | < use FC tftp > ------->|
20053 | / user interaction / | | |y |
20054 | | | |<-------------- |
20056 | | | < connect > ------------------------->|
20058 | -------------------------->|<--------- |
20061 | < download > ------------------------------------>|
20064 | < verify integrity > ------------------------------->|
20068 | < burn flash > --------------------------------->|
20072 | < update boot info > ------------------------------->
20078 -----------------------------------
20081 043 - changes in upgrade flow (user-52) {{{
20083 1. No fallback w/ FS server name. If FTP failed and TFTP failed, not try FS TFTP
20084 2. Change TFTP FS to FTP FS
20087 044 - minimize busybox (user-53) {{{
20088 current size of busybox for upgrade system is 1371KB.
20089 Need follows for runtime:
20090 basename,cat,chgrp,chmod,cmp,echo,expr,gzip,gunzip,hostname,ifconfig,ln,mkdir,
20091 mount,route,rm,sed,shell,msh,tar,test,touch,tftp,umount,uname,wget,
20092 Need follows for debug:
20093 cp,dd,env,ls,mv,ping,ps,rmdir,msh tab completion
20095 The busybox size w/ debug applets is 882KB and w/o debug is 784KB
20098 user/upgrade/upgrade.c - netrc permissions bug fix
20100 045 - release w/ lots of changes (140-30-45-54) {{{1
20102 Bootloader - upgrade changes (k140) {{{
20105 --- Adding upgrade counter ---
20107 To catch situation, when main system failed to boot, because of power drop.
20108 There will be counter, decremented by 1 before boot main load. If boot
20109 successfull, counter put back to some max number, otherwise boot again. This
20110 way counter will be decremented to 0, so in that case bootloader will load
20125 ------- if FUB ------ |
20128 | <--------------- cnt==0 ---
20136 reset cnt reset cnt
20138 The main and upgrade systems would set counter back to max value (3).
20140 --- Check push button before upgrade flags ---
20142 Now the bootloader will check button press before upgrade flags checking. It will fix
20143 situation, when user doing poweroff in the middle of upgrade and push button, which
20144 brings to manual upgrade.
20146 --- Check push button for more than 60 sec ---
20148 Bootloader will check push button if it pressed > 60 sec and load main system in
20153 New bsl 4.11 brings follows files to <linux>/kad/dm642/ :
20158 media_adapter_bsl_v4.lib
20160 and header files to <linux>/kad/include/bsl/ :
20162 bsl_queries.h -> bsl_queries_v4.h w/ little changes
20164 Files w/ upgrade counter:
20165 <linux>/kad/kernel/system.c
20166 <linux>/include/cmdapi.c
20167 <linux>/fs/proc/proc_misc.c
20169 vendors/TI/TMS320C6/rc_bslv4
20170 vendors/TI/TMS320C6/rc_upg
20173 autorun DOK on main system (user-54) {{{2
20174 Ability to autorun script from DOK at main system startup.
20175 In /etc/rc check if DOK could be mounted and script (scroll.sh) exists - run
20176 it in background and exit right away.
20178 vendors/TI/TMS320C6/product.sh
20179 vendors/TI/TMS320C6/Makefile
20180 vendors/TI/TMS320C6/rc_bslv4
20182 Add telnet (user-54,infra-30) {{{2
20183 Both systems automatic run inetd to have telnet access.
20184 vendors/TI/TMS320C6/rc_bslv4
20185 vendors/TI/TMS320C6/rc_upg
20188 Fix problem w/ DHCP client (user-54) {{{2
20189 Can't get ip from some servers. Fixed by canceling `-D' option, so run it
20190 `dhcpcd -B -o -t 30 &'
20192 user/upgrade/upgrade.c
20194 Fix bug in manual upgrade (user-54) {{{2
20195 Do not run boa in background mode from system()
20196 user/upgrade/upgrade.c
20198 Upgrade logging system (user-54,infra-30) {{{2
20199 Ability to write upgrade log file, placed at DOK, if available.
20201 Add USB,SCSI and vfat support for upgrade kernel.
20202 w/USB w/o USB w/USB+vfat
20203 kernel 2370(1140) 2037(961) 2444(1180)
20207 linux-2.4.x/.config-wave300-upg
20210 Log sessions started by magic counter, where each record could length from 1K
20212 All messages collected in buffer, which can be written to flash at 3 stages:
20213 - upgrade finished successful
20215 - special point in upgrade flow reached (FTP connect, TFTP connect, HTTP started)
20228 |-reset_fac_settings()
20229 | |_>set_fac_settings()
20237 | |_> burn_uinfo_block()
20257 |_> gethostbyname() }}}
20263 |->get_all_params()
20272 |->get_tftp_server_name()
20276 | |_> get_tftp_server()
20287 get device parameters
20288 is erasesize supported
20289 is altfs - jffs2 image
20292 is enough room for rootfs
20307 vendors/TI/TMS320C6/rc_bslv4
20308 vendors/TI/TMS320C6/rc_upg
20309 vendors/TI/TMS320C6/product.sh
20310 vendors/TI/TMS320C6/Makefile
20311 user/upgrade/upgrade.c
20312 user/upgrade/uman.c
20313 user/upgrade/Makefile
20314 user/upgrade/libupg/Makefile
20315 user/upgrade/libupg/log.[c|h]
20316 user/upgrade/libupg/util.[c|h]
20317 user/upgrade/libupg/upg.[c|h]
20318 user/upgrade/libupg/upg_in.h
20319 user/upgrade-cgi/index.cgi.c
20320 vendors/TI/TMS320C6/index.html
20323 linux-2.4.x/.config-wave300-upg
20325 cvs rtag -R infra-30 uClinux-infra
20326 cvs rtag -R user-54 uClinux-user
20329 046 - UPG> en/dis FTP/TFP; change `rm' to `unlink' (user-55) {{{1
20330 x 1. Enable/Disable TFTP/FTP - disable_tftp() doing nothing
20331 x 2. Change call to `rm' to use of unlink()
20332 x 3. Create set_ipaddr() instead of use ifconfig
20333 x 4. Show ip, when set DNS (based on set_ipaddr())
20334 x 5. Doing umount(), when main system find DOK w/ `scroll.sh'
20335 x 6. Don't call inetd in rc of main system
20336 x 7. reset to factory setting also set default upgrade source (FTP)
20338 x user/upgrade/libupg/upg.h
20339 x user/upgrade/upgrade.c
20340 x user/upgrade/uman.c
20341 x user/upgrade/libupg/util.c
20342 x user/upgrade/libupg/util.h
20343 x user/upgrade/libupg/log.c
20344 x vendors/TI/TMS320C6/product.sh
20345 x vendors/TI/TMS320C6/rc_bslv4
20347 cvs rtag -R user-55 uClinux-user
20349 x 8. Cancel DNS check
20350 x 9. Change upg counter from 3 to 16
20352 x user/upgrade/upgrade.c
20353 x vendors/TI/TMS320C6/rc_upg
20354 x vendors/TI/TMS320C6/rc_bslv4
20356 047 - released user-56 {{{
20358 cvs rtag -R user-55 uClinux-user
20360 1x Add ability to cancel upgrade and call it from cgi button
20361 2x Fix, when cnt==0 and power off in upgrade - going to main system. - done in bootloader
20362 3x cancel `ifconfig' applet and more from upgrade system busybox (check w/ rc_upg)
20363 4x show ip address, when manual upgrade w/ dns
20364 5x change all upg proc numbers (flags,cntr) to hex - rc files
20365 6x cancel call to `killall'
20366 7x cgi to use upg logging system
20367 8x New log filename per card
20368 9x Add pid to logging
20372 user/busybox-1.00/sysklogd/syslogd.c
20373 user/upgrade/Makefile
20374 user/upgrade/uman.c
20375 user/upgrade/ustart.c
20376 user/upgrade/libupg/Makefile
20377 user/upgrade/libupg/log.c
20378 user/upgrade/libupg/log.h
20379 user/upgrade/libupg/upg.c
20380 user/upgrade/libupg/upg.h
20381 user/upgrade/libupg/util.c
20382 user/upgrade-cgi/Makefile
20383 user/upgrade-cgi/index.cgi.c
20384 vendors/TI/TMS320C6/Makefile
20385 vendors/TI/TMS320C6/boa.conf
20386 vendors/TI/TMS320C6/rc_bslv4
20387 vendors/TI/TMS320C6/rc_upg
20389 048 - SPARC converter longlong fix - released 26mar2006 {{{
20394 `mkdir gcc2c-build'
20397 `/home/gxk/prjs/gcc-3_2-gcc2c/configure --prefix=/home/gxk/gcc2c --enable-languages=c,gcov --with-as=/usr/bin/gcc32 --with-ld=/usr/bin/gcc32 --with-gnu-as=/usr/bin/gcc32 --with-gnu-ld=/usr/bin/gcc32 --without-dwarf2 --without-stabs --disable-nls conv-ix86-linux
20398 change in ~/prjs/gcc-3_2-gcc2c/gcc/c-parse.c +349 `malloc' to `xmalloc'
20399 change in ~/prjs/gcc-3_2-gcc2c/gcc/tradcif.c +153 `malloc' to `xmalloc'
20400 `make LANGUAGES="c gcov" '
20401 `make LANGUAGES="c gcov" install'
20402 `cd /home/gxk/gcc2c'
20403 `cp ./lib/gcc-lib/conv-ix86-linux/3.2/include/varargs.h ./lib/gcc-lib/conv-ix86-linux/3.2/include/stdarg.h ./lib/gcc-lib/conv-ix86-linux/3.2/include/stdbool.h ./lib/gcc-lib/conv-ix86-linux/3.2/include/limits.h ./lib/gcc-lib/conv-ix86-linux/3.2/include/syslimits.h ./include'
20405 Change `__gcc2c_long_long_type__' to become `long long' instead of `long'
20406 in file <source>/gcc/config/conv-ix86/conv-ix86.c line 2681
20408 Incorporated in tools from 26mar2006
20410 049 - curl and create uClinux-apps (apps-1) {{{
20412 download package curl-7.15.3, untar. Create lib/Makerfile.tms320c6,
20413 src/Makefile.tms320c6 and lib/config.h
20414 Both Makfiles taken from Makefile.m32 and config file from native
20415 linux package (after run configure) w/ little changes. Most of them
20418 cvs import -m "init" uClinux-dist/apps/curl-7.15.3 gxk apps-1
20420 Create new alias module called uClinux-apps w/ sticky tag apps-1, where
20421 apps/curl, apps/lirc-0.6.6, apps/textutils, apps/tiprof
20427 050 - Merge LFS support {{{
20428 produced 142 32 46 58
20429 cvs rtag -R kernel-build-142 uClinux-kernel
20430 cvs rtag -R infra-32 uClinux-infra
20431 cvs rtag -R libs-46 uClinux-libs
20432 cvs rtag -R user-58 uClinux-user
20434 051 - Bug fixes - 949,954,1010,1030,1032 {{{
20436 when no DHCP enabled, system not going to manual upgrade. problem, because
20437 alarm for button no canceled (in case of push button), so till DHCP tries 3
20438 times, comming SIGALRM and seting button to `-1'
20439 solution: call alarm(0), when button found pressed.
20441 if upg flags 00, it's become 80. Bug in /etc/rc main system
20442 solution: fix vendors/TI/TMS320C6/rc_bsl4
20444 if any file missing in upgrade tarball, no retry w/ TFTP fallback.
20445 solution: retry added.
20447 http download failed, if it takes> 2sec
20448 solution: upgrade process checks if upgrade tarball exists and >0, which
20449 happend in the middle of http download. need more stable way to aware
20450 upgrade process, that http download is done.
20451 solution: added check for specific file, created when download finished.
20453 No message when push cancel button in manual upgarde. System doing reset
20454 quicker, than boa returns answer.
20455 solution: add sleep for is_cancel(), enough time to boa to return message
20457 # Change size of config filesystem to 2MB.
20459 # Upgrade from USB DOK.
20460 During upgrade process, when auto scenario begins, the system will try to
20461 mount USB DOK and find there upgrade tarball. In case of success, this will
20462 be the source for auto upgrade scenario, otherwise regular auto upgrade
20463 flow. In case of failure, 3 times attempt and reboot.
20465 vendors/TI/TMS320C6/rc_bsl4
20466 user/upgrade/ustart.c
20467 user/upgrade/libupg/upg.c
20468 user/upgrade/libupg/util.c
20469 user/upgrade/libupg/util.h
20470 user/upgrad-cgi/index.cgi.c
20471 vendors/TI/TMS320C6/Makefile
20472 user/upgrade/libupg/log.c
20473 user/upgrade/libupg/log.h
20475 cvs rtag -R user-59 uClinux-user
20477 052 - libssl porting {{{
20479 Porting whole openssl (0.9.8a) project w/ apps, tools, tests and installation
20480 (to /opt/tms320c6/ssl)
20482 Depend canceled, cause deletes Makefiles. Make install works, if called from
20485 The most of tests not working and ssltest also.
20486 Porting done w/o converter, so may be switch it on will fix situation.
20487 Given to Oleg 30apr2006
20489 All changes made in Makefiles and doc directory, added to libs46.
20491 cd uClinux-dist/lib/libssl/doc/apps
20492 cvs commit -m "fix" uClinux-dist/lib/libssl/doc/apps gxk libs-46
20495 Change Makefile.org Makefile.shared apps/Makefile and test/Makefile
20497 Add new architecture to Configure
20498 "linux-tms320c6","tms320c6-coff-gcc:\$(CFLAGS)::-D_REENTRANT:::SIXTY_FOUR_BIT BN_LLONG DES_INT:${no_asm}::::: ",
20500 Configure --prefix=/ssl --install_prefix=/opt/tms320c6 --openssldir=/ssl no-shared no-hw no-asm no-dso no-krb5 no-zlib no-zlib-dynamic no-sse2 linux-tms320c6
20502 053 - (user-60) Release upgrade2, config size for altfs{{{
20504 * user/upgrade2 user/upgrade2/libupg user/upgrade2/cgi
20505 * config/.config-main
20506 * config/.config-upg
20507 * config/.config-upg-dbg
20509 * vendors/TI/TMS320C6/Makefile
20510 * user/busybox-1.00/networking/tftp.c
20514 054 - (user-61) add route & ifconfig to upg2 {{{
20516 # - when configured upg2, still build index.cgi from upg1
20517 #1072- upg app too quick and can't catch pluged-in DOK. (fixed u-61)
20518 # - cancel in manual upg, reboots to the main system (fixed u-61)
20519 # - pushing cancel upgrade button (in manual upgrade) does reboot, but
20520 browser left in wait for answer. (fixed u-61)
20521 cvs rtag -R user-61 uClinux-user
20522 cvs rtag -R infra-34 uClinux-infra
20524 055 - (libs-47 'n' infra-35) DNS resolving {{{
20525 cvs rtag -R infra-35 uClinux-infra
20526 cvs rtag -R libs-47 uClinux-libs
20528 056 - (user-63) full upgrade for wave300 {{{
20530 Purpose to do full upgrade (for both upgrade and main systems), when
20531 application runs from DOK device.
20533 Prepare the package.
20534 Copy follows files to DOK:
20535 fupg - upgrade application
20536 program_flash.cfg - config file
20537 mdm3_hd_wave_300.bin - full image
20540 Run the system (wave300) and plugin DOK. Connect to the system
20541 by telnet and get prompt. Now run follows:
20542 `mount /dev/sda1 /mnt' - mount DOK
20543 `cd /mnt' - change directory
20544 `./fupg' - run upgrade application
20545 From now the upgrade application will run till the end.
20546 Important! There is not enough memory to run for upgrade application,
20547 so kill all players and browsers before you run upgarde.
20549 Changed files under `user/upgrade2/':
20552 libbsl/bsl_flash_def.h
20553 libbsl/bsl_onboard_flash_params.h
20557 libbsl/MT28FxxxJ3_x8.c
20563 cvs rtag -R user-63 uClinux-user
20565 fixed bug for wave300 boards, where write to flash switch by GPIO pin 8 and not
20567 changed libbsl/bsl_flash.c
20569 cvs rtag -R user-65 uClinux-user
20573 1x make PPPOE tools build with UPG system
20574 2? Check filesystem image size (bl+k+fs <= 3MB)
20575 Left for main system 12MB+768KB
20576 3. add pppoe params to upg data and connectivity option flag
20579 pppoe params definitions:
20583 cx upgrade app flow
20584 4. Add pppoe to upgrade app
20587 Done everything except connect itself. Have to change upgrade flow to connect
20588 through pppoe and minimize pppoe package (>600KB).
20590 user/upgrade2/uman.c
20591 user/upgrade2/libupg/upg.c
20592 user/upgrade2/libupg/upg.h
20593 user/upgrade2/libupg/upg_in.h
20594 vendors/TI/TMS320C6/devfile_upg.txt
20596 Connect w/ PPPOE from Oleg {{{
20597 MediaLinux uses pppd version 2.4.3 and rp-pppoe version 3.5.
20599 MediaLinux supports PPPOE using pre_pppoe (a softier developed utility) ONLY.
20600 pre_pppoe does the following:
20601 - opens a pseudo terminal
20602 - duplicates its file descriptor into standard input and standard output
20603 - starts pppoe program
20605 After starting pppoe process, pppd should be invoked with pty device name (created by p re_pppoe) as the first parameter.
20607 pppd invocation according to the PPPOE man page is _NOT_ supported.
20609 The following scripts converted for Media Linux: adsl-setup, adsl-status, adsl-start, a dsl-connect, adsl-stop.
20610 No changes were done to pppd and rp-pppoe application sources.
20612 To create a pppoe connection:
20614 1. Reboot the card.
20615 2. Connect the card with a network cable to ADSL modem.
20616 3. Open eth0 interface, but don't set IP address: "ifconfig eth0 up"
20617 4. Make your filesystem writable: "mount -o remount,rw -t jffs2 rootfs /"
20618 5. Create ppp interface: "mknod /dev/ppp c 108 0"
20619 6. Run "adsl-setup" script and supply all needed information.
20620 7. Run "adsl-start &"
20621 8. Run "adsl-status" in order to obtain the current connection status.
20622 9. To stop ppp connection run adsl-stop.
20629 Current (30may2005) malloc algo:
20630 malloc_from_heap() (from uClibc/libc/stdlib/malloc/malloc.c)
20631 Add header (MALLOC_HEADER_SIZE = sizeof double) to original size.
20632 __heap_alloc() (from uClibc/libc/stdlib/malloc/heap_alloc.c)
20634 If not succed, check if size > MALLOC_HEAP_EXTEND_SIZE, so do
20635 `MALLOC_ROUND_UP_TO_PAGE_SIZE' - round size to a multiple MALLOC_PAGE_SIZE.
20636 Now allocate by mmap().
20639 rounds size to be a multiple of HEAP_GRANULARITY (sizeof double). Make sure
20640 size !< sizeof `struct heap_free_area'. Look for a free area that can contain
20641 the size and call __heap_free_area_alloc() from
20642 __heap_free_area_alloc() from uClibc/libc/stdlib/malloc/heap.h.
20645 Macromedia Flash (ANT plugin) performance {{{2
20649 cvs co uClinux-dist/apps/ant
20650 cd uClinux-dist/apps/ant/builds/ml-flash6-css-f-fb32
20652 flash tests placed at ant/3rdparty/macromedia/FlashPlayer6SDK/ats/...
20654 http://www.media.ebaumsworld.com/pacman.swf
20655 http://www.media.ebaumsworld.com/duckhunt.swf
20656 http://www.media.ebaumsworld.com/fireballs.swf
20658 1. To build ant+flash w/o converter 3.1B +ll +wch
20666 1. To run JEVM as described in doc. Be able to run tests and benchmarks.
20668 can run benchmarks.
20669 2. to run MIDP demo
20671 3. To run benchmarks on Win32 and compare to benchmark doc.
20672 Win32 results half of document and ML results ~10% less.
20673 4. Download java http browser for STB and try to run it.
20676 Nokia S40 phones (MIDP 2.0,XHTML,128x128,12bit(4K colors))
20677 Nokia S60 v2 phones (MIDP 2.0,XHTML,176x208,16bit)
20679 email form 16apr2005 {{{2
20681 Softier open issues:
20683 1. which env they have or which env to send them
20684 2. Needed ML libraries libc, libpthread, libdt and libm
20685 3. Can other open source jvm could be build?
20687 Questions to FADATA
20688 1. Can it be build only on Nano-X (+ nxlib) (w/o GTK and Xlibs) ?
20689 2. To build everything with static libraries.
20690 3. Which projects involved ? (GTK, Xlib, Zlib, etc...)
20694 It seems that GNU classpath depends on GTK and Xlibs. Another question if whole
20695 system has good performance, even build with all libs.
20696 So decided to build classpath and check performance with simple GUI app. Also
20697 to compare with Sun's performace.
20699 Build classpath-0.14:
20701 configure --prefix=/opt/x86/classpath
20706 export LD_LIBRARY_PATH=/opt/x86/classpath/lib/classpath
20707 export CLASSPATH=/opt/x86/classpath/share/classpath/glibj.zip:.
20708 pushd /opt/x86/classpath/share/classpath/examples/
20710 gcj -C gnu/classpath/examples/awt/Demo.java
20711 gij gnu.classpath.examples.awt.Demo &
20712 /usr/java/jdk1.5.0_02/bin/java gnu.classpath.examples.awt.Demo &
20714 Build and run jamvm-1.3.0:
20715 configure --prefix=/opt/x86/jamvm --with-classpath-install-dir=/opt/x86/classpath
20723 Configure options should be try:
20724 --enable-int-threading
20725 enable threaded version of the interpreter (default enabled)
20726 --enable-int-direct
20727 enable direct threaded version of the interpreter (default enabled)
20728 --enable-int-caching
20729 enable stack-caching version of the interpreter
20730 (default powerpc,arm enabled : i386 disabled)
20731 --enable-int-prefetch
20732 enable prefetching version of the interpreter
20733 (default powerpc enabled : i386,arm disabled)
20737 configure --prefix=/opt/x86/javm
20745 The uClibc time functions get timezone information from the TZ environment variable, as described in the Single Unix Specification Version 3. See http://www.opengroup.org/onlinepubs/007904975/basedefs/xbd_chap08.html for details on valid settings of TZ. For some additional examples, read http://www.uclibc.org/lists/uclibc/2002-August/004010.html in the uClibc mailing list archive. You can store the value of TZ in the file '/etc/TZ' and uClibc will then automagically use the specified setting.
20747 from www.opengroup.org/onlinepubs/007904975/basedefs/xbd_chap08.html:
20748 This variable shall represent timezone information. The contents of the environment variable named TZ shall be used by the ctime(), localtime(), strftime(), mktime(), ctime_r(), and localtime_r() functions, and by various utilities, to override the default timezone. The value of TZ has one of the two forms (spaces inserted for clarity):
20751 std offset dst offset, rule
20752 If TZ is of the first format (that is, if the first character is a colon), the characters following the colon are handled in an implementation-defined manner.
20753 The expanded format (for all TZ s whose value does not have a colon as the first character) is as follows:
20754 stdoffset[dst[offset][,start[/time],end[/time]]]
20757 Indicate no less than three, nor more than {TZNAME_MAX}, bytes that are the designation for the standard ( std) or the alternative ( dst -such as Daylight Savings Time) timezone. Only std is required; if dst is missing, then the alternative time does not apply in this locale.
20758 Each of these fields may occur in either of two formats quoted or unquoted:
20759 * In the quoted form, the first character shall be the less-than ( '<' )
20760 character and the last character shall be the greater-than ( '>' )
20761 character. All characters between these quoting characters shall be
20762 alphanumeric characters from the portable character set in the current
20763 locale, the plus-sign ( '+' ) character, or the minus-sign ( '-' )
20764 character. The std and dst fields in this case shall not include the
20765 quoting characters.
20766 * In the unquoted form, all characters in these fields shall be alphabetic
20767 characters from the portable character set in the current locale.
20768 The interpretation of these fields is unspecified if either field is less than three bytes (except for the case when dst is missing), more than {TZNAME_MAX} bytes, or if they contain characters other than those specified.
20770 Indicates the value added to the local time to arrive at Coordinated Universal Time. The offset has the form:
20772 The minutes ( mm) and seconds ( ss) are optional. The hour ( hh) shall be required and may be a single digit. The offset following std shall be required. If no offset follows dst, the alternative time is assumed to be one hour ahead of standard time. One or more digits may be used; the value is always interpreted as a decimal number. The hour shall be between zero and 24, and the minutes (and seconds)-if present-between zero and 59. The result of using values outside of this range is unspecified. If preceded by a '-', the timezone shall be east of the Prime Meridian; otherwise, it shall be west (which may be indicated by an optional preceding '+' ).
20774 Indicates when to change to and back from the alternative time. The rule has
20776 date[/time],date[/time]
20777 where the first date describes when the change from standard to alternative
20778 time occurs and the second date describes when the change back happens. Each
20779 time field describes when, in current local time, the change to the other
20780 time is made. The format of date is one of the following:
20781 Jn - The Julian day n (1 <= n <= 365). Leap days shall not be counted.
20782 That is, in all years-including leap years-February 28 is day 59 and March
20783 1 is day 60. It is impossible to refer explicitly to the occasional
20785 n - The zero-based Julian day (0 <= n <= 365). Leap days shall be counted,
20786 and it is possible to refer to February 29.
20787 Mm.n.d - The d'th day (0 <= d <= 6) of week n of month m of the year
20788 (1 <= n <= 5, 1 <= m <= 12, where week 5 means "the last d day in month m"
20789 which may occur in either the fourth or the fifth week). Week 1 is the
20790 first week in which the d'th day occurs. Day zero is Sunday.
20791 The time has the same format as offset except that no leading sign ('-' or '+')
20792 is allowed. The default, if time is not given, shall be 02:00:00.
20798 Start project STLportForceInstantiations.pjt
20799 Change paths for libs and includes. Remark call for lddk.h in follows:
20801 src/stlport_prefix.h
20802 Add to BuildOptions-Diagnostic at `-pds=77'
20805 Rebuild on project STLportForceInstantiations.pjt
20806 Inc build of project STLportLib.pjt
20809 The tests not running, but hello do.
20814 GPIO initialization happened in bsl_init() from arch/tms.../bsl/bsl_common.c
20815 where used follow GPIO API funcs:
20821 Already exist 4 Softier wraper funcs:
20822 gpio_deltaHighClear for GPIO_deltaHighClear
20823 gpio_deltaLowClear for GPIO_deltaLowClear
20824 gpio_deltaHighGet for GPIO_deltaHighGet
20825 gpio_deltaLowGet for GPIO_deltaLowGet
20827 Create new file arch/tms.../bsl/gpio.c, where relevant stuff will be. Also
20828 gpio.h which calls <device>/gpio_hw_defs.h
20829 New file have gpio_init(), new wrappers
20831 gpio_pinDirection()
20834 Deleted from bsl_common.c {{{2
20836 /** Enable flash paging pins and set to page 0 by default */
20837 GPIO_pinEnable(GPIO_hGPIO, FLASH_PAGING_EXT );
20838 GPIO_pinDirection(GPIO_hGPIO, FLASH_PAGING_EXT, GPIO_OUTPUT);
20839 GPIO_pinWrite(GPIO_hGPIO, FLASH_PAGING_EXT, 0);
20841 /** Enable interrupt line */
20842 GPIO_pinEnable(GPIO_hGPIO, DM642_INT );
20843 GPIO_pinDirection(GPIO_hGPIO, DM642_INT, GPIO_INPUT);
20845 /** Enable PLL1708 lines */
20846 GPIO_pinEnable(GPIO_hGPIO, PLL1708_SDIN|PLL1708_SCLK|PLL1708_CS_ );
20847 GPIO_pinDirection(GPIO_hGPIO, PLL1708_SDIN|PLL1708_SCLK|PLL1708_CS_, GPIO_OUTPUT);
20848 GPIO_pinWrite(GPIO_hGPIO, PLL1708_CS_, 0xFFFF);
20849 GPIO_pinWrite(GPIO_hGPIO, PLL1708_SDIN|PLL1708_SCLK, 0);
20851 /** Enable USB Host controller DMA request lines*/
20852 GPIO_pinEnable( GPIO_hGPIO, USB_HC_DREQ|USB_DC_DREQ );
20853 GPIO_pinDirection(GPIO_hGPIO, USB_HC_DREQ|USB_DC_DREQ, GPIO_INPUT);
20855 /** Configure and enable the IR data pin*/
20856 GPIO_pinEnable( GPIO_hGPIO, IR_DATA | GPIO_PIN0 );
20857 GPIO_pinDirection(GPIO_hGPIO, IR_DATA | GPIO_PIN0, GPIO_INPUT);
20861 Changed and added files:
20862 arch/tms320c6/bsl/bsl_common.c
20863 arch/tms320c6/bsl/bsl_mod.c
20864 arch/tms320c6/bsl/gpio.c
20865 include/asm-tms320c6/io.h
20866 arch/tms320c6/drivers/phcd/hal_dm642.c
20867 arch/tms320c6/bsl/Makefile
20868 arch/tms320c6/drivers/sound/bsl_apll.c
20869 arch/tms320c6/bsl/ma/hw_defs.h
20870 arch/tms320c6/drivers/lirc_media642.c
20873 new TI compiler wrapper {{{1
20874 05apr2005 01may2005 14jan2006
20877 The idea is to redesign of Softier's wrapper. Wrapper exists because of
20878 differences between gcc and TI compiler options.
20879 In addition, it should recognize converter (convert non-ANSI C to ANSI),
20880 which used before preprocessor. There 2 converters already (02may2005).
20881 It is needed to solve auto-tools problems also.
20883 Technicaly most close implementation is gcc driver. The part of gcc which
20884 already reading command line options and constructs calls to preproccesor\
20885 compiler\assembler\linker.
20887 Taken gcc version 4.0.0 as most current.
20889 from previous attempt gcc.c {{{2
20891 static const char *cc1_options =
20892 "%{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\
20893 -pden -pds97 -pds225 -pds552 -pds878 -pds880 -pds992 -pds179 -pds195\
20894 -pdr -mv6400 -eo.o -ea.s -el.s -es.lst -ml3\
20895 -d__SOFTIER_LONGLONG__=long -d__SOFTIER_LONG__=int -d__gnuc_va_list=va_list\
20896 %{c:%W{o*}%{!o*:-o %w}}%{!c:-o %w%b.o}";
20898 static const struct compiler default_compilers[] =
20900 "%{E|M|MM:%(trad_capable_cpp) %(cpp_options) %(cpp_debug_options)}\
20902 %{traditional|ftraditional:\
20903 %eGNU C no longer supports -traditional without -E}\
20904 %{save-temps|traditional-cpp|no-integrated-cpp:%(trad_capable_cpp) \
20905 %(cpp_options) -o %{save-temps:%b.i} %{!save-temps:%g.i} \n\
20906 cc1 -fpreprocessed %{save-temps:%b.i} %{!save-temps:%g.i} \
20908 %{!save-temps:%{!traditional-cpp:%{!no-integrated-cpp:\
20909 cc1 %(cpp_unique_options) %(cc1_options)} } }\
20914 Build & install gcc core {{{2
20916 untar gcc-core-3.4.3.tar.bz2
20918 configure --prefix=/opt/x86/wrapper --with-local-prefix=/opt/x86/wrapper --disable-nls --enable-languages=c --disable-shared
20919 make BOOT_LDFLAGS="-static" bootstrap
20923 untar gcc-core-4.0.0.tar.bz2
20927 ../configure --prefix=/opt/x86/wrapper --with-local-prefix=/opt/x86/wrapper --disable-nls --enable-languages=c --disable-shared
20928 make CFLAGS='-O' LIBCFLAGS='-g -O2' LIBCXXFLAGS='-g -O2 -fno-implicit-templates' BOOT_LDFLAGS='-static' bootstrap
20932 untar gcc-core-4.0.2.tar.bz2
20936 ../configure --prefix=/usr/local/tools/wrapper \
20937 --with-local-prefix=/usr/local/tools/wrapper --disable-shared \
20938 --enable-languages=c --disable-nls
20939 make CFLAGS='-O' LIBCFLAGS='-g -O2' LIBCXXFLAGS='-g -O2 -fno-implicit-templates' BOOT_LDFLAGS='-static' bootstrap
20942 Follows files installed (starts at /usr/local/tools/wrapper): {{{3
20948 i686-pc-linux-gnu-gcc
20949 i686-pc-linux-gnu-gcc4.0.2
20955 gcc/i686-pc-linux-gnu/4.0.2/
20959 (specs - not exist at 4.0.2)
20963 libexec/gcc/i686-pc-linux-gnu/4.0.2/
20973 + 1. disable gcc call to as.
20974 + 2. delete wine warnings about timezone
20975 `export WINEDEBUG=-all'
20976 + 3. source paths for wine
20977 + 4. the `-o' param for linkage
20978 + 5. check compile and link together like `gcc -o stam stam.c'
20982 wine cl6x -qq -D__SOFTIER_LONG__=int -i/home/gxk/prjs/uClinux-dist/uClibc/include stam.c -d__SOFTIER_LONG__=int -mv6400 -ml3 -eo.o -ea.s -el.s -es.lst -qq -pden -pdr -d__SOFTIER_LONGLONG__=long\ long -d_TMS320C6X_LONGLONG -d__gnuc_va_list=va_list -dlinux -d__linux__ -dunix -d__uClinux__ -dEMBED -d_TMS320C6 -d__PIC__ -d_TMS320C6 -d__inline__=inline -d__signed__=signed -d_TMS320C6X_NOCONVERTER
20984 gcc -d__SOFTIER_LONG__=int -d_TMS320C6X_LONGLONG -d_TMS320C6X_WCHAR -d__gnuc_va_list=va_list -dlinux -d__linux__ -dunix -d__uClinux__ -dEMBED -d_TMS320C6X -d__PIC__ -d_TMS320C6 -d__inline__=inline -d__signed__=signed -d_TMS320C6X_NOCONVERTER -i/home/gxk/prjs/uClinux-dist/uClibc/include -o stam stam.c
20987 7. check gcc include files path creation
20988 this is part of cc1 (compiler)
20989 8. check gcc lib path creation
20990 9. to change install dirs from `i686-pc-linux-gnu' to `c6x-coff-ml'
20991 11. Replace cxoffice w/ wine
20994 ./linux-2.4.x/Makefile kernel
20995 ./uClibc/Rules.mak libs-34
20996 ./uClibc/Makefile libs-34
20997 ./user/pciutils/Makefile user
20998 ./user/tests/mpeg2/Makefile user
20999 ./user/tests/play/Makefile user
21000 ./user/tests/dmxplay/Makefile user
21001 ./user/init/Makefile user
21002 Redefine link to libgcc-ti.lib in <ti2|ti3|ti31b>/c6000/cgtools/lib/
21003 cp msvcp60.dll to `windows/system'
21005 Links to care about:
21006 .wine/drive_c/ti --> /usr/local/tools/ti31b
21007 /usr/local/tools/ti-lib/libsoftier.lib -->
21008 /usr/local/tools/ti-lib/libsoftier-ti31b.lib
21009 /usr/local/tools/ti31b/c6000/cgtools/lib/libgcc-ti.lib -->
21010 /usr/local/tools/ti-lib/libgcc-ti.lib
21016 01. to use variable path in spec file
21017 02. The `--target-help' works, but trying to link after.
21018 03. The macro `-d__SOFTIER_LONGLONG__=long\ long' placed at gcc script, cause
21019 can't write in cmd line.
21020 04. The `-E' options brings `-mtune=pentiumpro'
21021 05. Use of option `-no-integrated-cpp' cancel call to built-in preprocessor,
21022 which can be used for converter call.
21025 01. The preprocessor predefine `-d' changed to `-D' from CCS 3.0. If needed,so
21026 half way is to add `%{D*:-d%*}' at specs tag `*cpp_unique_options:'
21027 02. To find where is cc1, run `gcc -print-prog-name=cc1'
21028 03. run file `gcc --verbose -specs=/home/gxk/prjs/stam/specs stam.c -o stam -cmd'
21030 Wrapper options translate table {{{2
21032 --- List of gcc options ans switches, based gcc 4.0.2
21034 Options controlling output {{{3
21049 Options controlling C lang {{{3
21067 funsigned-bitfields
21068 fno-signed-bitfields
21069 fno-unsigned-bitfields
21073 Debugging options {{{3
21079 fdump-translation-unit
21080 fdump-class-hierarchy[-n]
21086 g glevel gcoff gdwarf-2 ggdb gstabs gstabs+ gvms gxcoff gxcoff+
21087 p pg print-file-name=library print-libgcc-file-name print-multi-directory
21088 print-multi-lib print-prog-name=program print-search-dirs
21093 Optimization options
21094 Preprocessor options {{{3
21140 fdollars-in-identifiers
21162 Assembler options {{{3
21166 Linker options {{{3
21182 Options to search dirs for header files, libraries and parts of compiler
21183 Directory search options {{{3
21191 Code generation options {{{3
21192 fcall-saved-reg fcall-used-reg
21193 ffixed-reg fexceptions
21194 fnon-call-exceptions funwind-tables
21195 fasynchronous-unwind-tables
21196 finhibit-size-directive finstrument-functions
21197 fno-common fno-ident
21198 fpcc-struct-return fpic fPIC fpie fPIE
21199 freg-struct-return fshared-data fshort-enums
21200 fshort-double fshort-wchar
21201 fverbose-asm fpack-struct[=n] fstack-check
21202 fstack-limit-register=reg fstack-limit-symbol=sym
21203 fargument-alias fargument-noalias
21204 fargument-noalias-global fleading-underscore
21206 ftrapv -fwrapv fbounds-check
21210 --- List of cl6x options, based CCS 3.1b
21212 TMS320C6x C/C++ Compiler v5.1.0B2
21213 Tools Copyright (c) 1996-2004 Texas Instruments Incorporated
21215 Usage: cl6x [-options] filename
21217 Use 'cl6x -h <option>' for more information on a particular option. Use
21218 'cl6x -h <text>' to search options for information regarding <text>.
21220 Option arguments surrounded by [] declare they are optional. Option arguments
21221 separated by commas specify that the option's argument must be chosen from
21222 those arguments listed.
21224 General Options {{{3
21225 -@=filename Read options from file filename
21226 -D=NAME[=value] Pre-define NAME
21227 -I=dir Add dir to #include search path
21228 -U=NAME Undefine NAME
21229 -c Disable linking (overrides -z)
21230 --compiler_revision Print compiler revision and exit
21231 --consultant Generate compiler consultant information
21232 -h Show help screen
21233 -k Keep the generated assembly language (.asm) file
21234 -ma Assume called funcs create hidden aliases (rare)
21235 -n Compile only; do not assemble
21236 --profile:breakpt Compile for breakpoint-based profiling
21237 --profile:power Compile for power profiling
21239 -qq Super Quiet Mode
21240 -s Generate interlisted assembly file
21241 -ss Generate source interlisted assembly file
21242 --verbose Display banner and function progress information
21243 -version Print version numbers for each tool
21244 -z[=filename] Perform link using options following
21246 Symbolic Debug Options {{{3
21247 -g Full symbolic debug
21248 --machine_regs Display reg operands as machine registers in asm file
21249 --symdebug:coff Full symbolic debug (COFF, deprecated)
21250 --symdebug:dwarf Full symbolic debug (same as -g)
21251 --symdebug:none Suppress all symbolic debug generation
21252 --symdebug:profile_coff
21253 Function profile debug (COFF, deprecated)
21254 --symdebug:skeletal Symbolic debug for program analysis (default)
21256 Parser Options {{{3
21257 --exceptions Enable C++ exception handling
21258 -pc Multibyte character support
21260 -pi Ignore inline keyword
21261 -pk K & R compatibility
21262 -pl Output raw listing to .rl file
21263 -pm Program mode compilation
21264 -pn Disable intrinsic functions
21265 -pr Relaxed parsing (non-strict ANSI)
21266 -ps Strict ANSI mode (errors)
21267 -px Output xref listing to .crl file
21268 -rtti Support C++ run-time type information
21270 Parser Preprocessing Options {{{3
21271 -ppa Generate a preprocessed file and continue compilation
21272 -ppc Preprocess only; maintain comments
21273 -ppd[=filename] Generate include file dependency information
21274 -ppi[=filename] Generate first-level include file list
21275 -ppl Preprocess only; maintain line directives
21276 -ppo Preprocess only
21278 Parser Diagnostics Options {{{3
21279 -pdel=count Set error limit to <count>
21280 -pden Emit diagnostic identifier numbers
21281 -pdf Output diagnostic to .err file
21283 -pds=id Suppress diagnostic <id>
21284 -pdse=id Treat diagnostic <id> as error
21285 -pdsr=id Treat diagnostic <id> as remark
21286 -pdsw=id Treat diagnostic <id> as warning
21287 -pdv Verbose diagnostics
21288 -pdw Suppress warnings
21290 Runtime Model Options {{{3
21291 -mb Enable 62xx compatibility
21292 -mc Do not reorder floating point operations
21293 -me Generate big endian code
21294 --mem_model:data=far,far_aggregates,near
21295 Data access model (Default:far_aggregates)
21296 -mh[=#] Specify speculative load byte count threshold
21297 -mi[=#] Specify maximum cycles that interrupts may be disabled
21298 -mo Place each function in a separate subsection
21299 -mpic Generate position independent code for call returns
21300 -ms[=0-3] Optimize for code size (Default:0)
21301 -mt Assume no irregular alias or loop behavior
21302 -mu Disable software pipelining
21303 -mv=id Target processor version (Default:6200)
21304 -mw Generate verbose software pipelining information
21305 --no_reload_errors Prevent detection of loop buffer reload-related errors
21306 -ox Use const to disambiguate pointers.
21307 --speculate_unknown_loads
21308 Speculate loads with unbounded address ranges
21310 Optimizations Options {{{3
21311 -O[=0-3] Optimization level (Default:2)
21312 -oi[=size] Specify threshold for automatic inlining
21313 -on=0-2 Generate optimizer information file at level [0-2]
21314 -op=0-3 Specify call assumptions when optimizing
21315 -os Generate optimized source interlisted assembly file
21317 Library Function Assumptions Options {{{3
21318 -ol0 File redefines an RTS library function.
21319 -ol1 File contains an RTS library function.
21320 -ol2 File does not define any RTS library func (def.)
21322 Assembler Options {{{3
21323 -aa Generate absolute listing file
21324 -ac Symbol names are not case-significant
21325 -ad=NAME[=value] Pre-define assembly symbol NAME
21326 -ahc=filename Simulate source '.copy filename'
21327 -ahi=filename Simulate source '.include filename'
21328 -al Generate listing file
21329 -apd Generate assembly dependency information
21330 -api Generate first-level assembly include file list
21331 -as Keep local symbols in output file
21332 -au=NAME Undefine assembly symbol NAME
21333 -ax Generate cross reference file
21335 File Type Specifier Options {{{3
21336 -fa=filename File is an assembly file (default for .asm)
21337 -fc=filename File is a C file (default for .c/no ext)
21338 -fl=filename File is a linear asm file (default for .sa)
21339 -fo=filename File is an object file (default for .obj)
21340 -fp=filename File is a C++ file (default for .C .cpp .cc)
21342 Directory Specifier Options {{{3
21343 -fb=dir Absolute listing directory (default is .obj dir)
21344 -ff=dir Listing/xref file directory (default is .obj dir)
21345 -fr=dir Object file directory (default is .)
21346 -fs=dir Assembly file directory (default is .)
21347 -ft=dir Temporary file directory (default is .)
21349 Default File Extensions Options {{{3
21350 -ea=.ext Extension for assembly files (default is .asm)
21351 -ec=.ext Extension for C files (default is .c)
21352 -el=.ext Extension for linear asm files (default is .sa)
21353 -eo=.ext Extension for object files (default is .obj)
21354 -ep=.ext Extension for C++ files (default is .cpp)
21355 -es=.ext Extension for listing files (default is .lst)
21356 -fg Treat C files as C++ files
21358 Linker options {{{3
21359 The following Linker options can be specified following the -z
21360 option. Linking is only enabled if -z is used and -c is not:
21363 -a Produce an absolute, executable object file (default)
21364 -abs Produce absolute listing file
21365 --args=size Set C argc/argv memory size
21366 -b Disable type merging in symbolic debugging information
21367 -c Link using ROM autoinitialization model
21368 -cr Link using RAM autoinitialization model
21369 -e=symbol Specify the program entry point for the output module
21370 -f=value Set default fill value for holes in output sections
21371 -g=symbol Make specified symbol global (overrides -h)
21372 -h Make all global symbols static
21373 -heap,--heap=size Specify heap size for C/C++ dynamic memory allocation
21374 -help,--help Display usage information
21375 -i=dir Add <dir> to library search path
21376 -j Disable conditional linking; ignore .clink directives
21377 -k Ignore alignment flags specified in input sections
21378 -l=file Include library file or command file as input
21379 -m=file Produce listing of input and output sections in <file>
21380 -o=file Specify output file name
21381 -priority Search libraries in priority order
21382 -r Produce a relocatable output module
21383 -s Strip symbol table and line number entries
21384 -stack,--stack=size Set C system stack size
21385 --trampolines[=off,on]
21386 Generate far call trampolines (Default:on)
21387 -u=sym Add <sym> to symbol table as an unresolved symbol
21388 -w Warn if an unspecified output section is created
21389 -x Reread libraries; resolve backward references
21390 -xml_link_info=file Produce detailed link information data-base in <file>
21399 except kernel, everything compiled w/ sparc converter and work.
21400 kernel compiled w/ sparc. check needed.
21401 kernel compiled mixed - sparc, cil. check needed.
21404 1. release of toolchain, based sparc converter
21405 2. release of toolchain, based cil converter
21406 3. autotools improvement
21411 run 'gcc2c_scripts/make-wrapper.sh'
21413 gcc2c_scripts/make-wrapper.sh
21414 gcc2c-wrapper/gcc2c-compiler-wrapper.cpp (only warnings):
21419 GCC2C_PDK_INCLUDE_PATH
21420 GCC2C_WRAPPER_TEMPDIR
21426 GCC2C_MAKE_PJT_FILE
21429 GCC2C_CONVERTER - instead of GCC2C_NO_CONVERTER_INVOCATION
21430 GCC2C_CONVERTER_ROOT
21431 GCC2C_CONVERTER_OPTIONS
21432 GCC2C_PASSTHRU_GCC_OPTIMIZE_OPTIONS_TO_CONVERTER
21433 GCC2C_CIL_CONVERTER_ROOT
21434 GCC2C_CIL_PREPROCESSOR_OPTIONS
21436 GCC2C_SECOND_STAGE_GCC_INVOKE
21437 GCC2C_SECOND_STAGE_GCC_OPTIONS
21438 GCC2C_SECOND_STAGE_GCC_NO_PASS_WARNING_OPTIONS
21440 GCC2C_SECOND_STAGE_CCS_WINE_INVOKE
21441 GCC2C_SECOND_STAGE_CCS_COMPILER_OPTIONS
21442 GCC2C_NOCONVERTER_SECOND_STAGE_CCS_COMPILER_OPTIONS
21443 GCC2C_SECOND_STAGE_CCS_COMPILER_EXTRA_OPTIONS
21444 GCC2C_SECOND_STAGE_CCS_CONVERTED_COMPILE_OPTIONS
21445 GCC2C_SECOND_STAGE_CCS_LINKER_OPTIONS
21446 GCC2C_SECOND_STAGE_CCS_LIBRARY_PATH
21447 GCC2C_SECOND_STAGE_CCS_ADDITIONAL_LIBRARY_PATH
21448 GCC2C_SECOND_STAGE_CCS_INCLUDE_PATH
21449 GCC2C_SECOND_STAGE_CCS_LOADER_OPTIONS
21450 GCC2C_SECOND_STAGE_CCS_RAW_COMMAND_LINE
21451 -------------------------------------------
21453 GCC2C_WRAPPER_SAVETEMPS - ???
21455 GCC2C_CIL_PREPROCESSOR_ROOT
21456 GCC2C_CIL_CONVERTER_INVOCATION
21463 (! converter root) || ((! 2nd stage gcc) && (! 2nd stage wine)) || ((2nd stage gcc) && (2nd stage wine))
21464 (2nd stage wine) && (! 2nd stage library path)
21465 (2nd stage wine) && (! 2nd stage include path)
21466 wrapper tmp dir doesn't have absolute path
21467 wrapper tmp dir is root `/'
21469 Prepare cmdln for gcc:
21470 SecondStageGCCInvoke DEFAULT_SECOND_STAGE_GCC_COMPILER_ARGS \
21471 SecondStageGCCOptions `-L' ConverterRoot`/'CONVERTER_LIB
21475 shahar's wrapper {{{3
21477 Env vars usage {{{4
21479 GCC2C_PDK_INCLUDE_PATH
21480 GCC2C_WRAPPER_TEMPDIR
21482 GCC2C_WRAPPER_SAVETEMPS - ???
21488 DEFAULT_CONVERTER_ARGS -mnew-abi -D__NO_STRING_INLINES -D__NO_MATH_INLINES
21489 DEFAULT_SECOND_STAGE_CCS_LINKER_ARGS -z -x -b -ar --defualt-order
21490 DEFAULT_CCS_LOADER_OPTIONS -qq -map 1
21491 SECOND_STAGE_CCS_COMPILER_ARGS_FOR_NON_CONVERTED
21492 SECOND_STAGE_CCS_COMPILER_ARGS_FOR_CIL_CONVERTED
21493 SECOND_STAGE_CCS_COMPILER_ARGS_FOR_CONVERTED
21494 DEFAULT_SECOND_STAGE_CCS_COMPILER_ARGS
21495 DEFAULT_SECOND_STAGE_GCC_COMPILER_ARGS
21496 GCC2C_CONVERTER_DEFAULT_OPTIMIZE_ARGS
21497 DEFAULT_CIL_PREPROCESSOR_ARGS
21499 GCC2C_CONVERTER_ROOT
21500 GCC2C_CONVERTER_OPTIONS
21501 GCC2C_CIL_CONVERTER_ROOT
21502 GCC2C_CIL_PREPROCESSOR_OPTIONS
21504 GCC2C_SECOND_STAGE_GCC_INVOKE
21505 GCC2C_SECOND_STAGE_GCC_OPTIONS
21506 GCC2C_SECOND_STAGE_CCS_WINE_INVOKE
21507 GCC2C_SECOND_STAGE_CCS_COMPILER_OPTIONS
21508 GCC2C_SECOND_STAGE_CCS_COMPILER_EXTRA_OPTIONS
21509 GCC2C_SECOND_STAGE_CCS_CONVERTED_COMPILE_OPTIONS
21510 GCC2C_SECOND_STAGE_CCS_LINKER_OPTIONS
21511 GCC2C_SECOND_STAGE_CCS_LIBRARY_PATH
21512 GCC2C_SECOND_STAGE_CCS_ADDITIONAL_LIBRARY_PATH
21513 GCC2C_SECOND_STAGE_CCS_INCLUDE_PATH
21514 GCC2C_SECOND_STAGE_CCS_LOADER_OPTIONS
21515 GCC2C_NOCONVERTER_SECOND_STAGE_CCS_COMPILER_OPTIONS
21519 (! converter root) || ((! 2nd stage gcc) && (! 2nd stage wine)) || ((2nd stage gcc) && (2nd stage wine))
21520 (2nd stage wine) && (! 2nd stage library path)
21521 (2nd stage wine) && (! 2nd stage include path)
21522 wrapper tmp dir doesn't have absolute path
21523 wrapper tmp dir is root `/'
21525 Create wrapper temp dir
21527 def GCCConverterCommand + converter path (GCC2C_CONVERTER_ROOT) + name GCC_BIN
21528 def GCCConverterArgs
21529 + DEFAULT_CONVERTER_ARGS
21530 + (GCC2CPassThruGCCOptimizeOptionsToConverter) GCC2C_CONVERTER_DEFAULT_OPTIMIZE_ARGS
21531 + GCC2C_CONVERTER_OPTIONS
21533 def CILPreprocessorCommand + GCCConverterCommand
21534 def CILPreprocessorArgs
21535 + DEFAULT_CIL_PREPROCESSOR_ARGS
21536 + (GCC2CPassThruGCCOptimizeOptionsToConverter) GCC2C_CONVERTER_DEFAULT_OPTIMIZE_ARGS
21537 + GCC2C_CIL_PREPROCESSOR_OPTIONS
21539 def SecondStageGCCCommand
21540 + GCC2C_SECOND_STAGE_GCC_INVOKE
21541 def SecondStageGCCArgs
21542 + DEFAULT_SECOND_STAGE_GCC_COMPILER_ARGS
21543 + GCC2C_SECOND_STAGE_GCC_OPTIONS
21544 + '-L' + GCC2C_CONVERTER_ROOT + CONVERTER_LIB
21546 def SecondStageCCSCommand
21547 + GCC2C_SECOND_STAGE_CCS_WINE_INVOKE
21549 def SecondStageCCSArgs
21550 def SecondStageLinkerArgs
21552 parsing options (285 long options)
21553 print-libgcc-file-name
21554 Xlinker - check if arg is `-T'
21555 ansi - `pr'(CCS), `ansi'(SPARC,CIL)
21556 fno-rtti - `rtti'(CCS)=???
21557 save-temps - save-temps(SPARC), WrapperSaveTemps=1
21558 list of optins added to SPARC and CIL as is {{{
21559 finstrument-functions
21566 fno-strict-aliasing
21567 fomit-frame-pointer
21568 fno-omit-frame-pointer
21580 Wmissing-format-attribute
21581 Wno-format-extra-args
21604 add to SPARC and CIL follows:
21605 (!finline-limit) || (!std) || (!Wformat) || (!fmessage-length) ||
21606 (GCC2CPassThruGCCOptimizeOptionsToConverter && ((!funroll-loops) || (!funroll-all-loops))
21607 add to SPARC and CIL follows:
21609 add to SPARC follows:
21610 (!fpic) || (!fno-pic) || (!ffreestanding) || (!fleading-underscore) ||
21611 (!GCC2C_SECOND_STAGE_GCC_NO_PASS_WARNING_OPTIONS && (!Wlarger-than-)) || (!trigraphs) || (!###)
21612 target-help - `h'(CCS)
21613 save-temps - `k -pl -px -s -ss'(CCS)
21614 fno-inline - `pi'(CCS)
21615 traditional - `pk'(CCS)
21617 Wp - `Wp'(SPARC,CIL)
21619 Ws - `Ws'(GCC) ???can't find in gcc options
21620 A,B,H,d,$ - as is to SPARC and CIL
21621 m,Q,x,s,u,l,b,V - as is to GCC and CCS(for linker)
21623 P - as is CIL and GCC
21624 M,E - SPARC,CIL,GCC
21626 D - SPARC,CIL,GCC, `d'(CCS)
21635 I - SPARC,CIL,GCC, `i'(CCS)
21641 linux-2.4.x/kad/bios/Makefile
21645 Patch build 132_23_41_42
21648 run `get-k132 p' and get output {{{
21649 /home/gxk/prjs/tools/uClinux-dist
21650 /home/gxk/prjs/tools/uClinux-dist
21651 /home/gxk/prjs/tools/uClinux-dist
21652 /home/gxk/prjs/tools/uClinux-dist
21653 /home/gxk/prjs/tools/uClinux-dist
21654 patched eXTRA 63 files
21657 `. /opt/softier/env.src -il uClibc'
21658 `. /opt/softier/env.src /opt/softier/object.list'
21659 `make xconfig' and set ma-600
21661 `make linux-dep' and `make linux'
21663 . /opt/softier/env.src -il /home/gxk/prjs/tools/uClinux-dist/uClibc
21664 . /opt/softier/env.src -c CIL
21666 Pack new sdk version:
21667 cd packsdk/headers-n-libraries
21668 ./win2lin -o ./il-1.2.38 k138_l43_u50_i28_
21670 ./pack -l./headers-n-libraries/il-1.2.38 -rsdk-v05-x.x.xx.tar 05-1.2.38
21675 The purpose to build php as cgi for boa and demonstrate it with my glib,
21679 ./configure --prefix=/usr/local/php5.1.4
21680 created /usr/local/php5.1.4/bin/php size 7.7MB and libraries for 2.9MB
21682 ./configure --prefix=/usr/local/php5.1.4 --disable-all
21683 created /usr/local/php5.1.4/bin/php size 4.9MB and libraries for 2.9MB
21686 Upgrade2 design {{{
21687 Have to create well managed upgrade process, where each stage can be
21688 intercepted. Means, ability to freez upgrade process in "any" stage and even
21689 put it in step-by-step mode.
21690 Two features needed - upgrade flow, which can be intercepted in almost any
21691 time and interactive management tool (`control console') to control upgrade
21692 flow already intercepted.
21693 The interception itself made by introduction of new upgrade flow, where
21694 manager creates separate upgrade jobs and waits till end of each. Each job is
21695 minimal task from upgrade flow (see ???). Manager will keep upgrade status in
21696 oder to know which stage and in which status running now.
21697 New feature `control console', which brings interactive remote shell to
21698 upgrade system. User connects (w/ common telnet client) to the system and if
21699 succeful, gets shell, w/ limited number of commands (see ???).
21700 If connection refused, upgrade flow got to the stage, where nothing can be
21701 done (means alredy writing to flash).
21702 Accepting conection, will freez upgrade flow from moving forward, but
21703 alredy running job will end.
21707 ------> new upg mission
21709 | | <------------------------
21712 | new connection --- |
21719 | job status done ---------------
21722 | is next mission ---
21728 List of upgrade tasks
21729 START - prepares manager process, by settings signals, environment, etc.
21730 R2FS - doing reset to factory settings
21731 BTN - checking push button for timeout period
21732 DHCP - starts dhcp client
21733 HTTP - starts boa server and brings upgrade file
21734 FTP - starts ftp client and brings upgrade file
21735 TFTP - starts tftp client and brings upgrade file
21736 ARCH - open upgrade tarball
21737 FLSH - writes everything on flash
21738 FIN - updates upgrade flags
21742 ------> new upg mission
21749 | is next mission ---
21756 init, start, start_done, r2fs, r2fs_done, btn, btn_done, dhcp, dhcp_done, http,
21757 http_done, ftp, ftp_done, tftp, tftp_done, arch, arch_done, flsh, flsh_done, fin
21759 upgrade checklist {{{
21760 project time till 30apr - 30may 2006 -2 days
21762 Normal flow (w/o telnet connection)
21764 A FTP (+-DOK, +-DHCP, +-fallback)
21767 no ftp service on host
21768 no such path on ftp server
21769 no upg archive on ftp server
21771 B TFTP (+-DOK, +-DHCP)
21774 no tftp service on host
21775 no upg archive on tftp server
21780 no upg archive on DOK
21782 D HTTP (+-DOK, +-DHCP)
21786 E OPEN (+-DOK, +-DHCP)
21787 fail to open archive
21788 fail to open tarball
21789 wrong tarball content
21795 Upgrade wave400 {{{
21798 - The main picture -
21800 The new system based on 64MB flash, where placed 2 separated systems
21801 (A and B). Each one is fully operational with all needed abilities to run
21802 IPTV. The system itself is kernel and writable filesystem image.
21804 Bootloader A system B system
21806 Currently not avaiable application upgrade, cause it is opens issue of
21807 packaging system. How to keep track of different applications? Have tp keep
21812 UC - Upgrade Client
21813 US - Upgrade Server
21815 --- New concepts ---
21817 1. What to upgrade? (upgrade types)
21818 It is required to upgrade whole system, any part of it or any choosen
21819 application. Three types of upgrade could be described:
21820 Full (FSU-full system upgarde) is upgrade of whole system.
21821 Partial (PSU-partial system upgrade) is upgrade only kernel or on of
21823 User Application - upgrade certain application.
21825 2. Server activated upgrade.
21826 The upgrade can be started by client itself or by middleware server, which
21827 sends command to start through JS API. The client can start it from button push
21830 3. Background upgrade (TBD).
21831 Ability to do it, when user applications running. The question here is
21832 memory needs to store upgrade tarball, while video application running.
21834 4. New upgrade transport (TBD)
21835 In addition to FTP, TFTP, HTTP protocols and USB device, used to bring
21836 upgrade tarball to the system, one new transport - multicast file transfer.
21837 Multicast based (like UDP FTP Multicast)
21839 5. Upgrade User Interface (UUI)
21840 Upgrade monitor in 2 modes (runtime/debug), where upgrade progress
21841 information dumped on screen
21843 6. Ability to interact with remote control (start or cancel upgrade)
21845 7. Upgrade tarball verification (MD5)
21847 8. Dynamic name for upgrade tarball
21851 Interaction w/ UUI and IR closed w/ Tal (04jul2006), as telnet connection w/
21852 browser, where certain language used for sevewral purposes:
21853 - show progress on screen;
21854 - get noted, if cancel button pushed;
21855 - show lots of debug info on screen;
21857 Upgrade client flow description
21858 - reads configuration data
21860 - builds upgrade image name
21862 - opens and verifies upgrade image
21864 - update UUI, during whole process
21869 1. Fix http download
21870 Homepage w/ download,upload,cancel. If download or upload pressed, so get
21871 new page w/ cancel button only and message "in progress". When
21872 [down|up]load finished, new html page w/ result message.
21873 If canceled pushed, will get result page.
21874 If [down|up]load failed and result page given, user should do refresh in
21875 order to get homepage again.
21876 2. Add LOGDEBUG level, when debug output only w/ logfile
21878 4. All checking done in FLSH, move to VERI stage.
21880 1. Add check DNS resolving (if resolve.conf exists and >0)
21881 2. FQDN validate function
21883 #899 - only windows ftp, download file from root, if path not exists
21884 #960 - system hangs, when network cable pluged out during ftp download
21885 # - browser (IE) display timeout error, while boa downloads tarball
21888 1. Make upgrade kernel to production (waits for Hannit permission)
21889 2. Ability to write at upgrade filesystem (more ~700KB)
21893 from softier2003\install...\davinci\Code_Composer_Studio_v3.2_build_3.2.31.0
21895 ARM subsystem (from sprue14.pdf) {{{
21897 ARM926EJ-S CPU includes
21898 Coprocessor 15 (CP15)
21900 instruction cache (I-Cache 16KB)
21901 data cache (D-Cache 8KB)
21902 ARM internal memories
21904 8KB ROM (ARM bootloader for non-AEMIF options)
21905 Embedded Trace Module and Embedded Trace Buffer (ETM/ETB)
21906 System control peripherals
21907 ARM interrupt controller
21909 Power 'n' Sleep controller
21912 ARM926EJ-S (from DDI0198D_926_TRM.pdf)
21916 samsung K9F120R0B from series K9F120X0B (from ds_k9f1208x0b_rev03.pdf)
21917 This is 512Mb (64MB). The actual size is 528Mb.
21918 Devided in 4 planes, where each contents 1024 blocks + 528 byte page register.
21919 Each plane is 128Mb (16MB), so each block 128Kb. Each block contents 32 pages,
21920 so each page is 4Kb (512B).
21921 | plane block page bit bytes
21922 ---------------------------------------
21923 plane | x 1024 32768 128M 16M
21924 block | 1024 x 32 128K 16K
21925 page | 32768 32 x 4K 512
21926 bit | 128M 128K 4K x -
21928 Because of physical size is 528Mb, it is left 16Mb (2MB) or 128 blocks..
21931 svn checkout http://192.168.2.226/repos/bsp/infrastructure/trunk infrastructure
21936 configure the kernel by following the underlined steps
21937 make ARCH=arm CROSS_COMPILE=arm_v5t_le- davinci_dm644x_defconfig
21938 make ARCH=arm CROSS_COMPILE=arm_v5t_le- checksetconfig
21940 # This will setup the default config settings for the DaVinci Linux Baseline1 kernel.
21941 # Configure the kernel to create the exact config requirements using
21942 make ARCH=arm CROSS_COMPILE=arm_v5t_le- xconfig
21944 # Ensure that the location of your MVL ToolChain installation is available in the
21945 # search patch. Compile Linux kernel using:
21946 make ARCH=arm CROSS_COMPILE=arm_v5t_le- uImage modules
21948 # Copy kernel image to tftp server directory
21949 sudo cp arch/arm/boot/uImage /tftpboot
21951 # Install modules into target
21952 sudo make ARCH=arm INSTALL_MOD_PATH=/opt/montavista/pro/devkit/arm/v5t_le/target modules_install
21958 make davinci_config
21959 make ARCH=arm CROSS_COMPILE=arm_v5t_le-
21962 Starts from NOR or ROM, depends on device configuration pins BTSEL[1:0].
21963 After reset, the ARM program execution begins in ARM ROM 0x0000:40000, except
21964 case when of NOR boot (BTSEL[1:0] = 01).
21965 * BTSEL[1:0] = 01, so AEMIF or NOR boot mode
21966 * RBL - ROM bootloader
21967 BTSEL[1:0] = 00, ARM NAND boot
21968 BTSEL[1:0] = 11, ARM UART boot
21969 BTSEL[1:0] = 10, Reserved
21971 Not support for full firmware boot. instead copies 2nd stage UBL (user
21972 bootloader) from NAND to ARM internal RAM. The UBL up to 14KB size.
21973 So, if BTSEL[1:0]==00 (from BOOTCFG register), NAND mode executes. This boot
21974 mode assumes the NAND is located on the EM_CS2 interface, whose bus width is
21975 controled by the external EM_WIDTH pin at reset.
21976 The RBL uses the state of EM_WIDTH pin from BOOTCFG register to determine the
21977 access size to be used when reading data from NAND.
21978 1st, the device ID is read from the device. Any needed access info obtained
21979 from device inoformation table in the RBL. Then the RBL searches for the UBL
21980 descriptor in page 0 of the block, after CIS/IDI block.
21981 To validate UBL, the UBL signature is read. If a valid UBL is not found, the
21982 next block is searched. This will continues up to 5 blocks.
21987 start.S (cpu/arm926ejs/)
21988 |-> start_armboot() (lib_arm/board.c)
21989 | |-> cpu_init() (cpu/arm926ejs/cpu.c)
21991 | |-> board_init() (board/davinci/davinci.c)
21993 | | |-> davinci_psc_all_enable() - power on required peripherals,
21994 | | | turns on all clocks in the ALWAYSON and DSP power domains.
21995 | | |_> inittimer() (board/davinci/timer.c)
21997 | |-> interrupt_init() (cpu/arm926ejs/interrupts.c)
21999 | |-> env_init() (common/env_nand.c) - just set env to valid, cause called
22000 | | before nand_init()
22002 | |-> init_baudrate() (lib_arm/board.c)
22003 | | |-> getenv_r() (common/cmd_nvedit.c)
22004 | | | |-> env_get_char() (common/env_common.c)
22006 | |-> serial_init()
22008 | |-> console_init_f()
22010 | |-> display_banner() (lib_arm/board.c) - show address of _armboot_start,
22011 | | _bss_start and _bss_end from (cpu/arm926ejs/start.S)
22013 | |-> dram_init() (board/davinci/davinci.c) - set global value of SDRAM start
22016 | |-> display_dram_config() (lib_arm/board.c) - shows info set by dram_init()
22018 | |-> flash_init() (board/davinci/flash.c) - setup flash_info and returns
22019 | | | size of FLASH
22020 | | |_> flash_protect() (common/flash.c)
22021 | | |_> flash_real_protect() (drivers/cfi_flash.c)
22023 | |-> display_flash_config()
22025 | |-> mem_malloc_init() (lib_arm/board.c) - prepare chunk of memory for
22028 | |-> nand_init() (board/davinci/davinci.c)
22029 | | |_> nand_probe()
22031 | |-> env_relocate() (common/env_common.c)
22033 | |-> get IP addr from env
22037 | |-> devices_init() (common/devices.c) - init list of devices
22038 | | |->i2c_init() (drivers/davinci_i2c.c)
22041 | |-> jumptable_init() (common/exports.c)
22043 | |-> console_init_r() (common/console.c)
22045 | |-> misc_init_r() (board/davinci/davinci.c)
22046 | | prints - `ARM Clock' 'n' `DDR Clock'
22048 | |-> enable_interrupts() (cpu/arm926ejs/interrupts.c)
22050 | |-> emac_set_mac_addr() - (board/davinci/dm644x_emac.c) network card init
22052 | |_> main_loop() (common/main.c)
22055 video driver - drivers/video/davincifb.c
22056 uboot on pc x86 {{{
22058 1. How to load it? Like GRUB, the same.
22062 building minimo {{{
22064 The purpose to build Minimo for davinci, where 1st to do it on MVP(mediaware).
22065 1. Build on MVP w/ X, check for footprint and dependencies
22066 2. Build w/o X (may be NanoX), w/ GTK and DirectFB, check for footprint and
22069 Building Minimo from CVS (10jul2006 see cmn.txt)
22071 1. Build minimo + GTKDFB on x86
22072 Files with gdkx {{{
22073 gfx/src/gtk/nsNativeThemeGTK.cpp
22074 gfx/src/gtk/nsRenderingContextGTK.cpp
22075 gfx/src/gtk/nsImageGTK.cpp
22076 gfx/src/gtk/mozilla-decoder.cpp
22077 gfx/src/gtk/nsScreenGtk.cpp
22078 modules/plugin/base/src/nsPluginHostImpl.cpp
22079 modules/plugin/base/src/ns4xPluginInstance.cpp
22080 modules/plugin/base/src/ns4xPlugin.cpp
22081 toolkit/components/remote/nsGTKRemoteService.h
22082 modules/plugin/base/src/nsPluginHostImpl.cpp
22083 modules/plugin/base/src/ns4xPluginInstance.cpp
22084 toolkit/components/remote/nsGTKRemoteService.h
22085 widget/src/gtk2/nsClipboard.cpp
22086 widget/src/gtk2/nsWindow.h
22087 widget/src/gtk2/nsWindow.cpp
22089 Unresolved symbols {{{
22091 gdk_x11_drawable_get_xid
22092 gdk_x11_drawable_get_xdisplay
22093 gdk_x11_visual_get_xvisual
22095 gdk_x11_get_default_screen
22096 gdk_x11_xatom_to_atom
22097 gdk_x11_atom_to_xatom
22098 gdk_x11_get_xatom_by_name
22100 gdk_x11_image_get_ximage
22101 gdk_x11_colormap_get_xcolormap
22103 Remove `-lX11' from config/autoconf.mk brings follows {{{
22115 XGetWindowAttributes
22128 Follows canceled by removing xremoteclient and gtkxtbin {{{
22133 XtDisplayToApplicationContext
22135 XtRemoveEventHandler
22144 XtToolkitInitialize
22145 XtCreateApplicationContext
22146 XtAppSetFallbackResources
22148 XtUnregisterDrawable
22152 compositeWidgetClass
22153 applicationShellWidgetClass
22158 widget/src/gtkxtbin/gtk2xtbin.c
22159 gfx/src/gtk/nsDeviceContextGTK.cpp
22160 gfx/src/gtk/nsDrawingSurfaceGTK.cpp
22161 gfx/src/gtk/nsImageGTK.cpp
22162 gfx/src/gtk/nsGCCache.cpp
22163 gfx/src/gtk/nsRenderingContextGTK.cpp
22164 gfx/src/gtk/nsScreenGtk.cpp
22165 gfx/src/gtk/nsScreenManagerGtk.cpp (removed)
22166 gfx/src/gtk/nsNativeThemeGTK.cpp
22167 widget/src/gtk2/nsWindow.h
22168 widget/src/gtk2/nsWindow.cpp
22169 widget/src/gtk2/nsGtkKeyUtils.cpp
22170 widget/src/gtk2/nsClipboard.cpp
22171 widget/src/gtk2/nsDragService.cpp
22172 toolkit/components/remote/nsGTKRemoteService.cpp
22173 toolkit/components/remote/nsGTKRemoteService.h
22175 gfx/idl/nsIFreeType2.idl
22176 gfx/src/freetype/nsFreeType.h
22177 gfx/src/freetype/nsFreeType.cpp
22178 Can't see nsIFontEnumerator
22179 gfx/src/gtk/nsGfxFactoryGTK.cpp
22180 Usage pango/pangox.h
22181 gfx/src/gtk/nsDeviceContextGTK.cpp
22182 Can't see PRUint32 and nsresult
22183 gfx/src/gtk/nsFontMetricsUtils.cpp
22184 undefined reference to nsFT2FontCatalog::nsFT2FontCatalog()
22185 gfx/src/gtk/Makefile.in
22187 Build browser from src ff-1.5.0.6 based gtkdfb {{{
22189 get firefox-1.5.0.6-source.tar.bz2
22190 tar jxf firefox-1.5.0.6-source.tar.bz2
22193 export LD_LIBRARY_PATH=
22194 export PKG_CONFIG_PATH=
22195 make -f client.mk build
22196 Have to disable MOZ_X11 and unselect gtkxtbin module. changed files:
22197 mozilla/Makefile.in
22199 mozilla/widget/src/Makefile.in
22200 mozilla/toolkit/library/Makefile.in
22201 mozilla/modules/plugin/base/src/Makefile.in
22202 Changes call to gdkx.h and pangox.h
22203 gfx/src/gtk/nsDeviceContextGTK.cpp
22204 gfx/src/gtk/nsDrawingSurfaceGTK.cpp
22205 gfx/src/gtk/nsImageGTK.cpp
22206 gfx/src/gtk/nsGCCache.cpp
22207 gfx/src/gtk/nsRenderingContextGTK.cpp
22208 gfx/src/gtk/nsScreenGtk.cpp
22209 gfx/src/gtk/nsScreenManagerGtk.cpp (removed)
22210 Can't see nsIFontEnumerator (add `#include "nsIFontEnumerator.h"')
22211 gfx/src/gtk/nsGfxFactoryGTK.cpp
22212 Can't see PRUint32 and nsresult
22213 gfx/src/gtk/nsFontMetricsUtils.cpp
22214 Changes call to gdkx.h
22215 gfx/src/gtk/nsNativeThemeGTK.cpp
22218 Build browser (ff-1.5.0.6) based xlib {{{
22220 get firefox-1.5.0.6-source.tar.bz2
22221 tar jxf firefox-1.5.0.6-source.tar.bz2
22224 make -f client.mk build
22225 Change `configure' to accept xlib+xft
22227 gfx/idl/nsIFreeType2.idl
22228 gfx/src/freetype/nsFreeType.h
22229 gfx/src/freetype/nsFreeType.cpp
22232 Build ??? based cairo-gtk2 on trunk {{{
22235 mozilla/gfx/idl/nsIFreeType2.idl
22236 mozilla/gfx/src/freetype/nsFreeType.h
22237 gfx/src/freetype/nsFreeType.cpp
22239 Build minimo based xlib toolkit w/ NanoX {{{
22241 Done Minimo based xlib toolkit. After changing LibX11.so original to one from
22242 microwindows projects follow undefined references appeare
22243 libXt.so: undefined reference to `XFindContext'
22244 libXt.so: undefined reference to `XDisplayOfScreen'
22245 libXt.so: undefined reference to `XSetSelectionOwner'
22246 libXt.so: undefined reference to `XDeleteContext'
22247 libXt.so: undefined reference to `XConvertSelection'
22248 libXt.so: undefined reference to `XUngrabButton'
22249 libXt.so: undefined reference to `XNextRequest'
22250 libXt.so: undefined reference to `XGetSelectionOwner'
22251 libXt.so: undefined reference to `XGrabButton'
22252 libXt.so: undefined reference to `XListDepths'
22253 libXt.so: undefined reference to `XkbLookupKeySym'
22254 libXt.so: undefined reference to `XGrabKey'
22255 libXt.so: undefined reference to `XSaveContext'
22256 libXt.so: undefined reference to `XUngrabKey'
22259 Resolve stubbing for X funcs in minimo {{{
22261 XSetErrorHandler done {{{
22263 1 embedding/browser/gtk/tests/TestGtkEmbedChild.cpp
22264 2 widget/src/gtk2/nsNativeThemeGTK.cpp
22266 Changed in 1, calling to gdk_error_trap_pop() and gdk_error_trap_push()
22268 XCheckWindowEvent done {{{
22270 1 widget/src/gtk2/nsWindow.cpp
22271 Cause this call to get all motion events from X queue, so not needed.
22273 XCheckIfEvent done {{{
22274 Bool XCheckIfEvent(Display *display, XEvent *event_return,
22275 Bool (*predicate)(), XPointer arg);
22276 Checks if match found, by calling predicate function, copies event and remove
22279 1 widget/src/gtk2/nsClipboard.cpp
22281 XAllocClassHint XSetClassHint XFree done {{{
22282 1 widget/src/gtk2/nsWindow.cpp
22285 XGetInputFocus XSetInputFocus done {{{
22286 1 widget/src/gtk2/nsWindow.cpp
22289 XGetWindowAttributes done {{{
22290 1 widget/src/gtk2/nsWindow.cpp
22295 1 widget/src/gtk2/nsWindow.cpp
22296 2 widget/src/xremoteclient/XRemoteClient.cpp
22297 3 widget/src/xlibxtbin/xlibxtbin.cpp
22298 4 widget/src/gtk/nsWindow.cpp
22299 5 widget/src/gtk/nsPointerService.cpp
22300 6 widget/src/gtksuperwin/gdksuperwin.c
22301 7 widget/src/gtkxtbin/gtk2xtbin.c
22302 8 widget/src/gtkxtbin/gtkxtbin.c
22303 9 gfx/src/thebes/nsThebesDeviceContext.cpp
22310 To define multiplatform video API can be applied to general set-top box.
22311 The API offers full display path that manages the contents to be displayed
22312 from the source to the output through scalers, mixers and routers.
22314 The scaler alternates the size of a picture. There are number of scalers
22315 depends by it's output purpose.
22317 Primary video scaler
22318 Secondary video scaler
22321 Graphics accelerator
22323 The mixer combines and positiones pictures from different scalers. The picture
22324 from any source (scaler) goes to positioning, prioritizing and finaly blending.
22325 The router assignes mixer to proper output.
22328 porting DFB to sigma8634 {{{
22330 source sigma8634.src
22331 export PREFIX=/opt/sigma8634/dfb
22332 export EPREFIX=/mnt/dfb
22335 Delete `AC_FUNC_MALLOC' from configure.ac
22338 Fixed builds/exports.mk in order to use apinames tool in cross compile
22342 Fixed include/asm/page.h to get PAGE_SIZE out of _KERNEL_
22343 Fixed configure.in in order to use libpng-config tool. Patch sent 03oct2006
22344 and accepted from 05oct2006
22347 svn commit -m "preliminary sigma8634 release"
22348 svn copy http://192.168.2.227/kernelrep/generic/zlib/trunk http://192.168.2.227/kernelrep/generic/zlib/tags/0.1 -m "tagging zlib 0.1"
22349 svn copy http://192.168.2.227/kernelrep/generic/libpng/trunk http://192.168.2.227/kernelrep/generic/libpng/tags/0.1 -m "tagging libpng 0.1"
22350 svn copy http://192.168.2.227/kernelrep/generic/freetype/trunk http://192.168.2.227/kernelrep/generic/freetype/tags/0.1 -m "tagging freetype 0.1"
22351 svn copy http://192.168.2.227/kernelrep/generic/directfb/trunk http://192.168.2.227/kernelrep/generic/directfb/tags/0.1 -m "tagging DirectFB 0.1"
22352 svn import /home/gxk/prjs/scripts/creator http://192.168.2.227/kernelrep/generic/creator/trunk -m "import initial"
22353 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/generic/creator/tags
22354 svn copy http://192.168.2.227/kernelrep/generic/creator/trunk http://192.168.2.227/kernelrep/generic/creator/tags/0.1 -m "tagging creator 0.1"
22357 Add jpeg-6b to creator.sh
22360 porting GTK (based DFB) to sigma8634 {{{
22362 Insert all source in subversion {{{
22364 svn import /home/gxk/prjs/sigma8634/directfb/fontconfig-2.3.96 http://192.168.2.227/kernelrep/vendors/fontconfig/trunk -m "import initial 2.3.96 vendor drop"
22365 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/vendors/fontconfig/tags
22366 svn copy http://192.168.2.227/kernelrep/vendors/fontconfig/trunk http://192.168.2.227/kernelrep/vendors/fontconfig/tags/2.3.96 -m "tagging fontconfig 2.3.96"
22367 svn mkdir -m "making vendors directory" http://192.168.2.227/kernelrep/generic/fontconfig
22368 svn copy http://192.168.2.227/kernelrep/vendors/fontconfig/tags/2.3.96 http://192.168.2.227/kernelrep/generic/fontconfig/trunk -m "bringing fontconfig-2.3.96 into softier generic"
22369 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/generic/fontconfig/tags
22371 svn import /home/gxk/prjs/sigma8634/directfb/glib-2.12.2 http://192.168.2.227/kernelrep/vendors/glib/trunk -m "import initial 2.12.2 vendor drop"
22372 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/vendors/glib/tags
22373 svn copy http://192.168.2.227/kernelrep/vendors/glib/trunk http://192.168.2.227/kernelrep/vendors/glib/tags/2.12.2 -m "tagging glib 2.12.2"
22374 svn mkdir -m "making vendors directory" http://192.168.2.227/kernelrep/generic/glib
22375 svn copy http://192.168.2.227/kernelrep/vendors/glib/tags/2.12.2 http://192.168.2.227/kernelrep/generic/glib/trunk -m "bringing lib-2.12.2 into softier generic"
22376 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/generic/glib/tags
22378 svn import /home/gxk/prjs/sigma8634/directfb/libiconv-1.11 http://192.168.2.227/kernelrep/vendors/libiconv/trunk -m "import initial 1.11 vendor drop"
22379 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/vendors/libiconv/tags
22380 svn copy http://192.168.2.227/kernelrep/vendors/libiconv/trunk http://192.168.2.227/kernelrep/vendors/libiconv/tags/1.11 -m "tagging libiconv 1.11"
22381 svn mkdir -m "making vendors directory" http://192.168.2.227/kernelrep/generic/libiconv
22382 svn copy http://192.168.2.227/kernelrep/vendors/libiconv/tags/1.11 http://192.168.2.227/kernelrep/generic/libiconv/trunk -m "bringing libiconv-1.11 into softier generic"
22383 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/generic/libiconv/tags
22385 svn import /home/gxk/prjs/sigma8634/directfb/gettext-0.15 http://192.168.2.227/kernelrep/vendors/gettext/trunk -m "import initial 0.15 vendor drop"
22386 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/vendors/gettext/tags
22387 svn copy http://192.168.2.227/kernelrep/vendors/gettext/trunk http://192.168.2.227/kernelrep/vendors/gettext/tags/0.15 -m "tagging gettext 0.15"
22388 svn mkdir -m "making vendors directory" http://192.168.2.227/kernelrep/generic/gettext
22389 svn copy http://192.168.2.227/kernelrep/vendors/gettext/tags/0.15 http://192.168.2.227/kernelrep/generic/gettext/trunk -m "bringing gettext-0.15 into softier generic"
22390 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/generic/gettext/tags
22392 svn import /home/gxk/prjs/sigma8634/directfb/gtk+ http://192.168.2.227/kernelrep/vendors/gtk+/trunk -m "import initial 2.10.2 vendor drop"
22393 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/vendors/gtk+/tags
22394 svn copy http://192.168.2.227/kernelrep/vendors/gtk+/trunk http://192.168.2.227/kernelrep/vendors/gtk+/tags/2.10.2 -m "tagging gettext 2.10.2"
22395 svn mkdir -m "making vendors directory" http://192.168.2.227/kernelrep/generic/gtk+
22396 svn copy http://192.168.2.227/kernelrep/vendors/gtk+/tags/2.10.2 http://192.168.2.227/kernelrep/generic/gtk+/trunk -m "bringing gtk+-2.10.2 into softier generic"
22397 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/generic/gtk+/tags
22399 svn import /home/gxk/prjs/sigma8634/directfb/pango http://192.168.2.227/kernelrep/vendors/pango/trunk -m "import initial 1.13.3 vendor drop"
22400 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/vendors/pango/tags
22401 svn copy http://192.168.2.227/kernelrep/vendors/pango/trunk http://192.168.2.227/kernelrep/vendors/pango/tags/1.13.3 -m "tagging gettext 1.13.3"
22402 svn mkdir -m "making vendors directory" http://192.168.2.227/kernelrep/generic/pango
22403 svn copy http://192.168.2.227/kernelrep/vendors/pango/tags/1.13.3 http://192.168.2.227/kernelrep/generic/pango/trunk -m "bringing pango-1.13.3 into softier generic"
22404 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/generic/pango/tags
22406 svn import /home/gxk/prjs/sigma8634/directfb/atk http://192.168.2.227/kernelrep/vendors/atk/trunk -m "import initial 1.9.1 vendor drop"
22407 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/vendors/atk/tags
22408 svn copy http://192.168.2.227/kernelrep/vendors/atk/trunk http://192.168.2.227/kernelrep/vendors/atk/tags/1.9.1 -m "tagging gettext 1.9.1"
22409 svn mkdir -m "making vendors directory" http://192.168.2.227/kernelrep/generic/atk
22410 svn copy http://192.168.2.227/kernelrep/vendors/atk/tags/1.9.1 http://192.168.2.227/kernelrep/generic/atk/trunk -m "bringing atk-1.9.1 into softier generic"
22411 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/generic/atk/tags
22413 svn import /home/gxk/prjs/sigma8634/directfb/cairo http://192.168.2.227/kernelrep/vendors/cairo/trunk -m "import initial 1.2.4 vendor drop"
22414 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/vendors/cairo/tags
22415 svn copy http://192.168.2.227/kernelrep/vendors/cairo/trunk http://192.168.2.227/kernelrep/vendors/cairo/tags/1.2.4 -m "tagging gettext 1.2.4"
22416 svn mkdir -m "making vendors directory" http://192.168.2.227/kernelrep/generic/cairo
22417 svn copy http://192.168.2.227/kernelrep/vendors/cairo/tags/1.2.4 http://192.168.2.227/kernelrep/generic/cairo/trunk -m "bringing cairo-1.2.4 into softier generic"
22418 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/generic/cairo/tags
22420 svn import /home/gxk/prjs/sigma8634/directfb/libxml2-2.6.26 http://192.168.2.227/kernelrep/vendors/libxml2/trunk -m "import initial 2.6.26 vendor drop"
22421 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/vendors/libxml2/tags
22422 svn copy http://192.168.2.227/kernelrep/vendors/libxml2/trunk http://192.168.2.227/kernelrep/vendors/libxml2/tags/2.6.26 -m "tagging libxml2 2.6.26"
22423 svn mkdir -m "making vendors directory" http://192.168.2.227/kernelrep/generic/libxml2
22424 svn copy http://192.168.2.227/kernelrep/vendors/libxml2/tags/2.6.26 http://192.168.2.227/kernelrep/generic/libxml2/trunk -m "bringing libxml2-2.6.26 into softier generic"
22425 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/generic/libxml2/tags
22427 svn import /home/gxk/jpeg-6b http://192.168.2.227/kernelrep/vendors/jpeg/trunk -m "import initial v6b vendor drop"
22428 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/vendors/jpeg/tags
22429 svn copy http://192.168.2.227/kernelrep/vendors/jpeg/trunk http://192.168.2.227/kernelrep/vendors/jpeg/tags/v6b -m "tagging jpeg v6b"
22430 svn mkdir -m "making vendors directory" http://192.168.2.227/kernelrep/generic/jpeg
22431 svn copy http://192.168.2.227/kernelrep/vendors/jpeg/tags/v6b http://192.168.2.227/kernelrep/generic/jpeg/trunk -m "bringing jpegv6b into softier generic"
22432 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/generic/jpeg/tags
22434 svn import /home/gxk/tiff-3.7.4 http://192.168.2.227/kernelrep/vendors/tiff/trunk -m "import initial 3.7.4 vendor drop"
22435 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/vendors/tiff/tags
22436 svn copy http://192.168.2.227/kernelrep/vendors/tiff/trunk http://192.168.2.227/kernelrep/vendors/tiff/tags/3.7.4 -m "tagging tiff 3.7.4"
22437 svn mkdir -m "making vendors directory" http://192.168.2.227/kernelrep/generic/tiff
22438 svn copy http://192.168.2.227/kernelrep/vendors/tiff/tags/3.7.4 http://192.168.2.227/kernelrep/generic/tiff/trunk -m "bringing tiff-3.7.4 into softier generic"
22439 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/generic/tiff/tags
22441 Package dependencies:
22464 porting Minimo (based GTKDFB) on sigma8634 {{{
22466 1. added libIDL to creator
22467 Insert source to subversion {{{
22468 svn import /home/gxk/libIDL-0.8.7 http://192.168.2.227/kernelrep/vendors/libIDL/trunk -m "import initial 0.8.7 vendor drop"
22469 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/vendors/libIDL/tags
22470 svn copy http://192.168.2.227/kernelrep/vendors/libIDL/trunk http://192.168.2.227/kernelrep/vendors/libIDL/tags/0.8.7 -m "tagging libIDL 0.8.7"
22471 svn mkdir -m "making vendors directory" http://192.168.2.227/kernelrep/generic/libIDL
22472 svn copy http://192.168.2.227/kernelrep/vendors/libIDL/tags/0.8.7 http://192.168.2.227/kernelrep/generic/libIDL/trunk -m "bringing libIDL-0.8.7 into softier generic"
22473 svn mkdir -m "making tags directory" http://192.168.2.227/kernelrep/generic/libIDL/tags
22476 Source from Ady (before Tal's update)
22477 svn copy http://192.168.2.227/appsrep/Main/trunk/browsers/mozilla/tvmo -r 2289 http://192.168.2.227/appsrep/Main/branches/browsers/mozilla/tvmo-gxk
22478 svn co http://192.168.2.227/appsrep/Main/branches/browsers/mozilla/tvmo-gxk
22480 Host package dependencies:
22483 Patch to minimo to build host_xpidl under PKG_CONFIG_PATH
22485 cp gtk+/gdk/x11/gdkx.h /opt/sigma8634/gtkdfb/include/gtk-2.0/gdk/gdk-gxk.h
22486 mkdir /opt/sigma8634/tvmo/include/X11
22487 cp /usr/include/X11/{Xatom.h,Xlib.h,Xutil.h,X.h,Xfuncproto.h,Xosdefs.h} /opt/sigma8634/tvmo/include/X11
22489 In order to build minimo needed:
22490 set MOZCONFIG, LD_LIBRARY_PATH, PKG_CONFIG_PATH
22492 . ../sigma8634/smp86.env
22493 export PREFIX=/opt/sigma8634/tvmo
22494 export RT_PREFIX=/mnt/tvmo
22501 New mozilla port to Sigma8634 {{{
22505 <toolchain>/toolchain/uClibc/Config.in
22506 <toolchain>/toolchain/uClibc/uClibc.config-locale
22507 <rootfs>/toolchain/uClibc/uClibc.config
22508 <mrua>/MRUA_src/rua/emhwlib_kernel/kernel_src/em8xxx_fb.c
22509 <mrua>/lib/{librmjpeg.so,librmhttp.so, libsamples.so}
22512 gettext (gettext-tools/lib/Makefile.in,gettext-tools/m4/Makefile.in)
22513 jpeg (changed creator.sh - make libtool)
22525 gtk (gtk+/gtk/Makefile.in)
22527 Fontconfig configuration.
22528 cp from FC5 /etc/fonts and /usr/share/fonts and set
22529 export FONTCONFIG_PATH=/etc/fonts
22530 sudo cp -r /etc/fonts /opt/sigma8634/142/nfsroot/etc/
22531 sudo cp -r /usr/share/fonts /opt/sigma8634/142/nfsroot/usr/share/
22534 mkdir /opt/sigma8634/142/gtkdfb/lib/pango/1.5.0/modules
22535 cp -r /mnt/tvmo/lib/pango/1.5.0/modules/* /opt/sigma8634/tvmo/lib/pango/1.5.0/modules/
22536 mkdir /opt/sigma8634/tvmo/etc/pango
22537 /mnt/tvmo/bin/pango-querymodules > /opt/sigma8634/tvmo/etc/pango/pango.modules
22541 XPTCall asm mips changes (from bug #258429)
22542 mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in
22543 mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s
22544 mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp
22545 mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s
22547 Fix link w/ libpipboot.a
22548 mozilla/minimo/base/linux/minimo-link-comps
22550 Just Ady's leftovers
22551 mozilla/minimo/base/Minimo.cpp
22556 1. Add libtiff to creator
22558 3. Add `--[no]deps' - build w/ or w/o dependencies
22559 4. cancel use of softier.cache in glib (causing to collision with configuration
22564 Gnash site: http://www.gnu.org/software/gnash/
22566 Getting Gnash from CVS
22567 export CVS_RSH="ssh"
22568 cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/gnash co gnash
22571 Checkout source from CVS at 02jan2007
22573 ./configure --prefix=/opt/x86/gnash --with-plugindir=/opt/x86/gnash/plugin
22574 ./configure --prefix=/opt/x86/gnash --with-plugindir=/opt/x86/gnash/plugin --enable-gui=SDL --enable-sound=SDL
22576 -------------------------------------------------------------------------------
22577 ----------------------------------- Sphera ------------------------------------
22578 -------------------------------------------------------------------------------
22579 I. #300000/238 qpopper in server mode(see cmn.txt){{{
22581 This mail determined to try answer question about Qpopper in server mode and
22582 to give procedures how to run Qpopper in server mode.
22584 1. What are the contributions and restrictions of server mode ?
22585 Reduces th I/O usage where users download and delete all their messages
22586 and by avoiding initial scan of pool when session starts (mail check time).
22587 Also, from Sphera point of view, it is not creates temporary file.
22588 The known restrictions or misbehaviours are
22589 Usage of a mailbox by Qpopper and any other application
22590 simulteniously can damage emails content.
22592 2. Is it good practice to start qpopper at server mode by default ?
22594 Server mode should be given for users with disk quota
22595 or performance problems. The main problem with other applications
22596 using the same files that can corrupt email data.
22598 3. What can de done now and quickly ?
22599 Possible to implement in any way (GUI/command line) server mode
22600 and advise for customers w/ disk usage or responce time problems
22603 4. How to run Qpopper in server mode? (procedures)
22605 a. To run Qpopper for all VDSs of HostingDirector in server mode needs
22606 to change in hostdir.xml
22607 Under <services> - <service> for name="pop" find under <mode
22608 property param="-f /etc/.qpopper-options" and change to
22609 param="-S -f /etc/.qpopper-options" ( uppercase '-S' added )
22611 b. To run Qpopper for certain VDS needs to change file named
22612 .qpopper-options under <VDS owner home dir>/etc
22613 Just add new line as follows:
22614 set server-mode=true
22616 NOT INCLUDED IN ANSWER cause no procedure to create groups of users in VDS
22618 c. There is possibility to run in server mode for just a group of users.
22619 Needs to add in file .qpopper-options (same as in previous 4.b) folows:
22620 --enable-server-mode-group-include=<group name>
22622 The oposit exists also. When needed to exclude group of users from running
22623 Qpopper in server mode also to add in the same file follows:
22624 --enable-server-mode-group-exclude=<group name>
22627 from http://www.eudora.com/qpopper/faq.html#server_mode
22628 What is server mode?
22629 --------------------
22630 Server mode makes an assumption that the spool file is only altered by
22631 Qpopper or the local delivery agent (for example, mail.local).
22632 This means that, apart from Qpopper, the spool file is only changed
22633 when new mail is appended to the end.
22634 Server Mode reduces I/O on sessions that:
22635 # delete all mail on the server
22636 # leave all the mail on the server
22637 In other words, transactions that delete all or none of the messages.
22638 In normal mode, the mail spool is copied into a temporary file at the
22639 beginning of the session. Once the session is complete, the undeleted
22640 messages are copied back to the mail spool.
22641 In Server Mode this copying is avoided if all of the messages are
22642 deleted or all of the messages are left on the server.
22645 Do not enable server mode for users who telnet to the mail server and
22646 access the mail spool directly, or run local programs which access the
22651 II. #200018/8 ftpd w/ restricted passive ports{{{1
22653 III. #200030/25 mysql down{{{1
22654 change VDS's rc script to log everything. to script ~herman/etc/rc.d/rc
22656 TIMESTAMP=`date +%Y%m%d%I%M%S`
22657 LOGFILE="/var/log/appl.log-$TIMESTAMP"
22658 and changed follows:
22659 $Sfile start >> $LOGFILE
22660 $Sfile stop >> $LOGFILE
22663 The script ~herman/etc/rc.d/rc changed back to orig
22664 At ~herman/usr/local/mysql/bin
22665 rm safe_mysqld // it was my program to catch signals
22666 mv safe_mysqld2 safe_mysqld
22669 IV. #300000/135 implementation APOP{{{1
22671 APOP command is POP3 protocol optional feature even that it is fully acceptable
22672 by POP3 protocol standard. Our implementation should consider follows steps:
22673 --- Steps needed for both types of VDS
22674 1. Compilation of qpopper w/ new optoins (required to enable APOP)
22675 2. Changing VDS installation procedure in order to initialize popd
22676 authentication database file
22677 3. Changing procedure of adding new VDS user (needs to add it to
22679 --- Steps needed only for shared IP VDS
22680 4. Change procedure of getting popd prompt
22681 5. Change flow of commands for APOP connectivity
22683 a. Need to find all timeout options for APOP command
22684 b. Need more time to try other email clients to check there compatibility
22687 answers for questions
22689 1. The only one binary of popd needed to support current configuration and APOP option
22690 2. The initialization example: popauth -init -safe
22691 The update example: popauth -user <username> <password>
22692 3. POP server should give prompt w/ special string which tells to client that APOP supported
22693 Base on that client sends APOP command contains username and encrypted string.
22694 So, we can take username and find out VDS name. In that scenario there is no need for any
22695 manage/cache of user unique ID.
22696 4. NeoMail doesn't support APOP (not speaks w/ qpopper at all). Also not supported by:
22697 Netscape, MS Outlook express, IncrediMail
22698 Supported by Kmail (from KDE package) and Eudora
22699 Seems like APOP is too old authentication mechanism, so todays clients supports more
22700 sophisticated authentications.
22702 6. There is no influence on POP before SMTP
22705 I. External source{{{3
22707 1. Need to recompile qpopper w/ additional options and patch (see IV.3)
22708 --enable-apop=/etc/pop.auth --enable-popuid=sphera_pop
22710 2. Need to change extsrc/qpopper/make/build.sh to add above options.
22712 3. Have to copy to the source 2 files popd, popauth.
22714 II. Installation procedure{{{3
22716 x 1. Every VDS would have, by default, new system user sphera_pop.
22717 Need to add to passwd and shadow files, in continuus under
22718 templates/vs/etc, which placed under <SD home>/vs/t_1/etc
22719 Linux forbides creation 2 users w/ the same name, so have to prevent it
22722 x 2. Every VDS would have file .qpopper-options w/ new line as follows:
22723 set clear-text-password=always
22724 Add .qpopper-options to continuus under templats/vs/etc and add to
22725 make/install.mak follows (seperate task #14184):
22726 /bin/cp ${SRC}/templates/vs/etc/.qpopper-options \
22727 ${DST}/hostdir/vs/t_1/etc/.qpopper-options; \
22728 /bin/chown 1000:100 ${DST}/hostdir/vs/t_1/etc/.qpopper-options; \
22729 /bin/chmod 644 ${DST}/hostdir/vs/t_1/etc/.qpopper-options; \
22731 3. Check that every VDS should have, by default, follows hardlinks
22732 to <SD home>/vs/t_1/bin/popd, to <SD home>/vs/t_1/bin/popauth and
22733 apop db file etc/pop.auth
22735 III. Manager changes{{{3
22737 1. Should prevent creation of VDS or VDS users w/ name sphera_pop.(Ilya)
22739 2. New VDS property apop_enabled="false" would shows if APOP enabled for
22740 current VDS. In hostdir.xml under account_template node to add
22741 apop_enabled="false"
22743 3. When add/set VDS or add/set/del user account occures needed to run
22744 powerscript to update apop db.
22745 The CAccountUtil::UpdateAPopDb() (added to manager/CAccountUtils.cc)
22746 calles powerscript to add/set/del users. It would do it if
22747 plain_password property exists in cmd and apop_enabled=true.
22748 It called by follows:
22749 CAccountDataBase::Add_Account() directly to add VDS user.
22750 On error returns error, so adding VDS failes.
22751 CAccountDataBase::SetVUser() throw internal procedure (actualy
22752 calls CUserAccountDataBase::Preform() which calls Set() ) only
22753 if user password changed.
22754 The next funcs from CUserAccountDataBase. Here have to add
22755 apop_enabled VDS property to the cmd. It is done by
22756 CUserAccountDataBase::GetServer() and also for not saving
22757 this property at user account changed hostdir.xml under
22758 \\sphera\\not_saves\\user_account added apop_enabled. So
22759 CUserAccountDataBase::Add() on error returns exception.
22760 CUserAccountDataBase::Set() called if user passwd changed. On
22761 error returns exception.
22762 CUserAccountDataBase::Del() On error debug returns message.
22763 The CAccountUtil::DeleteAPopDb() (added to manager/CAccountUtils.cc)
22764 calls powerscript to del VDS apop db. It is called only from one place
22765 CAccountDataBase::Set_Account() if apop_enabled changed to
22766 false. On error returns warning can't del apop db.
22768 4. Follows formatted messages added to messages/manager.msg used by III.3
22769 ADD_APOP_USER_FAILED = "Failed to add user to apop db" , TYPE_ERR, ST_CONFIG, ERR_ERROR;
22770 SET_APOP_USER_FAILED = "Failed to set user in apop db" , TYPE_ERR, ST_CONFIG, ERR_ERROR;
22771 DEL_APOP_USER_FAILED = "Failed to delete user in apop db" , TYPE_ERR, ST_CONFIG, ERR_ERROR;
22772 INIT_APOP_DB_FAILED = "Failed to initialize apop db", TYPE_ERR, ST_CONFIG, ERR_ERROR;
22774 ? 5. The GUI(Larik) should send plain password at every add/set/del of VDS or
22775 user account. Till 11dec02 it was nt_passwd not saved property and it
22776 would called plain_password. It triggers changes in hostdir.xml
22778 x 6. The plain text password of users need to add to APOP db, so plain_password
22779 property will be used and shouldn't be filtered out. Changes in
22780 CApiDataBase::ApiSet()
22782 x 7. The powerscript called ctlpopdb.py would get commanf from manager and run
22783 popauth under VDS in order to add/set/del users in apop db. The script
22784 named ctlpopdb.py and placed under <SD hoem>/bin/enhanced_services/
22785 Changes in hostdir.xml as follows:
22786 under server_management obj:
22788 ext_path="sphera\user_scripts\ctlpopdb"
22789 gui_visible="false"
22791 under user_scripts obj:
22794 script="bin/enhanced_services/ctlpopdb.pyc"
22795 template="sphera\script_template"/>
22797 If cmd=='add' and it is VDS, so init apop db before add VDS to it.
22798 If cmd=='set' and apop_cmd=='init', so only init apop db.
22800 1st, if apop_enabled="false", powerscript doing nothing. The PM decided
22801 that after changing apop_enabled="true" VDS owner should update apop db
22802 for exist users(11dec02).
22803 When apop_enabled="false" the apop db is empty, so every time openapi
22804 command changes apop_enable should replace VDS apop db w/ empty one.
22805 2nd, if apop_enabled="true", powerscript calls popauth utility to
22806 add/set/del users in apop db.
22807 The rollback send from powerscript only for add cmd. Others too
22811 IV. Sphera changes and qpopper patch{{{3
22813 x 1. Change in Sphera POP prompt. Add unique string at run time.
22814 cpopproxy.cc CPopProxy::GetClientInfo()
22816 CStringUtils.cc long2str() change to able to append not only overwrite.
22817 cservice.cc CService::SetPrompt()
22819 x 2. Change PopProxy commands flow where APOP command should be added.
22820 cpopproxy.hh static const string POP_APOP
22821 cpopproxy.cc in CPopProxy::GetClientInfo()
22822 MessageParser(user_domain, CPopProxy::POP_APOP)
22823 cbaseproxy.hh CBaseProxy
22825 Support of CAPA and AUTH. Will not done now, cause needed to research
22826 if answer will influence authentication flow.
22828 x 3. Patch to qpopper to find env param(SPHERA_POP_STR) w/ previously created
22829 unique string by PopProxy and replace the original qpopper unique
22831 Change Changes.txt!!!
22834 Bug fix: sphera_util.h strong_trim_domain() !!!take out from prj!!!!
22835 when VDS name contents domain name triming not workes.
22836 func will get delim,domain_name and will cut last found string
22837 delim+domain name for any VDS.
22838 !!!Should be notice in release
22839 notes Not to create regular VDSs or it's users w/ name contents
22840 delim+domain name string.
22842 V. Performance and drawbacks{{{3
22844 1. The APOP database size
22846 2. Performance of qpopper compiled w/ APOP
22848 VI. QA, API changes, help procedures{{{3
22850 APOP project API changes.
22852 The not saved nt_passwd property changed it's name to plain_password by
22853 Larik requirement. New VDS property apop_enabled w/ default value
22854 false. The new python script to control apop db added under
22855 server_management tag.
22856 There are changes in openapi commands. Each time not saved property
22857 passwd send should also be send property plain_password.
22858 The creation of VDS make new empty apop db and if apop_enabled equals
22859 true the VDS going to be added to it.
22860 When apop_enabled equals false nothing happened to apop db and with
22861 apop db actualy empty at that time gives us disabling APOP for the VDS.
22864 1. List of recommended tests for QA
22867 apop_enabled=true/false and change it.
22868 add/set/del VDS (ip based/name based)
22869 add/set/del user (ip based/name based)
22871 The APOP scenarious and where the example.
22872 -----------------------------------------------
22874 | |-------------------------------|
22875 | | false | true | change |
22876 ---------------|-------|-------|---------------|
22877 | | add | B | J | |
22878 | VDS | set | D | J | E |
22879 | | del | D | J | |
22880 -------|-------|-------|-------|---------------|
22881 | | add | C | F | |
22882 | User | set | D | H | G |
22883 | | del | D | I | |
22884 -----------------------------------------------
22886 Which email clients to use?
22887 The best to check w/ all APOP enable clients and at least
22888 those which uses client (call Yoram Goren).
22889 I can provide follows.
22890 Linux: Mozilla, Kmail
22891 Windows: Eudora (copy from w2k122/h/eudora5_2.exe) and
22892 Becky (copy from w2k122/h/bk20506.exe)
22894 A. SD installation check (all checks should be done right after
22896 The apop_enabled="false" should be in hostdir.xml
22897 Check existing of <SD name>/vs/t_1/etc/popd,
22898 <SD name>/vs/t_1/etc/popauth
22900 B. 1st VDS creation (all checks should be done right after VDS creation)
22901 Check existence of <VDS>/etc/.qpopper-options w/ line
22902 set clear-text-password=always
22903 Check existence of hardlink <VDS>/bin/popd and popauth
22904 Check existence of new system user named sphera_pop in
22905 <VDS>/etc/passwd and <VDS>/etc/shadow
22906 Run in VDS context follows: popauth -list ALL
22907 Shouldn't get anything at all, cause no APOP db file.
22910 Add VDS user (let's name it u1). Check that it is able to get
22912 Now, cause apop_enabled=false, so newly created user not in
22913 APOP db and it can get email only the plain way by providing
22914 username and password. Check that u1 can't get email by APOP.
22916 D. Everything when apop_enabled=false
22917 Till now have checked add of VDS and it's user. Check also
22918 set and del of VDS. The flow should be as follow
22919 create vds, set it password, add vds user, set vds user passwd,
22920 del vds user, del vds.
22921 At every stage have to check that any APOP email can't be
22924 E. Changing apop_enabled property.
22925 Our VDS (created at .B) should have apop_enabled="false". Now
22926 send openapi command to change apop_enabled to true (cmd:
22928 keys_path="sphera\accounts\rg1"
22929 apop_enabled="true"
22931 Create 2nd VDS and check that apop_enabled = false.
22932 Now, have 2 VDSs which have
22933 1st - apop_enabled=true
22934 2nd - apop_enabled=false
22936 F. Add user for VDS w/ apop_enabled=true
22937 The newly created users would have APOP ability. Lets check it.
22938 Add user (let's say u2) to 1st VDS and check that it can get
22940 So, 1st VDS have 3 users with follows apop abilities:
22941 vds owner can't get apop emails
22942 u1 can't get apop emails
22943 u2 can get apop emails
22945 G. Fix emails of old VDS users created when apop_enabled was false.
22946 There are 2 iof that kind email users for 1st VDS the VDS
22947 owner and u1 user. Both of them still can get email the old way
22948 not by APOP, cause they not in APOP db.
22949 They can be added by 2 ways. First, by changing user's
22950 password from GUI or OpenAPI; second, by explicitly adding
22951 user to APOP db. cmd:
22952 popauth -user <username> <password>
22953 Add VDS owner to APOP db by changing it's (VDS owner) password
22954 and add u1 to APOP db by adding it (u1) from command line.
22955 Now, have 1st VDS apop_enabled=true w/ 3 users able to get
22958 H. Changing users of 1st VDS.
22959 We have to check APOP functionality in add/set/del of VDS user
22960 commands. From .E, we did it for add of VDS user. Let's do it
22961 for set. Change password for u1 user and check that it still
22962 can get APOP email.
22964 I. Deleting users of 1st VDS.
22965 Let's check del user. Delete user u2 and check it can't get
22966 email anyway by APOP or by old fashion way (username/password).
22968 J. Special case VDS owner like email user.
22969 That user also should be checked for add/set/del commands.
22970 Cause VDS owner user created together w/ it's VDS, actualy we
22971 deal w/ VDS add/set/del
22972 The set of VDS already done by .F where VDS owner added to
22973 APOP db by changing it's password.
22974 The del of VDS. Let's del VDS and see that no email can be get.
22975 In order to check add VDS needs that newly created VDS have
22976 apop_enabled=true, but by default it is false. Lets stop HD
22977 and change under account_template property apop_enabled to
22978 true.Now start HD and create our 3rd VDS. It should be already
22979 apop_enabled=true and VDS owner can have emails by APOP. Also
22980 can see VDS owner in APOP db by running cmd:
22983 2. Checking w/ real client of customer. Which client used? (Yoram)
22985 3. Create help for customer
22987 VII. Open issues{{{3
22989 1. APOP db keeps passwords as plain text. Security problem? Can be prevent
22990 by common solution of creation password storage.
22992 2. APOP support in Windows application.
22994 3. The unique string created by Sphera for name-based VDS case doesn't have
22997 4. Who will run popauth root w/ chroot or VDS owner?
22998 If root, so VDS owner can't change db from cmdline, otherwise if VDS
22999 owner, so he can add itself to the apop db even apop_enabled='false'
23000 and qpopper would works w/ APOP.
23002 5. Should popauth be hardlink or not? (change at VI.1.B)
23006 V. #100056/3 VDS username contents domain name{{{1
23007 Problem found in patch function strong_trim_domain() (sphera_util.h)
23008 where scenario username contents(|equals) domain name causing bug.
23011 void strong_trim_domain (POP * p, char * q) {
23012 char vdsName[MAXHOSTNAMELEN * 2]; /* To cover the cases of white spaces */
23013 char *tmp=NULL,*tmp1, *tkn;
23016 fd = open("/etc/nodename", O_RDONLY);
23020 nLen = read(fd,vdsName,MAXHOSTNAMELEN * 2 - 1);
23026 tmp1 = strtok(vdsName," \t\n");
23030 if (strlen(tmp1) <= 0)
23033 tkn = strstr(q,tmp1);
23034 while(tkn != NULL) {
23037 tkn = strstr(tmp, tmp1);
23038 pop_log(p, POP_WARNING, HERE, "tmp trim: %s", tkn);
23043 else //There is nothing to takeof
23053 //We need to take of the vdsname from the name
23058 VI. Backup project{{{1
23061 from www.legato.com
23062 LEGATO NetWorker protects the critical business data by backup and
23063 recovery operations across Unix, Windows, Linux and NetWare platforms
23064 in DAS, NAS(Network Attached Storage), and SAN storage environments.
23065 With NetWorker Network Data Management Protocol (NDMP) Client
23066 Connection, Legato offers unparalleled protection for data stored on
23067 NDMP-based Network Attached Storage (NAS) devices. Backup and restore
23068 using the NDMP protocol is fast and reduces network traffic on a LAN or
23069 WAN. With the NetWorker architecture, one can enable a tape library to
23070 be shared among NetWorker Servers, Storage Nodes and NDMP-enabled NAS
23071 devices for simple, centralized media management.
23072 More about NDMP protocol www.ndmp.org
23074 How to backup w/ Legato?{{{3
23075 A. Starting nwadmin on backup server machine
23076 run 'xhost +' on linux machine
23077 login to backup server as root
23078 run 'nwadmin -display<ip of linux machine:0> &'
23079 B. Create group of clients
23080 1. from menu Customize->Groups
23084 1. from menu Media->Devices
23086 3. fill Name(like /export/home/file1), Media type(file)
23088 D. Create label templates
23089 1. from menu Customize->Label Templates
23091 3. fill Name, Fields ( like 000-999)
23094 1. from menu Media->Pools
23096 3. fill Name, Type (like backup), Label Template(choose
23097 previously created), Levels(unchecked)
23100 1. from menu open Customize->Schedules
23103 4. push everyday and change to full
23106 1. from menu open Client->Client Setup
23107 2. window Clients opened. Push Create button
23108 3. add Name, Schedule (previously created), Directive
23109 (Unix with compression directive)
23110 4. choose group (one of them previously created)
23111 5. fill save set (/export/home/tmp_bck and push add)
23114 1. push Label button
23115 2. fill Pool(anyway push)
23116 3. actualy mounted, so push GroupControl button
23117 4. window "Group Control" opened.
23118 5. button preview doing dry-run
23119 6. button start actualy starts backup
23121 How to recover w/ Legato{{{3
23123 backup device should be mounted
23124 run nwrecover as root
23126 recover -d <dest> -c <client machine> -s <server name>
23127 -i[N|Y|R] <path to dir>
23131 B. Sphera backup project{{{2
23135 This feature is procedure which provides full description
23136 how to backup/restore HD. The main idea is to provide
23137 ability to backup HD and to restore it at fully working
23140 ------------------------------------------------------
23141 | Title | Date(ver.) | Author |
23142 ------------------------------------------------------
23145 Product Functionality{{{4
23146 Major Functionalities - List
23147 Backup/Restore procedure of ServerDirector
23148 Specific Functionality Specifications
23149 The Backup/Restore procedure can be devided in follow
23150 steps: pre-backup, backup, restore, post-restore.
23151 The pre-backup step. Stop HD, named, crond and run
23152 pre-backup script to save info about HD's rpm installed.
23153 The backup step. Here, with file list provided,
23154 client can actualy to backup HD by any utility in his
23156 The restore step. In similar w/ backup step, client
23157 doing restore of HD.
23158 The post-restore step. Here needed to run utility,
23159 provided by Sphera that doing two things. Fixes hardlinks
23160 and restore records in rpm db of computer. HD can be
23161 started from this point.
23163 Design Constrains{{{4
23164 The only backup/restore that can't be done is when doing backup
23165 w/ Legato utility to HD w/ Legato PSP. There is mismatch of
23166 Legato versions where Legato PSP is 6.0.1 and Legato utility
23167 should be at least 6.1.2
23169 Assumptions & Dependencies{{{4
23170 The only assumption exists that backup would be after HD stoped.
23173 A. question about technology{{{4
23174 1. There are files that HD changes during it's lifetime.{{{5
23175 What to do at restore time to
23176 overwrite or to fix those files?
23177 Decided to overwrite files.(12nov2002)
23179 2. How to backup shared plugins?{{{5
23180 Have to backup/restore only HD or HD+shared plugins?
23181 Will create file lists to backup separatly for HD and each of
23182 shared plugins. Customer should check what to backup.
23183 (wishlist) Warning if doing backup w/o any of existing parts
23184 of HD (if doing backup only to HD in spite of installed PSP).
23186 3. The backup file list of HD w/o PSP{{{5
23188 <Accounts dir> if not under <HD dir>
23189 <Reseller dir> if not under <HD dir>
23192 /etc/sphera.netconf
23194 /etc/sphera.repository
23195 (slink to <Accounts dir>/.repository)
23204 /usr/bin/sphadmin (not on Sun)
23208 /etc/sysconfig/iptables
23211 /etc/sysconfig/clock
23213 aquota.user (one per filesystem)
23214 <sphera base mirror> (one per filesystem)
23216 4. The backup file list of PSPs{{{5
23222 /usr/local/openssh_sphera
23228 /opt/coldfusion[mx]
23229 /usr/lib/coldfusion
23239 /usr/bin/nwretrieve
23240 /usr/bin/preclntsave
23241 /usr/bin/pstclntsave
23245 /usr/lib/X11/app-defaults/Networker
23246 /usr/lib/nsr/C/nsr.help
23247 /usr/lib/nsr/de_de/nsr.help
23248 /usr/lib/nsr/gls/cm/registry
23249 /usr/lib/nsr/gls/lc/os/portable/C
23250 /usr/lib/nsr/poin.cln
23251 /usr/lib/nsr/product.res
23252 /usr/lib/nsr/prrm.cln
23257 /usr/sbin/nsr_shutdown
23258 /usr/sbin/nsr_support
23261 /usr/sbin/nsrarchive
23268 /usr/sbin/nsrndmp_2fh
23269 /usr/sbin/nsrndmp_recover
23270 /usr/sbin/nsrndmp_save
23271 /usr/sbin/nsrretrieve
23273 /usr/sbin/preclntsave
23274 /usr/sbin/pstclntsave
23279 /etc/rc.d/init.d/networker
23281 5. Legato client{{{5
23282 Not possible to install Legato client twice on the same comp. So cause
23283 the version of Legato provided as PSP is 6.0.1 but version of Legato
23284 for backup project 6.1.2 can't check backup/restore procedure for HD +
23286 Solution: to mention in release notes.
23288 6. How to backup RPM files of HD and UPs?{{{5
23289 The HD and UPs installed like RPM file w/ record in rpm db of
23290 the machine. So after restore there were no records about
23291 previously installations. Can't keep installed rpms, too big.
23293 Solution A: will keep all SPEC files of any Sphera rpm in order
23294 to find before backup which rpm installed and to create after
23295 restore those rpm (w/o files) in order to install them.
23298 per each rpm. This solution creates rpm db records which differ
23299 from original at follows: Install date,Build Date,Build Host.
23301 Solution B: To query rpm db with params which creates output to
23302 create SPEC file. After as previous solution. Follows the rpm
23303 queryformat to get all tags:
23304 rpm -q --queryformat "Name: %{NAME}\nSummary: %{SUMMARY}\n\
23305 Version: %{VERSION}\nRelease: %{RELEASE}\nVendor: %{VENDOR}\n\
23306 Group: %{GROUP}\nCopyright: %{COPYRIGHT}\nBuildroot: \
23307 %{BUILDROOT}" $pckg_name
23309 Decided to use solution B.(21nov2002)
23312 7. Files common used by Sphera, Dns and Master?{{{5
23313 There r files used by all (or >1) Sphera applications. They
23314 create problematic scenatious if installed on the same machine:
23315 install Sphera, DNS, Master on the same comp. They r editing
23316 files sphadmin or /etc/sphera.conf (may be more files). If to
23317 do backup, later to uninstall anyone of application and right
23318 after to do restore, so commonly used files will be rong state.
23320 8. How to fix hardlinks?{{{5
23321 If there is problem w/ hardlinks after restore fix needed.
23322 Solution(see cmn.txt): already exist script hardlinks_manager.pyc (ask Vitaly) that going
23323 throw lists of files (placed <sphera>/home/<vds name>), which content hardlinks
23327 B. questions about backup tools{{{4
23328 1. Which backup tools to consider?
23329 PM wants Legato (www.legato.com) and Veritas tools.
23330 2. Does backup tool accept file list?
23333 3. Does backup tool restore links?
23336 4. Backup/restore w/ files in use.
23339 5. How to run something before backup and after restore?
23342 6. Behaviour when backup target not exist?
23343 Legato. Sends message.
23345 7. Restore link when original file not exist?
23351 The Backup/Restore procedure is devided in follows
23352 steps: pre-backup, backup, restore, post-restore.
23354 I. The pre-backup step.
23355 1. stopping HostDirector
23356 Here, should run sphadmin utility w/ root permitions.
23357 It will bring up menu where to choose option:
23358 11 - HostingDirector - Stop
23359 2. stopping named utility
23360 Run /etc/rc.d/rc2.d/S99Snamed_hd stop w/ root permitions.
23362 Run /etc/rc.d/init.d/crond stop w/ root permitions.
23363 4. save additional information.
23365 <HD place>/bin/backup.sh -p
23366 which creates specification files of HD's RPMs in
23367 <HD place>/backup/specs This step also to do w/ root
23370 II. The backup step.
23371 Here, with file list provided below, client can actualy
23372 to backup HD by any utility in his possession.
23373 The HD common files required to backup:
23375 <Accounts dir> - if not under <HD base>
23376 <Reseller dir> - if not under <HD base>
23377 <HD base mirror> - in each partition where placed
23378 accounts if not under <HD base>
23379 aquota.user - in each partition where placed
23380 accounts if not under <HD base>
23383 /etc/sphera.netconf
23385 /etc/sphera.repository
23398 /etc/sysconfig/iptables
23401 /etc/sysconfig/clock
23403 Files needed to backup ChiliSoft PSP:
23407 Files needed to backup OpenSSH PSP:
23408 /usr/local/openssh_sphera
23409 Files needed to backup ColdFusion PSP:
23411 /usr/lib/coldfusion
23412 Files needed to backup ColdFusionMX PSP:
23414 /usr/lib/coldfusion
23415 Files needed to backup Legato PSP:
23424 /usr/bin/nwretrieve
23425 /usr/bin/preclntsave
23426 /usr/bin/pstclntsave
23430 /usr/lib/X11/app-defaults/Networker
23431 /usr/lib/nsr/C/nsr.help
23432 /usr/lib/nsr/de_de/nsr.help
23433 /usr/lib/nsr/gls/cm/registry
23434 /usr/lib/nsr/gls/lc/os/portable/C
23435 /usr/lib/nsr/poin.cln
23436 /usr/lib/nsr/product.res
23437 /usr/lib/nsr/prrm.cln
23442 /usr/sbin/nsr_shutdown
23443 /usr/sbin/nsr_support
23446 /usr/sbin/nsrarchive
23453 /usr/sbin/nsrndmp_2fh
23454 /usr/sbin/nsrndmp_recover
23455 /usr/sbin/nsrndmp_save
23456 /usr/sbin/nsrretrieve
23458 /usr/sbin/preclntsave
23459 /usr/sbin/pstclntsave
23464 /etc/rc.d/init.d/networker
23466 III. The restore step.
23467 In similar w/ backup step, client doing restore of HD
23468 w/ utility in his possession.
23470 IV. The post-restore step.
23471 1. Here, have to run utility for checking and fixing if needed,
23472 restored data. The utility also run under root permissions:
23473 <HD base>/plugins/bin/Spython <HD base>/bin/enhanced_services/hardlinks_manager.pyc cmd=set keys_path=sphera\\hardlinks
23474 It is checking for broken hardlinks and fix it. The result should look like:
23480 2. Restore additional information from pre-backup step.
23481 Also to run w/ root permission follows
23482 <HD base>/bin/backup.sh -r
23483 This utility will restore HD's rpm registrations.
23487 2d learning legato (12nov,13nov)
23488 1d how to intervent in backup process.
23491 /etc/rc.d/rc2.d/S99Snamed_hd stop
23492 /etc/rc.d/init.d/crond stop
23498 C. VDS backup project{{{2
23502 Product Scope & Definition
23503 Product Perspective
23505 ------------------------------------------------------
23506 | Title | Date(ver.) | Author |
23507 ------------------------------------------------------
23509 Definitions & Acronyms
23511 Product Functionality{{{4
23512 Major Functionalities - List
23513 Specific Functionality Specifications
23514 Database Specifications
23517 External Interfaces{{{4
23518 User Interface - Concept
23520 System/Software Interface
23522 Design Constrains{{{4
23524 Assumptions & Dependencies{{{4
23537 7.Usefulness & Friendliness
23541 Ability to backup HD files to be able to restore HD at fully
23542 working status. To create procedure of backup/restore list of
23543 files and directories with number of widely used backup tools.
23544 A. question about technology{{{4
23545 1. There are files that HD changes during it's lifetime which
23546 should be backup/restore. What to do at restore time to
23547 overwrite or to fix those files?
23548 Decided to overwrite files.(12nov2002)
23549 2. How to backup shared plugins? Have to backup/restore only
23550 HD or HD+shared plugins?
23551 Will create file lists to backup separatly for HD and each of
23552 shared plugins. Customer should check what to backup.
23553 (wishlist) Warning if doing backup w/o any of existing parts
23554 of HD (if doing backup only to HD in spite of installed PSP).
23555 3. The backup file list of HD w/o PSP{{{5
23557 <Accounts dir> if not under <HD dir>
23558 <Reseller dir> if not under <HD dir>
23561 /etc/sphera.netconf
23563 /etc/sphera.repository
23564 (slink to <Accounts dir>/.repository)
23573 /usr/bin/sphadmin (not on Sun)
23577 /etc/sysconfig/iptables
23580 /etc/sysconfig/clock
23582 4. The backup file list of PSPs{{{5
23586 /usr/lib/coldfusion
23592 /usr/local/openssh_sphera
23602 /usr/bin/nwretrieve
23603 /usr/bin/preclntsave
23604 /usr/bin/pstclntsave
23608 /usr/lib/X11/app-defaults/Networker
23609 /usr/lib/nsr/C/nsr.help
23610 /usr/lib/nsr/de_de/nsr.help
23611 /usr/lib/nsr/gls/cm/registry
23612 /usr/lib/nsr/gls/lc/os/portable/C
23613 /usr/lib/nsr/poin.cln
23614 /usr/lib/nsr/product.res
23615 /usr/lib/nsr/prrm.cln
23620 /usr/sbin/nsr_shutdown
23621 /usr/sbin/nsr_support
23624 /usr/sbin/nsrarchive
23631 /usr/sbin/nsrndmp_2fh
23632 /usr/sbin/nsrndmp_recover
23633 /usr/sbin/nsrndmp_save
23634 /usr/sbin/nsrretrieve
23636 /usr/sbin/preclntsave
23637 /usr/sbin/pstclntsave
23642 /etc/rc.d/init.d/networker
23644 5. There are UPs installed w/ rpm registration?{{{5
23645 Most likely to scan rpmdb before backup and to do registrations
23646 after restore. So needed ability to run scripts during backup/
23647 restore process (look B5)
23650 B. questions about backup tools{{{4
23651 1. Which backup tools to consider?
23652 PM wants Legato (www.legato.com) and Veritas tools.
23653 2. Does backup tool accept file list?
23656 3. Does backup tool restore links?
23659 4. Backup/restore w/ files in use.
23662 5. How to run something before backup and after restore?
23665 6. Behaviour when backup target not exist?
23666 Legato. Sends message.
23668 7. Restore link when original file not exist?
23674 Ability to backup/restore all VDS files. Actualy backup/restore
23675 of user files already exists, so needs to split VDS backup in
23676 2 kinds like system and user. VDS owner should do start backup.
23677 There is question about backup/restore files w/ root (non
23678 VDS owner) ownership. 2 solutions.
23679 a. VDS call API procedure that run some script w/ root permi
23680 ssions (SETUID server)
23681 b. The procedure permited only for Sphera admin.
23682 Next qestion where to store backup file?
23683 a. user place (quota problem)
23684 b. Sphera admin place (manage backup places+tape backup)
23688 Leon to speak about current VDS backup.
23689 VDS filelist to backup.
23696 install rpm under VDS{{{2
23698 cp -p /bin/rpm ./bin/.
23699 tar cvf - /usr/lib/rpm | tar xvf -
23700 tar cvf - /usr/lib/librpm* | tar xvf -
23701 tar cvf - /usr/lib/libbz2.* | tar xvf -
23702 tar cvf - /usr/lib/libpopt.* | tar xvf -
23703 (if not exists mkdir ./var/lib)
23704 tar cvf - /var/lib/rpm | tar xvf -
23705 tar cvf - /dev/shm/ | tar xvf -
23706 (if not exists mkdir sbin)
23707 cp -p /sbin/install-info ./sbin/.
23708 cp -p /sbin/ldconfig ./sbin/.
23709 cp -p /bin/egrep ./bin/.
23710 cp -p /sbin/chkconfig sbin/
23711 cp /usr/sbin/userdel usr/sbin/
23712 cp /usr/sbin/useradd usr/sbin/
23714 chroot <VDS path> /bin/sh
23715 rpm -ivh --force <rpm name>
23719 edit /usr/local/apache/conf/httpd.conf
23720 /usr/local/apache/conf/workers.properties
23721 /var/tomcat4/conf/tomcat4.conf
23722 /var/tomcat4/conf/server.xml
23724 LoadModule jk_module libexec/mod_jk.so
23725 <IfModule mod_jk.c>
23726 JkWorkersFile conf/workers.properties
23727 JkLogFile logs/mod_jk.log
23729 JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
23730 JkMount /examples/servlet/* worker1
23731 JkMount /*.jsp worker2
23732 JkOptions +ForwardURICompat
23735 /export/home/hostdir/plugins/bin/Spython /export/home/hostdir/plugins/bin/InstallManager.pyc "/export/home/hostdir/accounts/deri11.devsphera.com/www/htdocs/plugins/Tomcat/installed" "/export/home/hostdir/plugins/packages/Tomcat" "/export/home/hostdir/accounts/deri11.devsphera.com" "/export/home/hostdir/accounts/deri" "_plugin_VDS_GROUP=101" "_plugin_VDS_MODE=standard" "_plugin_VDS_NAME=v2" "_plugin_install=installed" "_plugin_name=installed" "_plugin_status=installed"
23737 Tomcat VA installation procedure{{{2
23738 What should be done to install?
23740 cp mod_jk.so to /usr/local/apache/libexec/
23741 cp workers.properties to /usr/local/apache/conf/
23742 add newline to /usr/local/apache/conf/httpd.conf
23743 Include conf/mod_jk.conf
23744 cp mod_jk.conf to /usr/local/apache/conf/
23745 edit /usr/local/apache/conf/mod_jk.conf
23746 should have follows lines
23747 LoadModule jk_module libexec/mod_jk.so
23748 <IfModule mod_jk.c>
23749 JkWorkersFile conf/workers.properties
23750 JkLogFile logs/mod_jk.log
23753 JkMount /*.jsp worker1
23754 JkMount /examples/* worker1
23756 # JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
23757 # JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
23758 # JkRequestLogFormat "%w %V %T"
23759 # JkMount /*/servlet/ worker2
23760 # JkOptions +ForwardURICompat
23762 add to /var/tomcat4/conf/tomcat4.conf follows
23763 JAVA_HOME="/usr/java/j2sdk1.4.1_01"
23764 edit /etc/rc.d/init.d/tomcat4
23765 remark su - $TOMCAT_USER -c "$TOMCAT_SCRIPT stop"
23768 $TOMCAT_SCRIPT <start|stop>
23770 Prepare to Sphera installation?
23771 Create dir named Tomcat under <HD base>/plugins/packages
23773 File ownership and permissions?
23774 <VDS owner> 755 /var/tomcat4
23776 <VDS owner> 755 |- common
23777 <VDS owner> 775 |- (conf->) /etc/tomcat4
23778 <VDS owner> 755 |- (logs->) /var/log/tomcat4
23779 <root> 755 |- server
23781 <VDS owner> 755 |- shared
23782 <VDS owner> 775 |- (temp->) /var/cache/tomcat4/temp
23783 <VDS owner> 770 |- webapps
23784 <VDS owner> 775 |- (work->) /var/cache/tomcat4/work
23785 <VDS owner> 755 /var/lock/subsys
23788 Size of /var/tomcat4 4748 kB
23790 Tomcat installation
23792 rpm2cpio <jdk rpm> | cpio -i --make-directories
23794 rpm2cpio <tomcat4-4.1.18-full.1jpp.noarch.rpm> | cpio -i --make-directories
23796 add address of VDS to connector
23799 Tomcat PSP installation{{{2
23801 install jdk and Tomcat rpm files on machine
23802 add to server.xml before localhost
23803 <Host name="www.deri2.devsphera.com" appBase="vds/deri2.devsphera.com">
23804 <Context path="" docBase="/" debug="1"/>
23806 mkdir /var/tomcat4/vds
23807 cd /var/tomcat4/vds
23808 ln -s /export/home/hostdir/accounts/deri2.devsphera.com/usr/local/apache/htdocs/ deri2.devsphera.com
23809 under ~rg2/usr/local/apache/conf place workers.properties like in VA.
23810 change http.conf as in VA.
23813 Performance tests{{{2
23816 Size of rpms: jdk,tomcat(+admin+webapps),mod_jk = ~47M
23818 VDS size w/ installation = ~372
23820 Regular tomcat installation on deri under ip based VDS with command
23821 ab -n 100 -c 20 http://www.deri4.devsphera.com/examples/jsp/dates/date.jsp
23823 without Java runtime options{{{3
23825 Server Software: Apache/1.3.26
23826 Server Hostname: www.deri4.devsphera.com
23828 Document Path: /examples/jsp/dates/date.jsp
23829 Document Length: 421 bytes
23831 Concurrency Level: 20
23832 Time taken for tests: 1.440 seconds
23833 Complete requests: 100
23835 Broken pipe errors: 0
23836 Total transferred: 58700 bytes
23837 HTML transferred: 42100 bytes
23838 Requests per second: 69.44 [#/sec] (mean)
23839 Time per request: 288.00 [ms] (mean)
23840 Time per request: 14.40 [ms] (mean, across all concurrent requests)
23841 Transfer rate: 40.76 [Kbytes/sec] received
23843 Connnection Times (ms)
23844 min mean[+/-sd] median max
23845 Connect: 0 0 0.3 0 4
23846 Processing: 12 265 98.4 285 436
23847 Waiting: 11 265 98.5 285 436
23848 Total: 12 265 98.5 285 436
23849 Percentage of the requests served within a certain time (ms)
23858 100% 436 (last request)
23860 with JAVA_OPTS="-Xms1m"{{{3
23861 Server Software: Apache/1.3.26
23862 Server Hostname: www.deri4.devsphera.com
23865 Document Path: /examples/jsp/dates/date.jsp
23866 Document Length: 421 bytes
23868 Concurrency Level: 20
23869 Time taken for tests: 2.093 seconds
23870 Complete requests: 100
23872 Broken pipe errors: 0
23873 Total transferred: 58700 bytes
23874 HTML transferred: 42100 bytes
23875 Requests per second: 47.78 [#/sec] (mean)
23876 Time per request: 418.60 [ms] (mean)
23877 Time per request: 20.93 [ms] (mean, across all concurrent requests)
23878 Transfer rate: 28.05 [Kbytes/sec] received
23880 Connnection Times (ms)
23881 min mean[+/-sd] median max
23882 Connect: 0 0 0.2 0 2
23883 Processing: 192 397 229.5 303 986
23884 Waiting: 192 397 229.7 303 986
23885 Total: 192 397 229.6 303 986
23887 Percentage of the requests served within a certain time (ms)
23896 100% 986 (last request)
23898 with JAVA_OPTS="-Xms1m -Xss120K"{{{3
23899 Server Software: Apache/1.3.26
23900 Server Hostname: www.deri4.devsphera.com
23903 Document Path: /examples/jsp/dates/date.jsp
23904 Document Length: 421 bytes
23906 Concurrency Level: 20
23907 Time taken for tests: 2.061 seconds
23908 Complete requests: 100
23910 Broken pipe errors: 0
23911 Total transferred: 58700 bytes
23912 HTML transferred: 42100 bytes
23913 Requests per second: 48.52 [#/sec] (mean)
23914 Time per request: 412.20 [ms] (mean)
23915 Time per request: 20.61 [ms] (mean, across all concurrent requests)
23916 Transfer rate: 28.48 [Kbytes/sec] received
23918 Connnection Times (ms)
23919 min mean[+/-sd] median max
23920 Connect: 0 0 0.6 0 7
23921 Processing: 155 326 225.5 258 947
23922 Waiting: 154 325 225.4 258 947
23923 Total: 155 326 225.5 258 947
23925 Percentage of the requests served within a certain time (ms)
23934 100% 947 (last request)
23936 with JAVA_OPTS="-Xss120K"{{{3
23937 Server Software: Apache/1.3.26
23938 Server Hostname: www.deri4.devsphera.com
23941 Document Path: /examples/jsp/dates/date.jsp
23942 Document Length: 421 bytes
23944 Concurrency Level: 20
23945 Time taken for tests: 1.666 seconds
23946 Complete requests: 100
23948 Broken pipe errors: 0
23949 Total transferred: 58700 bytes
23950 HTML transferred: 42100 bytes
23951 Requests per second: 60.02 [#/sec] (mean)
23952 Time per request: 333.20 [ms] (mean)
23953 Time per request: 16.66 [ms] (mean, across all concurrent requests)
23954 Transfer rate: 35.23 [Kbytes/sec] received
23956 Connnection Times (ms)
23957 min mean[+/-sd] median max
23958 Connect: 0 0 0.2 0 2
23959 Processing: 188 312 131.3 288 684
23960 Waiting: 188 312 131.2 288 683
23961 Total: 188 312 131.3 288 684
23963 Percentage of the requests served within a certain time (ms)
23972 100% 684 (last request)
23975 Two VDSs w/ tomcats. Initial RSS for each is 28M
23978 ./ab -n 100 -c 5 http://www.deri4.devsphera.com/examples/jsp/jsptoserv/jsptoservlet.jspi
23979 Server Software: Apache/1.3.26
23980 Server Hostname: www.deri4.devsphera.com
23983 Document Path: /examples/jsp/jsptoserv/jsptoservlet.jspi
23984 Document Length: 782 bytes
23986 Concurrency Level: 5
23987 Time taken for tests: 1.096 seconds
23988 Complete requests: 100
23989 Failed requests: 60
23990 (Connect: 0, Length: 60, Exceptions: 0)
23991 Broken pipe errors: 0
23992 Non-2xx responses: 100
23993 Total transferred: 87440 bytes
23994 HTML transferred: 68360 bytes
23995 Requests per second: 91.24 [#/sec] (mean)
23996 Time per request: 54.80 [ms] (mean)
23997 Time per request: 10.96 [ms] (mean, across all concurrent requests)
23998 Transfer rate: 79.78 [Kbytes/sec] received
24000 Connnection Times (ms)
24001 min mean[+/-sd] median max
24002 Connect: 0 0 0.3 0 3
24003 Processing: 11 53 44.3 38 185
24004 Waiting: 11 53 44.3 38 184
24005 Total: 11 53 44.3 38 185
24007 Percentage of the requests served within a certain time (ms)
24016 100% 185 (last request)
24019 ./ab -n 100 -c 5 http://www.deri4.devsphera.com/examples/jsp/jsptoserv/jsptoservlet.jspi &
24020 ./ab -n 100 -c 5 http://www.deri5.devsphera.com/examples/jsp/jsptoserv/jsptoservlet.jsp &
24022 Server Hostname: www.deri4.devsphera.com
24025 Document Path: /examples/jsp/jsptoserv/jsptoservlet.jspi
24026 Document Length: 782 bytes
24028 Concurrency Level: 5
24029 Time taken for tests: 1.508 seconds
24030 Complete requests: 100
24031 Failed requests: 42
24032 (Connect: 0, Length: 42, Exceptions: 0)
24033 Broken pipe errors: 0
24034 Non-2xx responses: 100
24035 Total transferred: 90608 bytes
24036 HTML transferred: 71312 bytes
24037 Requests per second: 66.31 [#/sec] (mean)
24038 Time per request: 75.40 [ms] (mean)
24039 Time per request: 15.08 [ms] (mean, across all concurrent requests)
24040 Transfer rate: 60.08 [Kbytes/sec] received
24042 Connnection Times (ms)
24043 min mean[+/-sd] median max
24044 Connect: 0 0 1.6 0 11
24045 Processing: 13 73 51.2 61 275
24046 Waiting: 13 73 51.2 61 275
24047 Total: 13 73 51.1 62 275
24049 Percentage of the requests served within a certain time (ms)
24058 100% 275 (last request)
24060 Server Hostname: www.deri5.devsphera.com
24063 Document Path: /examples/jsp/jsptoserv/jsptoservlet.jsp
24064 Document Length: 183 bytes
24066 Concurrency Level: 5
24067 Time taken for tests: 1.774 seconds
24068 Complete requests: 100
24069 Failed requests: 43
24070 (Connect: 0, Length: 43, Exceptions: 0)
24071 Broken pipe errors: 0
24072 Non-2xx responses: 43
24073 Total transferred: 58569 bytes
24074 HTML transferred: 37005 bytes
24075 Requests per second: 56.37 [#/sec] (mean)
24076 Time per request: 88.70 [ms] (mean)
24077 Time per request: 17.74 [ms] (mean, across all concurrent requests)
24078 Transfer rate: 33.02 [Kbytes/sec] received
24080 Connnection Times (ms)
24081 min mean[+/-sd] median max
24082 Connect: 0 0 1.8 0 11
24083 Processing: 15 86 56.6 70 272
24084 Waiting: 14 86 56.7 70 272
24085 Total: 15 86 56.5 70 272
24087 Percentage of the requests served within a certain time (ms)
24096 100% 272 (last request)
24099 Interception design{{{3
24101 The common solution for every bind to localhost:port create unix socket
24102 and to every connect to localhost:port add created unix socket.
24104 Check if any consequences for giving unix socket instead of tcp socket.
24108 VA installation{{{3
24110 /export/homeext3/hostdir/plugins/bin/Spython /export/homeext3/hostdir/plugins/bin/InstallManager.pyc "//www/htdocs/plugins/ChiliSoftServers/ChiliSoftServer" "/export/homeext3/hostdir/plugins/packages/ChiliSoftServers" $1 "/" "/export/homeext3/hostdir/accounts/chile75" "_plugin_VDS_GROUP=101" "_plugin_VDS_MODE=dedicated" "_plugin_VDS_NAME=ds" "_plugin_link=http://172.16.27.1/chile42.devsphera.com-asp/test.asp" "_plugin_name=ChiliSoftServer" "_plugin_status=installed" "ds_plugin=true"
24116 Default installation and configuration{{{2
24118 The default installation would bring only Tomcat w/o any applications,
24119 except our HelloWorld example for GUI link. By default, Tomcat would
24120 listen to localhost:8009. The installation also brings follows files:
24121 mod_jk.so, workers.properties, mod_jk.conf, server.xml
24122 There are optinal Tomcat applications that could be installed. That
24123 kind of installation will brings number of applications and also new
24124 file server.xml.optional
24125 This file (server.xml.optional) actualy original Tomcat config file
24126 comming w/ Tomcat rpm installation.
24128 Configuration of Tomcat side.
24129 The Tomcat itself do not have any changes made by us except the fact
24130 it runs under VDS environment. There is also main Tomcat config file
24131 called server.xml placed at <VDS>/etc/tomcat4. Here, can be found lots
24132 of Tomcat config parameters like 'port and 'address' to which Tomcat
24134 The full explanation how to config Tomcat can be found at
24135 http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/jk/workershowto.html
24137 Configuration Apache side.
24138 First of all, the new Apache module called mod_jk.so, which actually
24139 connecting Apache and Tomcat and compiled by us. It is placed as usual
24140 at <VDS>/usr/local/apache/libexec
24141 There are 2 configuration files for that module called mod_jk.conf and
24142 workers.properties placed where httpd.conf is.
24143 The full explanation how to config Apache for Tomcat can be found at
24144 http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/jk/aphowto.html
24146 Apache/Tomcat connectivity.
24147 Our default configuration brings Tomcat to listen localhost:8009 and
24148 Apache to connect that 'ip:port'. That can be reconfigured by changing
24149 server.xml and workers.properties files
24155 -----------------------
24156 Tomcat VA installation.
24157 -----------------------
24158 There are 2 types of installation. First, only mandatory files of Tomcat and
24159 second, mandatory plus optional files. Second case brings number of Tomcat
24161 Tomcat VA folder : <SPHERA_BASE>/plugins/packages/Tomcat-4-SA/
24162 Tomcat initialization/upgrade utility : tomcat4_util
24164 I .Initialization :
24165 1. Download and copy to Tomcat VA folder at least 2 RPMS : j2sdk and
24166 tomcat4 (tomcat4-webapps and tomcat4-admin-webapps are optional)
24167 2. Execute the initialization utility without parameters. Example of the
24169 [root@blade Tomcat-4-SA]# ./tomcat4_util
24171 Looking for tomcat4
24172 Looking for tomcat4-webapps
24173 Creating Mirror for /export/home/hostdir/plugins/packages/Tomcat-4-SA/tomcat4-webapps-4.1.18-full.1jpp.noarch.rpm
24174 Looking for tomcat4-admin-webapps
24176 Tomcat4 package parts status :
24177 ( Flag ) RPM name : Status/Version
24178 -----------------------------------------------------
24179 (mandatory) j2sdk : j2sdk-1.4.1_01-fcs
24180 (mandatory) tomcat4 : tomcat4-4.1.18-full.1jpp
24181 (optional ) tomcat4-webapps : tomcat4-webapps-4.1.18-full.1jpp
24182 (optional ) tomcat4-admin-webapps : -- MISSING --
24184 II. Upgrade/Extend.
24185 1. Download the new updated rpms and/or additional optional rpms (tomcat4-admin-webapps or/and tomcat4-webapps) to the tomcat VA folder.
24186 2. Execute the 'tomca4_util'. After finishing the mirror update, utility will upgrade all VDSes with tomcat4 already installed. In case there is a number of rpms with the same name, but different version/build - the latest will be used.
24187 / ServerDirector must be up and running! /
24189 III. 'Custom' files. /Advanced configuration/
24190 1. Put all additional files in CUSTOM directory (in Tomcat4 VA folder). Files from CUSTOM directory installs in VDS with the same path : CUSTOM/etc/example will bee installed <VDS_HOME>/etc/example.
24191 2. Execute 'tomcat4_util -c ' (or -custom) to install new files from CUSTOM to VDSes with tomcat4 already installed (not necessary if there is no VDS with tomcat installed on this machine)
24192 File removed from CUSTOM, but already present in VDS(s) must be removed from VDS(s) manually!
24194 IV. RPM names change/RPM list extending(or reducing) /Advanced configuration/
24195 tomcat4_util use tomcat4.rpmlist as default VA rpm list. The file contains (default):
24197 #name|minver|minbuild|reqver|reqbuild|mandatory|
24199 tomcat4|4.1.17|||^full\.|M|
24200 tomcat4-webapps|4.1.17||||O|
24201 tomcat4-admin-webapps|4.1.17||||O|
24203 Line started with '#' sign is comment. '|' sign is delimiter beet wen the parameters in line
24204 Each line contains parameters RPM-short-name,Minimum-version, Minimum-build(release), Version-pattern, Build(release)-pattern, Mandatory/Optional switch.
24205 Any version/build parameter can be empty. This mean 'any'.
24206 Patterns are regular expression pattern that version (or build) must match.
24208 V. Alternative folder with rpms.
24209 tomcat4_util searches for rpms by default in Tomcat4 VA folder, but there is possible to provide in command line an alternative folder : ./tomcat4_util /home/marko/tomcat_prepend/
24214 It will gives page w/ 2 other links, one to call jsp file,
24215 other servlet file.
24217 Check that VDS owner can changed Tomcat configuration files. All check in
24218 <VDS>/etc/tomcat4 where try to create new file and edit server.xml and
24219 server.xml.optional
24221 -----------------------------
24222 Tomcat database connectivity.
24223 -----------------------------
24224 One of Tomcat functionality abilities is to run application that gets data from
24225 databases. Mysql and Postgress sql servers implemented as VDS VA, so needs to
24226 check Tomcat-Mysql and Tomcat-Postgress connections.
24228 Common things for both checks are need of database java driver (to connect java
24229 application w/ db), Tomcat application that inquires connection and database w/
24230 data to have the answer.
24235 Copy database driver mysql-connector-java-2.0.14-bin.jar to <VDS>/var/tomcat4
24237 Telnet to the VDS. Run mysql (./usr/local/mysql/bin/mysql) and get prompt:
24239 Now follows creation of database, table and insert some data:
24240 ./usr/local/mysql/bin/mysql -p < /var/tomcat4/webapps/db_test/add_data.mysql
24242 Tomcat application.
24249 MaxKeepAliveRequests 100
24250 KeepAliveTimeout 15
24259 VIII. QOS checking{{{1
24265 1. Regression tests
24292 I. Machine config{{{2
24298 II.1.a Regression OS test{{{3
24299 Purpose: one time test to ensure that certain functionality of OS
24300 works proper included ftp, http, pop3, smtp services.
24302 basic functionality of linux OS(see How).
24304 monitor/enforcement modes;
24306 LTP (ltp.sourceforge.net), scripts
24308 Start to run LTP tests one by one as follows:
24309 kernel sc - checks 153 system calls {{{4
24464 fs_inod- Rapidly creates and deletes files through
24465 multiple processes running in the background.
24466 fs_perms- Regression test for Linux filesystem perms.
24467 fsx-linux- Filesystem stress test developed by Apple.
24468 growfiles- will grow a list of files.
24469 lftest- to verify the file size limitations of a fs.
24470 linktest- Regression test for max links per file.
24471 openfile- Creates files and opens simultaneously.
24472 proc01- Recursively reads all files within /proc fs.
24473 rwtest- Currently can handle read,write,reada,writea,
24474 ssread,sswrite, and many varieties of listio.
24477 mem01- exercising virtual memory allocation and usage.
24478 mtest01- mallocs memory <chunksize> at a time until
24480 mtest05/mmstress- Performs General Stress with Race
24482 mtest06/mmap1- stressing the mm by simultanious
24483 map/unmap/read by light weight processes. (24h)
24484 mtest06/mmap2- stressing the mm by repeaded
24485 map/write/unmap of a large gb size file.
24486 mtest06/mmap3- stressing the mm by repeaded
24488 of file/memory of random size (maximum 1GB).
24489 mtest06/shmat1- stressing the mm by repeaded
24490 shmat/write/read/shmatd of file/memory of
24491 random size (maximum 1000 * 4096).
24494 ar01- Construct one or more command lines which use
24495 options that do not take args.For each of these
24496 invocations: specify the options seperately;
24497 group the options together;
24498 compare the behavior of the two cases;
24499 If they behave differently, then fail
24500 If none of the cases fail, then pass
24501 ld01- To test the basic functionality of `ld` cmd.
24502 ldd01- To test the basic functionality of `ldd` cmd.
24503 nm01- To test the basic functionality of the `nm` cmd.
24504 objdump01- Tests the functionality of `objdump` cmd.
24505 size01- To test the basic functionality of `size`.
24508 pipeio- to beat on system or named pipes.
24509 sem01- semaphore scenario.
24510 sem02- multithreaded semaphore scenario.
24513 clisrv- Read contents of data file. Write each line to
24514 socket, then read line back from socket and
24515 write to standard output.
24516 pth_str01- Creates a tree of threads.
24517 pth_str02- Creates n threads.
24518 pth_str03- Creates a tree of threads does calculations,
24519 and returns result to parent.
24522 purpose to increase CPUs workload - verify that results
24523 of some math functions are stable. There are 5 tests:
24524 float_bessel, float_exp_log, float_iperb, float_power,
24529 Verify that accept returns the proper errno for
24530 various failure cases.
24531 bind01-sctp-udp tcp
24532 Verify that bind returns the proper errno for
24533 various failure cases.
24534 listen01-sctp-udp tcp
24535 Verify that listen returns the proper errno for
24536 various failure cases.
24537 recv01-sctp-udp tcp
24538 Verify that recv returns the proper errno for
24539 various failure cases.
24540 recvfrom01-sctp-udp tcp
24541 Verify that recvfrom returns the proper errno for
24542 various failure cases.
24543 recvmsg01-sctp-udp tcp
24544 Verify that recvmsg returns the proper errno for
24545 various failure cases.
24546 send01-sctp-udp tcp
24547 Verify that send returns the proper errno for
24548 various failure cases.
24549 sendmsg01-sctp-udp tcp
24550 Verify that sendmsg returns the proper errno for
24551 various failure cases.
24552 sendto01-sctp-udp tcp
24553 Verify that sendto returns the proper errno for
24554 various failure cases.
24555 setsockopt01-sctp-udp tcp
24556 Verify that setsockopt returns the proper errno for
24557 various failure cases.
24558 socket01-sctp-udp tcp
24559 Verify that socket returns the proper errno for
24560 various failure cases.
24562 diskio disktest - {{{4
24563 Does repeated accesses to a filespec and optionally writes to, reads from,
24564 and verifies the data. By default, disktest makes assumptions about
24565 the running environment which allows for a quick start of IO generation.
24566 However, Disktest has a large number of command line options which can
24567 be used to adapt the test for a variety of uses including data integrity,
24568 medium integraty, performance, and simple application simulation.
24570 diskio stress_cd - {{{4
24571 Creates multiple read threads on the cdrom device.
24573 diskio stress_floppy - {{{4
24574 reading/writing/formatting on a floppy drive.
24576 network ipv6 - {{{4
24578 Stresses the inetd/xinetd daemon using the `echo` service.
24580 test the basic functionality of the `finger` command.
24582 test the basic functionality of the `ftp` command.
24584 Generates LAN traffic using ICMP echo packets.
24586 test the basic functionality of the `ping` command.
24588 test the basic functionality of the `rcp` command.
24590 Tests the basic functionality of `rlogin`.
24592 test the basic functionality of the `rsh` command.
24594 test the basic functionality of the rwhod daemon using the
24596 Copy files from server to client using the sendfile()
24599 test the basic functionality of `tcpdump`.
24601 Tests the basic functionality of `telnet`.
24603 network multicast - {{{4
24605 To determine the stability of the IP Multicast product
24606 and to verify the accuracy and usablility of IP Multicast
24607 related publications associated with changes and/or
24608 additions to command level interfaces for this implementations
24611 To verify that IP Multicast can be used to send UDP datagrams
24612 between two or more nodes on the same subnetwork using
24613 a specific IP Multicast group and a specific port address.
24615 To verify that two of the new options for level IPPROTO_IP
24616 Service Interface allow the list of host group memberships
24617 to be updated properly in response to the JoinHostGroup and
24618 LeaveHostGroup requests. To test boundary conditions while
24619 exercising IP Multicast JoinHostGroup and LeaveHostGroup
24620 Service Interfaces.
24622 To verify that three of the new options for level IPPROTO_IP
24623 Service Interface are initially set to the default values as
24624 defined in the documentation and that each of the new options
24625 can be set and read properly by the setsockopt and getsockopt
24626 routines, respectively. To test boundary conditions and to
24627 generate errors while exercising the IP Multicast Service
24632 Created by NeXT Software (Apple Computer, Inc.). This test will
24633 thrash your NFS filesystem and has uncovered numerous bugs within
24634 the Linux implementation.
24636 Stresses NFS by opening a large number of files on a nfs
24637 mounted filesystem.
24639 Tests NFS copy of various filesizes, file consistency between copies
24640 and preservation of write/nowrite permissions.
24642 Runs the LTP filesystem test: fs_inod, on an NFS mountpoint.
24644 Two processes open FLOCK_IDATA file simultaneously
24645 each one locks odd and even lines of the file simultaneously
24646 and fill them with '0's and '1's. After they find eof, the
24647 datafiles are compared.
24649 Tests the 'nfsstat' command. This test runs locally, so no
24650 actual network connection is needed.
24652 This program is designed stress the NFS implimentation.
24653 Many bugs were uncovered in the AIX operating system
24654 implimentation of NFS when AIX kernel was built over NFS.
24655 Source directory on a remote machine (one server many clients)
24656 NFS-mounted on to a directory on a local machine from which
24657 the kernel build was initiated. Apparently many defects/bugs
24658 were uncovered when multiple users tried to build the kernel
24659 by NFS mounting the kernel source from a remote machine and
24660 tried to build the kernel on a local machine. AIX build envi-
24661 ronment is set up to create the object files and executable
24662 on the local machine.
24663 This testcase will try to recreate such a senario.
24664 Spawn N number of threads. Each thread does the following.
24665 * Create a directory tree.
24666 * Populate it with ".c" files and makefiles.
24667 * initate a build. Executable will print hello world when executed
24668 * clean up all the executables that were created.
24669 * recurssively remove each subdir and its contents.
24670 The test is aimed at stressing the NFS client and server.
24674 Test rpc using file transfers between a client & server
24676 Basic test for the `rpcinfo` command.
24678 Basic test for the `rup` command.
24680 Basic test for the `rusers` command.
24682 network sctp - {{{4
24683 same as kernel sctp
24685 network tcp_cmds - {{{4
24687 Test the basic functionality of `arp`.
24689 Stresses the inetd/xinetd daemon using the `echo` service.
24691 test the basic functionality of the `finger` command.
24693 test the basic functionality of the `ftp` command.
24695 test the basic functionality of the `host` command.
24697 test the basic functionality of the `netstat` command.
24699 Generates LAN traffic using ICMP echo packets.
24701 test the basic functionality of the `ping` command.
24703 test the basic functionality of the `rcp` command.
24705 test the basic functionality of the `rdist` command.
24707 Tests the basic functionality of `rlogin`.
24709 test the basic functionality of the `rsh` command.
24711 test the basic functionality of the rwhod daemon using the
24713 Copy files from server to client using the sendfile()
24716 test the basic functionality of `tcpdump`.
24718 Tests the basic functionality of `telnet`.
24721 To check ftp, http, pop3, smtp services:
24722 FTP - run script ftp_check.sh which opens ftp connection, puts
24723 file and closes ftp connection.
24724 POP - run script pop_check.sh which opens pop connection, reads
24725 mailbox and closes pop connection.
24726 SMTP - run script smtp_check.sh which opens smtp connection, sends
24727 email and closes smtp connection.
24728 HTTP - run script http_check.sh which open http connection, sends
24729 command GET and closes http connection.
24736 pread02 investigating
24737 mprotect01 2.4.19-pre4
24738 msync05 2.4.19-pre4
24754 bind01-sctp-udp Socket type not supported
24755 listen01-sctp-udp -"-
24757 recvfrom01-sctp-udp -"-
24758 recvmsg01-sctp-udp -"-
24759 send01-sctp-udp -"-
24760 sendmsg01-sctp-udp -"-
24761 sendto01-sctp-udp -"-
24762 setsockopt01-sctp-udp -"-
24763 socket01-sctp-udp ??? (same w/o module)
24765 accept01-sctp Socket type not supported
24767 listen01-sctp-tcp -"-
24768 recv01-sctp-tcp -"-
24769 recvfrom01-sctp-tcp -"-
24770 recvmsg01-sctp-tcp -"-
24771 send01-sctp-tcp -"-
24772 sendmsg01-sctp-tcp -"-
24773 sendto01-sctp-tcp -"-
24774 setsockopt01-sctp-tcp -"-
24775 socket01-sctp-tcp ??? (same w/o module)
24781 II.1.b Regression QOS module test{{{3
24784 one time tests to ensure that module interface
24785 works. Not intend to check if it works right.(see functionaly)
24788 all set of module interface commands
24789 * start/stop moduel
24790 * get module status
24791 * get module's managers status
24792 * set module's manager mode
24797 * set flags (barrier,go_other,deffer_uid)
24799 * create pnode's managers
24803 * get pnode children
24807 * set pnode thread limit
24808 * set pnode sched weight
24809 * get pnode sched weight
24810 * set pnode mem limit
24811 * get pnode mem limit
24812 * get pnode watermark
24813 * reset pnode watermark;
24815 * add/del PNODE w/o tasks,
24816 * add/del PNODE w/ existing tasks,
24817 * add/del task to PNODE,
24818 * task changes PNODE;
24820 * basic scenarious by time periods or number
24822 legal constraints scenarious
24823 * the 1st pnode to start should be w/ UID=0;
24824 * the pnode w/ UID=0 should be deleted last
24825 * can't create 2 pnodes w/ same UID rule
24826 * can't del pnode w/ son
24827 * can't del predefined pnode
24828 * can't set any rule after pnode start
24829 * can't set any flag after pnode start
24830 * can't change any rule
24831 * can't create pnode manager after pnode started
24832 * can't set sched weight < 1 && > 1024
24833 * can't set mem limit < 0
24836 Testing each module interface command
24837 01-mdl_start <sphera_module start>
24838 02-mdl_stop <sphera_module stop>
24839 03-mdl_get_status <mod_status>
24840 04-mdl_get_mngr_status <man_status nbr>
24841 05-mdl_set_mngr_mode <man_mode nbr mode>
24842 06-pn_create <create parent>
24843 07-pn_set_uid <uid parent uid>
24844 08-pn_set_self <self handle>
24845 09-pn_set_forward <forward parent child>
24846 11-pn_set_gother <flags handle <barrier|go_other|deffer_uid>
24847 12-pn_set_name <name handle name>
24848 13-pn_create_mngr <handle nbr>
24849 14-pn_start <start handle>
24850 15-pn_del <delete handle>
24851 16-pn_get_status <status handle>
24852 17-pn_get_children <children handle size>
24853 18-pn_get_tasks <tasks handle size>
24854 19-pn_kill <kill handle signum>
24857 Testing basic scenarious
24858 do_check_add_del_pn_all
24861 steps description expected results
24862 1 add PNODE new PNODE under VDS
24863 2 del PNODE no PNODE under VDS
24864 ----add PNODE w/ existing tasks
24865 steps description expected results
24866 1 create task w/ PNODE's uid see process
24867 2 add PNODE new PNODE under VDS
24868 3 attach uid to PNODE success
24869 4 start PNODE previous task linked to PNODE
24870 ----del PNODE w/ existing tasks
24871 steps description expected results
24872 1 add PNODE new PNODE under VDS
24873 2 attach uid to PNODE success
24874 3 set PNODE flags success
24875 3 start PNODE success
24876 4 create task w/ PNODE's uid see process
24877 5 del PNODE (see below)
24879 in case of del PNODE it's tasks relink to father
24880 PNODE exists till last task exists.
24882 in case of del PNODE it will exists till last task, so task
24883 can't be relink anywhere.
24885 in case of del PNODE it's tasks relink to predefined PNODE
24887 ----del PNODE w/ existing sons
24888 steps description expected results
24889 1 add PNODE new PNODE under VDS
24890 2 add PNODE under previous new PNODE under previous PNODE
24891 3 start both PNODEs success
24892 4 del 1st PNODE failure
24894 steps description expected results
24895 1 add PNODE new PNODE under VDS
24896 2 attach uid to PNODE success
24897 3 start PNODE success
24898 4 create task w/ PNODE's uid task linked to PNODE
24899 5 del previous task task not exist
24900 ----task changes PNODE
24901 steps description expected results
24902 1 add PNODE new PNODE under VDS
24903 2 attach uid to PNODE success
24904 3 start PNODE success
24905 4 create task w/ PNODE's uid task linked to PNODE
24906 5 change task uid to 0 task linked to pnode other}}}3
24908 Testing legal constraints scenarious
24913 do_del_predefined_pn
24914 do_set_rule_after_pn_start
24915 do_set_flag_after_pn_start
24917 do_create_pn_mngr_after_start
24918 do_set_weight_1_1024
24919 do_set_limit_less_0
24922 II.2.c Stability QOS module test{{{3
24923 Purpose: regression test of QOS module for a time period. To create
24924 stress conditions could be run number of times simultaneously.
24927 Module commands - checks each of command from module api.
24928 Basic scenarious - lite scenarious from module workflow. Could
24929 be called simultaneously number of time for stress purposes.
24930 Heavy scenarious - complicated scenarious from module workiflow.
24931 Each of heavy scenarious produce massive workload for stress
24934 monitor/enforcement modes; dynamic number of users;
24937 Module commands.{{{4
24938 Testing follows module commands by running script test_module.sh
24939 (same as Regression QOS module test):
24949 attach uid to pnode
24956 ----get_pn_children
24957 get list of pnode's children
24959 get list of pnode's tasks
24961 create pnode's cpu or memory manager
24967 set pnode's manager mode (monitor|enforcement)}}}4
24968 Basic scenarious.{{{4
24969 Testing follows scenarious:
24971 steps description expected results
24972 1 add PNODE new PNODE under VDS
24973 2 del PNODE no PNODE under VDS
24974 ----add PNODE w/ existing tasks
24975 steps description expected results
24976 1 create task w/ PNODE's uid see process
24977 2 add PNODE new PNODE under VDS
24978 3 attach uid to PNODE success
24979 4 start PNODE previous task linked to PNODE
24980 ----del PNODE w/ existing tasks
24981 steps description expected results
24982 1 add PNODE new PNODE under VDS
24983 2 attach uid to PNODE success
24984 3 set PNODE flags success
24985 3 start PNODE success
24986 4 create task w/ PNODE's uid see process
24987 5 del PNODE (see below)
24989 PNODE exists till last task exists.
24991 PNODE's tasks link to father
24993 PNODE's tasks link to pnode OTHER
24994 ----del PNODE w/ existing sons
24995 steps description expected results
24996 1 add PNODE new PNODE under VDS
24997 2 add PNODE under previous new PNODE under previous PNODE
24998 3 start both PNODEs success
24999 4 del 1st PNODE failure
25001 steps description expected results
25002 1 add PNODE new PNODE under VDS
25003 2 attach uid to PNODE success
25004 3 start PNODE success
25005 4 create task w/ PNODE's uid task linked to PNODE
25006 5 del previous task task not exist
25007 ----task changes PNODE
25008 steps description expected results
25009 1 add PNODE new PNODE under VDS
25010 2 attach uid to PNODE success
25011 3 start PNODE success
25012 4 create task w/ PNODE's uid task linked to PNODE
25013 5 change task uid to 0 task linked to pnode other}}}4
25014 Heavy scenarious.{{{4
25018 II.3.c Functionality mem manager{{{3
25021 detailed tests to ensure all module interface
25022 functionaly. Basically to validate every answer of
25023 module interface commands.
25025 Objects to test (object and how to get info):
25026 * start/stop moduel
25028 * get module status
25030 * get module's managers status
25032 * set module's manager mode
25042 * set flags (barrier,go_other,deffer_uid)
25046 * create pnode's managers
25054 * get pnode children
25057 ps -ewf | grep <uid>
25062 * set pnode thread limit
25063 try to create tasks > limit
25064 * set pnode sched weight
25066 * get pnode sched weight
25068 * set pnode mem limit
25070 * get pnode mem limit
25072 * get pnode watermark
25074 * reset pnode watermark;
25082 Switch mode check{{{3
25083 Purpose: check module after changing it's mode from enforcement to
25084 monitor and vice versa.
25086 monitor/enforcement - to be sure that enforcement alive.
25087 enforcement/monitor - to be sure that monitor alive.
25092 try to allocate resource more than limited
25093 look for declining of resource allocation in enforcement mode
25094 look for permition of resource allocation in monitor mode
25096 Static_Dynamic check{{{3
25097 Purpose: check module Static/Dynamic number of users
25103 IV. Configurations{{{2
25106 Every test can be done in diff configurations of module and OS.
25107 mon/enf - Monitor/Enforcement
25108 nbr_of_users - static or dynamic number of UIDs
25112 3. nbr_of_users{{{3
25120 home site: ltp.sourceforge.net
25122 kernel - sys calls, sc
25124 memory management, mm
25125 application development environment, ade
25130 disk i/o - disktest,
25133 network - ipv6, ipv6
25140 kernel sc - checks 153 system calls {{{4
25295 fs_inod- Rapidly creates and deletes files through
25296 multiple processes running in the background.
25297 fs_perms- Regression test for Linux filesystem perms.
25298 fsx-linux- Filesystem stress test developed by Apple.
25299 growfiles- will grow a list of files.
25300 lftest- to verify the file size limitations of a fs.
25301 linktest- Regression test for max links per file.
25302 openfile- Creates files and opens simultaneously.
25303 proc01- Recursively reads all files within /proc fs.
25304 rwtest- Currently can handle read,write,reada,writea,
25305 ssread,sswrite, and many varieties of listio.
25308 mem01- exercising virtual memory allocation and usage.
25309 mtest01- mallocs memory <chunksize> at a time until
25311 mtest05/mmstress- Performs General Stress with Race
25313 mtest06/mmap1- stressing the mm by simultanious
25314 map/unmap/read by light weight processes. (24h)
25315 mtest06/mmap2- stressing the mm by repeaded
25316 map/write/unmap of a large gb size file.
25317 mtest06/mmap3- stressing the mm by repeaded
25319 of file/memory of random size (maximum 1GB).
25320 mtest06/shmat1- stressing the mm by repeaded
25321 shmat/write/read/shmatd of file/memory of
25322 random size (maximum 1000 * 4096).
25325 ar01- Construct one or more command lines which use
25326 options that do not take args.For each of these
25327 invocations: specify the options seperately;
25328 group the options together;
25329 compare the behavior of the two cases;
25330 If they behave differently, then fail
25331 If none of the cases fail, then pass
25332 ld01- To test the basic functionality of `ld` cmd.
25333 ldd01- To test the basic functionality of `ldd` cmd.
25334 nm01- To test the basic functionality of the `nm` cmd.
25335 objdump01- Tests the functionality of `objdump` cmd.
25336 size01- To test the basic functionality of `size`.
25339 pipeio- to beat on system or named pipes.
25340 sem01- semaphore scenario.
25341 sem02- multithreaded semaphore scenario.
25344 clisrv- Read contents of data file. Write each line to
25345 socket, then read line back from socket and
25346 write to standard output.
25347 pth_str01- Creates a tree of threads.
25348 pth_str02- Creates n threads.
25349 pth_str03- Creates a tree of threads does calculations,
25350 and returns result to parent.
25353 purpose to increase CPUs workload - verify that results
25354 of some math functions are stable. There are 5 tests:
25355 float_bessel, float_exp_log, float_iperb, float_power,
25360 Verify that accept returns the proper errno for
25361 various failure cases.
25362 bind01-sctp-udp tcp
25363 Verify that bind returns the proper errno for
25364 various failure cases.
25365 listen01-sctp-udp tcp
25366 Verify that listen returns the proper errno for
25367 various failure cases.
25368 recv01-sctp-udp tcp
25369 Verify that recv returns the proper errno for
25370 various failure cases.
25371 recvfrom01-sctp-udp tcp
25372 Verify that recvfrom returns the proper errno for
25373 various failure cases.
25374 recvmsg01-sctp-udp tcp
25375 Verify that recvmsg returns the proper errno for
25376 various failure cases.
25377 send01-sctp-udp tcp
25378 Verify that send returns the proper errno for
25379 various failure cases.
25380 sendmsg01-sctp-udp tcp
25381 Verify that sendmsg returns the proper errno for
25382 various failure cases.
25383 sendto01-sctp-udp tcp
25384 Verify that sendto returns the proper errno for
25385 various failure cases.
25386 setsockopt01-sctp-udp tcp
25387 Verify that setsockopt returns the proper errno for
25388 various failure cases.
25389 socket01-sctp-udp tcp
25390 Verify that socket returns the proper errno for
25391 various failure cases.
25393 diskio disktest - {{{4
25394 Does repeated accesses to a filespec and optionally writes to, reads from,
25395 and verifies the data. By default, disktest makes assumptions about
25396 the running environment which allows for a quick start of IO generation.
25397 However, Disktest has a large number of command line options which can
25398 be used to adapt the test for a variety of uses including data integrity,
25399 medium integraty, performance, and simple application simulation.
25401 diskio stress_cd - {{{4
25402 Creates multiple read threads on the cdrom device.
25404 diskio stress_floppy - {{{4
25405 reading/writing/formatting on a floppy drive.
25407 network ipv6 - {{{4
25409 Stresses the inetd/xinetd daemon using the `echo` service.
25411 test the basic functionality of the `finger` command.
25413 test the basic functionality of the `ftp` command.
25415 Generates LAN traffic using ICMP echo packets.
25417 test the basic functionality of the `ping` command.
25419 test the basic functionality of the `rcp` command.
25421 Tests the basic functionality of `rlogin`.
25423 test the basic functionality of the `rsh` command.
25425 test the basic functionality of the rwhod daemon using the
25427 Copy files from server to client using the sendfile()
25430 test the basic functionality of `tcpdump`.
25432 Tests the basic functionality of `telnet`.
25434 network multicast - {{{4
25436 To determine the stability of the IP Multicast product
25437 and to verify the accuracy and usablility of IP Multicast
25438 related publications associated with changes and/or
25439 additions to command level interfaces for this implementations
25442 To verify that IP Multicast can be used to send UDP datagrams
25443 between two or more nodes on the same subnetwork using
25444 a specific IP Multicast group and a specific port address.
25446 To verify that two of the new options for level IPPROTO_IP
25447 Service Interface allow the list of host group memberships
25448 to be updated properly in response to the JoinHostGroup and
25449 LeaveHostGroup requests. To test boundary conditions while
25450 exercising IP Multicast JoinHostGroup and LeaveHostGroup
25451 Service Interfaces.
25453 To verify that three of the new options for level IPPROTO_IP
25454 Service Interface are initially set to the default values as
25455 defined in the documentation and that each of the new options
25456 can be set and read properly by the setsockopt and getsockopt
25457 routines, respectively. To test boundary conditions and to
25458 generate errors while exercising the IP Multicast Service
25463 Created by NeXT Software (Apple Computer, Inc.). This test will
25464 thrash your NFS filesystem and has uncovered numerous bugs within
25465 the Linux implementation.
25467 Stresses NFS by opening a large number of files on a nfs
25468 mounted filesystem.
25470 Tests NFS copy of various filesizes, file consistency between copies
25471 and preservation of write/nowrite permissions.
25473 Runs the LTP filesystem test: fs_inod, on an NFS mountpoint.
25475 Two processes open FLOCK_IDATA file simultaneously
25476 each one locks odd and even lines of the file simultaneously
25477 and fill them with '0's and '1's. After they find eof, the
25478 datafiles are compared.
25480 Tests the 'nfsstat' command. This test runs locally, so no
25481 actual network connection is needed.
25483 This program is designed stress the NFS implimentation.
25484 Many bugs were uncovered in the AIX operating system
25485 implimentation of NFS when AIX kernel was built over NFS.
25486 Source directory on a remote machine (one server many clients)
25487 NFS-mounted on to a directory on a local machine from which
25488 the kernel build was initiated. Apparently many defects/bugs
25489 were uncovered when multiple users tried to build the kernel
25490 by NFS mounting the kernel source from a remote machine and
25491 tried to build the kernel on a local machine. AIX build envi-
25492 ronment is set up to create the object files and executable
25493 on the local machine.
25494 This testcase will try to recreate such a senario.
25495 Spawn N number of threads. Each thread does the following.
25496 * Create a directory tree.
25497 * Populate it with ".c" files and makefiles.
25498 * initate a build. Executable will print hello world when executed
25499 * clean up all the executables that were created.
25500 * recurssively remove each subdir and its contents.
25501 The test is aimed at stressing the NFS client and server.
25505 Test rpc using file transfers between a client & server
25507 Basic test for the `rpcinfo` command.
25509 Basic test for the `rup` command.
25511 Basic test for the `rusers` command.
25513 network sctp - {{{4
25514 same as kernel sctp
25516 network tcp_cmds - {{{4
25518 Test the basic functionality of `arp`.
25520 Stresses the inetd/xinetd daemon using the `echo` service.
25522 test the basic functionality of the `finger` command.
25524 test the basic functionality of the `ftp` command.
25526 test the basic functionality of the `host` command.
25528 test the basic functionality of the `netstat` command.
25530 Generates LAN traffic using ICMP echo packets.
25532 test the basic functionality of the `ping` command.
25534 test the basic functionality of the `rcp` command.
25536 test the basic functionality of the `rdist` command.
25538 Tests the basic functionality of `rlogin`.
25540 test the basic functionality of the `rsh` command.
25542 test the basic functionality of the rwhod daemon using the
25544 Copy files from server to client using the sendfile()
25547 test the basic functionality of `tcpdump`.
25549 Tests the basic functionality of `telnet`.
25557 II.1.b Regression Sphera test{{{3
25558 Purpose: one time test to ensure that certain functionality of Sphera
25561 services - ftp, http, pop3, smtp
25562 Sphera - add/del VDS, move VDS.
25569 aim: check if service works proper
25570 steps description expected results
25571 1 open ftp connection success
25572 2 put file number of transferred bytes
25573 3 get file number of transferred bytes
25574 4 close ftp connection success
25577 aim: check if service works proper
25581 aim: check if service works proper
25585 aim: check if service works proper
25589 aim: check Sphera functionmality
25590 steps description expected results
25591 1 create VDS success
25592 2 delete VDS success
25595 aim: check Sphera functionmality
25596 steps description expected results
25597 1 create VDS success