changes
[docs.git] / todo.txt
blobdfa418cec23d33092effeea1f9b194d98940a3de
1 -------------------------------------------------------------------------------
2 ----------------------------------- Common ------------------------------------
3 -------------------------------------------------------------------------------
4 Documents format project{{{
5 A.   Product Requirement Document(PRD){{{2
6         
7         Table of Contents
8         Introduction{{{3
9                 This document describes the Software Product Specifications.
11                 Product Overview
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.
20                         Product Perspective
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.
27                 Reference
28                         List all documents & other sources of information
29                         referenced in the document.
30                         ------------------------------------------------------
31                         | Title         |       Date(ver.)      |   Author   |
32                         ------------------------------------------------------
33                         |               |                       |            |
35                 Definitions & Acronyms
36                         Define or provide reference to definitions to all
37                         terms in the document and to acronyms used throughout
38                         the document.
39         }}}3
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
47                         method, such as:
48                         - Structured (DFD)
49                         - Object Oriented
50                         - Behavioral (abstract description, state charts or
51                                 user-screens form prototype)
52                         For each feature specify the following:
53                         - Introduction
54                         - Input & Validity checks on the inputs
55                         - Operations: Normal & Abnormal (with valid/not valid
56                                 input)
57                         - Reaction to abnormal situation, such as:
58                                 - Overflow
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,
65                         describe:
66                         - Types
67                         - Access capability
68                         - Data entities & relationships between them
69                         - Integrity Constrains
70                         - Retention
72                 Future - List
73                         List all the functions to be delayed until later
74                         versions of the product.
75         }}}3
76         External Interfaces{{{3
77                 User Interface - Concept
78                         Define the Look & Feel of the User Interface for the
79                         whole product.
81                 Hardware Interface
83                 System/Software Interface
85         }}}3
86         Design Constrains{{{3
87         }}}3
88         Assumptions & Dependencies{{{3
89         }}}3
90         Performance{{{3
91                 1.Static
92                 2.Dynamic
93         }}}3
94         Attributes{{{3
95                 1.Reliability
96                 2.Availability
97                 3.Security
98                 4.Maintainability
99                 5.Portability
100                 6.Scalability
101                 7.Usefulness & Friendliness
102         }}}3
103         Appendixes{{{3
104         }}}3
105 }}}2
106 B.   Note document{{{2
108 Requirements:
109 Possibility to describe subject and highlight most significant words, which
110 supposed to be links to notes describing them.
112 Research:
113 XML? Links in XML? DTD?
115 Design:
116 each entry/record have follow structure:
117 <entry ver=?>
118    <times format=?>
119       <created/>           - time&date of creation
120       <modified/>          - last modified time&date
121       <deleted/>           - time&date of deletion
122    </times>
123    <operations ver=?>
124       <open
125          name              - name of function/method
126       />
127    </operations>
128    <data>
129    </data>
130 </entry>
132 }}}2
134 Logging Service {{{
136 Description: Log server on php5.
137 Sources: php5 help, C++ Network progrmming.
139 Design:
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
146 demarshall after.
149 PHP Articles {{{
151 Ideas:
152         php compilation w/ description of all modules.
153         new changes in PHP5
154         SNMP
155         compression (bzip2)
156 {{{2 Compression
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.
168 Saving the place.
170 open file modes:
178 }}}2
179 Open files {{{2
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 
187 function would be
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
196            and writing.
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
218 depend if you want 
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
223 the modes of o
225 }}}2
227 Genealogy {{{
228     15jun2006
230 basic types: {{{
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: {{{
239 |--name
240 |--birthday
241 |  |--date
242 |  |--address
243 |  |__source
244 |--death
245 |  |--date
246 |  |--address
247 |  |--cause
248 |  |__source
249 |--education
250 |  |--start date
251 |  |--finish date
252 |  |--name
253 |  |--address
254 |  |__source
255 |--sex
256 |--occupation
258 |--father
259 |  |__id
260 |--mother
261 |  |__id
262 |__children
263    |--id
264    |__...
268 Tables:
269 -------
270 Main (key, id)
271 Names (key, id, name)
272 Dates (key, id, date)
273 Places (key, id, place)
275 TODO:
276 1. design of tables
277 2. personal parser
278 3. research charsets
281 Code analyzer article {{{1
283 ctags cbrowser cscope cflow
285 }}}1
286 miscfiles {{{
287     29mar2009
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.
295 Theory {{{
296 abbrevs.talk, abbrevs.gen:
297   Some common abbreviations used in electronic communication
299 airport
300   List of three letter codes for some major airports
302 ascii
303   A map of the ascii character set.
305 birthtoken
306   Traditional stone and flower for each month.
308 cities.dat
309   geographic coordinates of many major cities
311 connectives
312   English `connectives'; prepositions, pronouns, and the like.
314 countries
315   country abbreviations and names and capital cities
317 currency
318   currency abbreviations and names
320 inter.phone
321   International country telephone codes
323 languages
324   two-letter codes for languages, from ISO 639-1.
326 latin1
327   like `ascii'; describing the ISO Latin-1 character set
329 mailinglists
330   Description of all the public Project GNU related mailing lists.
332 na.phone
333   North American (+1) telephone area codes
335 na.postalcodes
336   postal codes for US states and Canadian provinces
338 operator
339   Precedence table for operators in the C language
341 propernames
342   Some common proper names
344 unicode
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.
350 dictionary:
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/
359 Usefull {{{
360 --- Run follows
361 ssh-keygen -t rsa1
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
367 --- CheckOut
368 cvs -z3 -d :ext:gxk@cvs.savannah.gnu.org:/sources/miscfiles co miscfiles
372 Changes:
373     30mar2009
374     Add top-level.domains
375     Change ORIGIN, README, Makefile.in
376     Add scripts/tld/parse_TLDs.sh
379 VIM features {{{
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
388 Stuff 2.4 {{{1
390 ADSL params
391 stone-barak.net.il@IBarak
392 X4C5Vng
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
400 to apply patch:
401 cd uClinux-dist
402 patch -p0 < ../0_patch
404 Initialization {{{2
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()
411 }}}2
413 Memory {{{
415 ISRAM configuration (from <uclinux>/linux-2.4.x/kad/bios/configcfg.cmd)
416 MEMORY {
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
422 ISRAM - 128K
423 CACHE L2 - 128K
424 SDRAM0 - 1M
425 SRAM0 - 512K
427 Physical                 loader
428 0x0000 0000              0x400 boot
429 ox0010 0000- ISRAM       0xc0000 L2
431 0x6000 0000
432 0x6008 0000- SRAM ext
434 0x6400 0000
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 
441 0xb100 0000- SDRAM
443 Now Flash devided:
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.
453 Kernel build {{{2
454 cvs {{{
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
464 Tag whole release
465 cd uClinux-dist
466 cvs update -A
467 cvs rtag -R libs-11 uClinux-libs
469 make image
470 make uClibc_clean
471 make user_clean
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'
478 Build all:
479 checkout
480 sh mklinks.sh
481 source /usr/local/tools/env.src
482 if FC3 add `export LD_ASSUME_KERNEL"2.2.19"'
483 make xconfig
484 make dep
485 make
488 192.168.2.227/
489     kernelrep   bsprep      appsrep
490     kerneltrac  bsptrac     appstrac
492 Get module
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
506 MDM3
507 main 141-31-45-56 (gxk-dt-lnx FC3) = 2h 07m
508 upg  141-31-45-56 (gxk-dt-lnx FC3) = 1h 31m
510 }}}2
512 Process creation flow {{{2
513 sys_execve_wrapper() linux-2.4.x/arch/armnommu/kernel/entry-common.S
514         add r3, sp, #S_OFF
515         b   SYMBOL_NAME(sys_execve)
517 sys_execve() linux-2.4.x/arch/tms320c6/kernel/sys_tms320c6.c
518 |  
519 |     nios_execve() linux-2.4.x/arch/niosnommu/kernel/process.c
520 |     |
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
530 }}}2
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
534         0x900c0000
536 The jffs2 image should be burned before.
537 LoAD LInux.out
538 Copy entry point
539 Load KAD
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
546 |   | || ||||
547 16  | || ||||
548 256   || ||||
549 4K     | ||||
550 64K      ||||
551 1M        |||
552 16M        ||
553 256M        |
556 Print address of text and data from uclinux/linux-2.4.x/kad/coff/coff_cls.c
557 in load_coff()
559 Softier ftp server {{{
560 194.90.150.243
562 212.150.247.141
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
572 make >0__log 2>&1
573 more 0__log
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
580         allows shrinking:
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
591 install vpnclient
592 untar, sudo ./vpn_install
593 after that to run it:
594 /etc/init.d/vpnclient_init start
596 vpn connection output:
597 {{{3
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
615 IP Compression: None
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
638 IP Compression: None
639 NAT passthrough is inactive
640 Local LAN Access is disabled
642 }}}3
643 }}}1
644 stuff-2.6 {{{
645         23aug2005
647 tools: {{{2
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
651 Can add msvcrt.dll?
653 -- changes --
654 linux-2.6.7:
655 arch/tms320c6/Makefile change to
656 arch/tms320c6/bsl/Makefile change also.
658 libs-2.6:
659 uClibc/libpthread/linuxthreads/Makefile
660 libnet/Makefile
661 libcrypt_old/Makefile
663 }}}2
665 Check out kernel source:
666 cvs co linux-2.6.7
667 cvs co libs-2.6
668 cvs co user-2.6
670 Make it:
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;
673       make dep && make
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
683 Length  = 0x200000
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
710 MontaVista {{{
711     26jun2006
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'
718 `make distclean'
719 `make menuconfig'
720 choose "Load alternative config file"
721 enter `/root/srcs/config-2.6.16-rt29'
722 choose "exit & save"
723 `make'
724 `make modules'
725 `make modules_install'
726 `cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.16-fb'
727 `vi /etc/lilo.conf'
728 `/sbin/lilo'
729 `reboot'
732 Build 2.6.17... {{{
733         03sep2006
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
736 untar 2.6.17.6
737 cd linux...
738 patch -sfp1 < ../patch-2.6.17-rt8
739 cd drivers/video && rm -rf intelfb
740 tar jxf intelfb.tbz
744 Configuration
745 uncomment SET_DNS in /etc/dhcpc/config
748 Davinci {{{
749         22aug2006
750 Connect board and press enter to stop autoload.
751 Write follows:
752 setenv bootdelay 5
753 setenv autoload no
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
759 bootm 0x80700000
761 In order to connect usb keyboard:
762 Connect device
763 mknod /dev/tty0 c 4 0
764 cat /dev/tty0 - this will print 
766 sigma 8622L {{{
767     10jul2006
768 svn co http://192.168.2.227/kernelrep/sigma/trunk/armutils_2.5.127.0
770         On FC3 (gxk-tools)
771 armutils 2.5.127
772 `make config' and change chipset to 8622
773 `make download'
774 `make toolchain'
775 `. ./path.sh' and `. ./kernelpath.sh'
776 `make linux-config'
777 `make linux'
778 `make rootfs'
779 `make romfs'
780 All binaries under bin directory.
781         On FC5 (gxk-dt-lnx)
782 armutils 2.5.127
783 `make config' and change chipset to 8622
784 `make download'
785 `make toolchain'
786     
787 mount -o nolock 192.168.215:/opt /mnt
789 sigma 8634 {{{
790         19sep2006
791 Toolchain flow {{{
793                 Toolchain
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
828 GDB . . .
830                 Bootloaders
832 zboot
833 yamon
835                 RootFS
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
844         change follows:
845         TARGET_mips
846         TARGET_ARCH
847         KERNEL_SOURCE
848         RUNTIME_PREFIX
849         DEVEL_PREFIX
850         SHARED_LIB_LOADER_PREFIX
851         UCLIBC_HAS_LFS
852         UCLIBC_HAS_WCHAR
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 
857         package/ncurses/
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
867         build_mipsel/root
869                 Kernel
871 Source
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
876 ---- 142 {{{
877 cd ~/prjs/sigma8634/142
878 svn co http://192.168.2.227/kernelrep/sigma-34/trunk/smp86xx fc5
879 cd fc5
880 ./mkenv26.sh
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
887 make menuconfig
888 make
889 . ./smp86.env
890 cd smp..boot
891 make zboot
892 make yamon
893 cd smp...kernel/linux
894 make menuconfig
895 make vmlinux (should error)
896 cd smp...rootfs
897 cp ../uClibc.config-tools ./toolchain/uClibc/uClibc.config
898 make menuconfig
899 make
900 cd smp...kernel/linux
901 make vmlinux
902 cd mrua...
903 delete printk() in MRUA_src/rua/emhwlib_kernel/kernel_src/em8xxx_fb.c
904 make
905 . ./MRUA.env
906 rm -rf lib/{librmjpeg.so,librmhttp.so, libsamples.so}
907 pushd lib
908 make librmjpeg.so librmhttp.so libsamples.so
909 make kernel
910 make apps
911 cd smp...kernel/linux
912 make menuconfig
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
917 cd smp...rootfs
918 make
919 nfsroot
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/
925 net init
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
930 reboot
931 net init
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
941 Build {{{
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
949 make menuconfig
950 make
951 . ./toolchain-path.env
952 cd ..
953 tar zxf /misc/share/sigma8634/147/CPU_KEYS_SMP8634_xosMc0-1.tar.gz
954 cd ./CPU_KEYS_SMP8634_xosMc0-1
955 . ./CPU_KEYS.env
956 cd ..
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
960 make zboot
961 make yamon
962 cd ..
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
967 make menuconfig
968 make
969 . ./rootfs-path.env
970 cd ..
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
975 cd linux-2.6.15
976 make menuconfig
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/
982 cd ../../
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
986 make
987 . ./MRUA.env
988 make kernel
989 make apps
990 cd ../smp86xx_rootfs_2.7.147.0
991 make
992 ./nfsroot.sh
994 Burning/Loading {{{
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):
1004 cd mrua
1005 . ./MRUA.env
1006 pushd MRUA_src/rmlibjpeg/src/
1007 make
1008 cp librmjpeg.so ../../lib
1009 popd
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"
1022 load uu 0xb0100000
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:
1029 xrpc 0xac080090
1030 load zbf 0xb3000000
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/...
1039 Run onli once:
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 ]
1045 net init
1046 load -b tftp://192.168.2.70/sigma8634/142/vmlinux.bin 0x90020000
1048 insmod llad
1049 insmod em8xxx
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
1055 On card do follows
1056 modprobe nfs
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.
1064 scopus {{{
1065     24may2007
1067 Moxa config:
1068 usb0   - IRP 192.168.0.10
1069 ttyr00 - IRP 192.168.0.20
1070 ttyr01 - IRP 192.168.0.30
1072 Encoder {{{
1074 There is telnet and web interfaces.
1076 --- Upgrade.
1077 connect ftp (anonymous)
1078 put file
1079 reboot
1083 Satellite config Hotbird {{{
1084 DVBS {{{
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
1090         11117 > 517
1091 mpeg4-hd 12130 > 1530
1093 10723 (973) H 29900 3/4 - BuzzTV x120d=4621
1096 DVBS2 {{{
1097 11996 V (L 1396) - Videoguard - (Sky Italia)
1101 IRD data {{{
1103 username: protect
1104 password: 301206
1106 protect/log/set_log_level
1108 ftp <ip>
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
1121 db/inc/db_fe.h
1122 db/src/db_fe.cpp
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
1130 --- Burn U-boot {{{
1131 Copy full fpga project
1132 Open XPS
1133 Copy files xmd_ppc405_0.opt and xmd_ppc405_1.opt to <project>/etc/
1134 Copy binary u-boot to <project> dir
1135 Open project in XPS
1136 Debug->Launch XMD
1137 New terminal opened w/ prompt XMD%. Type follows:
1138 XMS% rst
1139 XMD% dow u-boot
1140 Output:
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
1152 XMD% run
1154 Xilinx tools on linux {{{
1155 --- Installing ISE 9.1
1156 cd /media/Xilinx
1157 sudo ./setup
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
1165 IRP MUX {{{
1166     08jul2008
1167 --- Set frontend input
1168 mux ilp 1 5
1169 mux inp 1 ena
1170 mux s
1171 --- Set ASI output
1172 mux xs11 1 1 1 1
1176 --- Running 9.x
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
1179 xil9
1180 impact &
1181 xps &
1183 --- Running 10.x
1184 export XIL_IMPACT_USE_LIBUSB=1
1185 xil10
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
1224 IRP i2c address {{{
1225 The IRP board have 3 different i2c buses, start from hardware rev B.
1227 0-002e sensore ()
1228 0-0051 eeprom ()
1229 0-0068 rtc (ds1337)
1233 Enlarge available memory Of IRP {{{
1234 <Mux>
1236 <Uboot>
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 {{{
1243     29jul2008
1244 --- 8VSB to ASI
1245 mux xs2 ...
1247 --- 8VSB to Ofek
1248 /config/decoder/service/
1250 --- ASI1 to ASI1
1251 mux tsxc 1 1 2
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
1261 /exit
1262 and run follows
1263 cat cli.cmd | ./cli.elf
1266 FTP sites
1267 ftp.scopus.net u: irp p: scopus folder irp
1268 ftp.scopusamericas.com u: gues1 p: guest07
1270 Reserved IPs
1271 10.2.1.111
1272 10.2.1.197
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)
1283 SVN 3690
1284 1100
1286 smbmount //hercules/public$ /mnt/tmp -o username=geryk,workgroup=scopus
1287 //hercules/rnd
1288 //hercules/users/geryk
1290 Eli d-21302
1291 Akiva d-21597
1292 Micha d-21299
1293 Dima dima-linux
1294 Emily grumpy
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"
1305 accept rndonIxion
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'
1314 setenv loads_echo=1
1315 setenv baudrate 115200
1316 setenv bootdelay 3
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
1325 setenv netdev eth0
1326 setenv use_dhcp off
1327 setenv hw_rev 503227A 
1328 setenv user_opt 0
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'
1333 saveenv
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
1343   Building for:               linux
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
1352     }}}
1354 ivirtus {{{
1355     21sep2009
1357 IBM server (NASDAQ) {{{
1358         x3400 7976
1359     hostname: nasdaq
1360     ip: 192.168.1.61
1361     MAC: 00-21-5e-4f-84-fa
1362     s/n: 7976KJG-KD8489N
1364 support phone: *6557
1367 ESP email {{{
1368     KIWINET
1369 Alex 052-8066614
1370 gery.kahn@espinc.com
1371 password: 12Gex!@oo
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
1385 aux - 
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
1397 page - 2048B
1398 block - 64 pages - 128KB
1399 Cheap has 8192 blocks 8192*128KB=1GiB
1401 --- Burn U-boot
1402 entry point
1404 --- Burn kernel
1405 tftp 80700000 uImage
1406 nand erase x400000 0x200000
1407 nand write x80700000 x400000 x200000
1409 --- Burn rootfs
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.
1424 --- Burn NAND flash
1425 ARM9_0 - Connect device
1426 Debug/Connect
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
1434 Load NANDeraser.out
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
1437 input 0x02004000
1439 --- UBL src
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
1453 Uboot options {{{
1455 Yura {{{
1456 NFS boot:
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'
1462 Flash JFFS2 boot:
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'
1468 Flash YAFFS2 boot:
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'
1474 RAM disk:
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'
1507 Netsticks
1509 SIM free is 080.250.159.037 - SIM 971 - 052-5236299
1511 ti {{{
1512     01aug2010
1514 TI's linux {{{
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
1519 sudo exportfs -a
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
1535 TI-isreal.bat
1538 Common {{{
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
1545 set uboot env:
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
1549 Trio                  Quattro
1550 1271  W B G     1281  W B G FM
1551       +               +
1552 1273  a         1283  a
1553                 1383
1555 RefClock
1556 b00 - 19.2MHz
1557 b01 - 26MHz
1558 b10 - 38.4MHz
1559 b11 - 54MHz
1561 --- Front end modules (FEM)
1562 FEM is separate chip from WLAN w/ own numbers.
1563 There are 2 FEM (RFDM n TQS).
1564 6M9 - TQS
1565 ES 1.7 - v1.7
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
1571 works from fw v339.
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...
1582 PCA-A|B-033504
1583 A - RFMD
1584 B - TQS
1586 RFMD 3.5 - PCA-A-033404
1588 --- Ref Clock
1590 Trio ext 38.x MHz
1591      int 26MHz
1592 Quattro ext / int 26MHz
1594 On Trio written on the chip on the board's traverse
1596 --- FW logger
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.
1602 --- 
1603 WL1271 PG3.1
1604 WL1271L PG3.32
1606 --- Documentation
1607 Trio init:
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/
1609 Quattro init
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/
1612 Packet filtering
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
1617 the wizery {{{
1619 ftp ftp.wizery.com
1620 user: anonymous
1621 pass: geryk@ti.com
1622 cd incoming
1623 put file
1625 ssh -lgeryk wizery.com -p13117
1626 Add to .ssh/config
1627 Host wizery.com
1628 Port 13117
1629 git clone ssh://wizery.com:/pub/wl1271.git
1633 Zoom3 external{{{
1635 Hardware
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
1651 Beagleboard {{{
1652         http://elinux.org/BeagleBoard#Source
1654 OMAP3630/3730-GP ES2.0, CPU-OPP2, L3-165MHz, Max CPU Clock 1 Ghz
1656 --- Sources
1657 git clone git://gitorious.org/x-load-omap3/mainline.git xloader
1658 cd xloader
1659 make distclean
1660 make omap3530beagle_config
1661 make
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
1665 cd 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
1673 DEVICE=usb0
1674 BOOTPROTO=none
1675 ONBOOT=yes
1676 IPADDR=192.168.1.1
1677 NETMASK=255.255.255.0
1678 GATEWAY=192.168.1.1
1679 DNS1=192.168.1.1
1680 TYPE=Ethernet
1681 USERCTL=no
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:
1691 mmc init
1693 fatload mmc 0 0x80200000 x-load.bin.ift
1694 nandecc sw
1695 nand erase 0 80000
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
1711 Panda {{{
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
1720 Address mapping{{{
1721 PART_DOWN
1722 mem st 0x0
1723 mem sz 0x000177c0
1724 reg st 0x00300000
1725 reg sz 0x00008800
1726 Part_WORK
1727 mem st 0x00040000
1728 mem sz 0x00014fc0
1729 reg st 0x00300000
1730 reg sz 0x0000a000
1731 me2 st 0x003004f8
1732 me2 sz 0x00000004
1733 me3 st 0x00040404
1734 me3 sz 0x00000004
1735 PART_DRPw
1736 mem st 0x00040000
1737 mem sz 0x00014fc0
1738 reg st 0x00310000
1739 reg sz 0x00006000
1741 Calculate
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 ???
1748 driver {{{
1750 Chip Id {{{
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,
1755 where bits
1756 31:16 give 0403 Trio, 0503 Quattro
1757 7:0   give 01 PG 1.0
1758            11 PG 2.0
1759            12 PG 1.2
1760            13 PG 1.3
1762 To read PG ver from TOP reg REG_FUSE_DATA_2_1 from 0x050a (127x), where bits
1763 5:4   give ROM ver
1764 3:2   give PG ver
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
1768 3:0   give New PG ver
1770 _plt_start() (main.c)
1771 |-> _chip_wakeup()
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
1778 |       |       |-> ...
1779 |       |-> wl128x_boot_clk()
1780 |       |       |-> 
1781 |-> _plt_init()
1782 |-> ...
1786 Quattro {{{
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 
1792     SPI partitions
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.
1804  *                                Virtual address
1805  *                                     space
1807  *                                    |    |
1808  *                                 ...+----+--> mem.start
1809  *          Physical address    ...   |    |
1810  *               space       ...      |    | [PART_0]
1811  *                        ...         |    |
1812  *  00000000  <--+----+...         ...+----+--> mem.start + mem.size
1813  *               |    |         ...   |    |
1814  *               |MEM |      ...      |    |
1815  *               |    |   ...         |    |
1816  *  mem.size  <--+----+...            |    | {unused area)
1817  *               |    |   ...         |    |
1818  *               |REG |      ...      |    |
1819  *  mem.size     |    |         ...   |    |
1820  *      +     <--+----+...         ...+----+--> reg.start
1821  *  reg.size     |    |   ...         |    |
1822  *               |MEM2|      ...      |    | [PART_1]
1823  *               |    |         ...   |    |
1824  *                                 ...+----+--> reg.start + reg.size
1825  *                                    |    |
1827  */
1831 Boot procedure {{{
1832         02dec2010
1834 Load module wl12xx
1835 Load modules wl12xx_sdio
1836 Start wless interface
1837   Chip wakeup
1839 Boot FW n NVS:
1841 wl1271_plt_start() or 
1843 wl1271_chip_wakeup()
1844 |-> ...
1845 |-> wl1271_fetch_firmware() - read fw file to structure
1846 |_> wl1271_fetch_nvs() - read nvs file to structure
1848 wl1271_boot()
1849 |-> wl1271_load_firmware()
1850 |   |->...
1851 |   |-> wl1271_boot_upload_nvs()
1852 |   |->...
1853 |   |_> wl1271_boot_upload_firmware()
1854 |-> wl1271_boot_run_firmware()
1855 |-> wl1271_boot_enable_interrupts()
1856 |_> wl1271_event_mbox_config()
1858 wl1271_plt_init()
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
1866         INI file:
1868 --- General prms
1869 TXBiPFEMAutoDetect
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
1881 --- 2.4G params
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
1885 --- 5G params
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
1889 --- TQS 2.4G params
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
1903 --- TQS 5G params
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
1932 keep alive {{{
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
1940   The TSF not in sync
1941 The retry will happened during 0.5sec (hardcoded time)
1943 --- Configuration
1944 wl1271_acx_keep_alive_config() (acx.c)
1945 Parameters:
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)
1971 Cfg params:
1973     tx_compl_timeout
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>
1985         DEBUG_IRQ       = BIT(0),
1986         DEBUG_SPI       = BIT(1),
1987         DEBUG_BOOT      = BIT(2),
1988         DEBUG_MAILBOX   = BIT(3),
1989         DEBUG_TESTMODE  = BIT(4),
1990         DEBUG_EVENT     = BIT(5),
1991         DEBUG_TX        = BIT(6),
1992         DEBUG_RX        = BIT(7),
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),
2002         DEBUG_ALL       = ~0
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
2030 Cisco 1250 {{{
2031         2011-03-03
2032 Downloaded fw c1250-rcvk9w8-tar.124-21a.JA2.tar
2035 Firmware logger GUI {{{
2037 Install app
2038 Connect USB cable and check that 4 new COM ports appeared.
2039 The 4th is FW logger.
2041 In app:
2042 Alt+F7
2043 Setup button
2045 Port setting: 
2049 install vpn {{{
2050         2011-04-26
2051 apt-get install vpnc
2052 sudo vi /etc/vpnc/ti.mercury.conf
2053 IPSec gateway mercury.ext.ti.com
2054 IPSec ID linuxvpn
2055 IPSec secret 2001vpn
2056 Xauth username ENT/a0387671
2057 Xauth password <psswd>
2059 connect:
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
2079 Workplace {{{
2080                       ______________________________
2081                      |                              |
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 ---|              |               |
2087       Beagle         |              |               |
2088    08:00:28:06:64:31 |              |               |
2089                      |              |               |__> PC (ub102267) x64
2090    eth=172.16.1.8 ---|              |                    eth1=172.16.1.12
2091       Panda          |              |
2092    08:00:28:08:64:31 |              |
2093                      |              |
2094    eth=172.16.1.5 ---   /-------------------------------------\
2095       Blaze Android    |        |                   |          |
2096    08:00:28:05:64:31   |        |                   |          |
2097                        |        |                   |          |
2098               ---------         |                   |          |
2099              |                  |                   |          |
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:
2107 --- Proxy
2108 FF: http://proxyconfig.itg.ti.com/proxy.pac
2110 wwweuproxy.ith.ti.com:80
2112 in .bashrc:
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"
2117 git:
2118 git config --global http.proxy wwweuproxy.ith.ti.com:80
2121 apt-get:
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";};};
2129 U-Boot env:
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'
2139 saveenv
2141 Build the prj:
2142 export CONCURRENCY_LEVEL=3
2143 make uImage modules
2144 cp ./arch/arm/boot/uImage /work/tftpboot/1273e/
2145 make modules_install INSTALL_MOD_PATH=${NFSROOT}
2147 The calibration {{{
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
2153 --- TxBip procedure
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 
2161 each subband.
2163 from docs {{{
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
2167 BiP sequences:
2169 Tx continuous
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
2174 Tx tone
2176 Tx BIP
2177 TEST_CMD_CHANNEL_TUNE
2178 TEST_CMD_UPDATE_PD_REFERENCE_POINT
2179 TEST_CMD_P2G_CAL
2182 --- from Ilanit's email
2184 Tx BIP procedure for single band:
2185 To put 50 Ohm terminator on the RF and perform
2186 Set to active mode
2187 / w p 1 l 2 f 2
2188 Actual TxBIP cmds
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
2195 Set to active mode
2196 / w p 1 l 2 f 2
2197 Actual TxBIP cmds
2198 / w p 1                 poWer/set_Power_mode
2199 / w l 2                 poWer/set_powersave_powerLevel
2200 / w f 2                 poWer/set_deFault_powerlevel
2201 / t r h 0 7
2202 / t b b 423 128 0
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):
2220 / t r h 1 56
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 {{{
2228 0x01
2229 0x6d 0x54
2230 0xXX 0xXX 0xXX 0xXX     MAC addr (5,4,3,2)
2231 0x01 0x71 0x54
2232 0xXX 0xXX               MAC addr (1,0)
2233 0x00 0x00
2234 0x00 0x00 0x00 0x00 0x00 0x00 0x00
2235 0x00 0x00 0x00
2236 0x01                    Tx sec type
2237 0x01 0x99               Tx sec len (409B)
2238 Tx values - def 0x00
2239 0x02                    Rx sec type
2240 0x00 0x13               Rx sec len (19B)
2241 Rx values - def 0x00
2242 0xaa                    Ver sec type
2243 0x00 0x03               Ver sec len
2244 0x00 0x02 0x00
2245 0xff 0xff 0x00 0x00     the end of NVS sec
2251 Patch creation {{{
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":
2266 git add a.c
2267 git commit -a -m "a.c"
2268 git add b.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 {{{
2280     27jul2010
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
2290 cd <to kernel dir>
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
2295 export ARCH=arm
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}
2302 Commiting:
2303 git add arch/arm/mach-omap2/board-zoom-wlan.c
2304 git add include/linux/wl12xx.h
2305 git commit -a
2307 set uboot env:
2308 nand unlock
2309 nand ecc sw
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 {{{
2316     03aug2010
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
2321 cp it to usr/sbin
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 {{{
2330     03aug2010
2331 connect minicom
2332 minicom -D /dev/ttyS0
2333 config it w/o hardware support
2335 cd /work/nokia
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
2347 make run
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
2358       Target                    PC
2359     wlan                 eth1=192.168.1.100
2360                                 |
2361                             --------
2362                            |        |
2363                eth=192.168.1.1    eth=192.168.1.2
2364                     AP1             AP2
2365                 wlan              wlan
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
2369 by wired ethernet.
2371 Add to /etc/network/interfaces
2373 auto eth1
2374 iface eth1 inet static
2375        address 192.168.1.100
2376        netmask 255.255.255.0
2378 auto eth2
2379 iface eth2 inet static
2380        address 172.16.1.10
2381        netmask 255.255.255.0
2384 Supported APs: WRT54GL, WRT610n
2386 --- Nokia testsuite analyzes
2388  basic_functionality
2389  BT_Funcional_tests_-_Release_test_set
2390  nft_4_hours
2391  WLAN_FuTe_RelSet
2392  WLAN_FuTe_RelSet_PS
2393  WLAN_Misc_tests
2394  WLAN_NFT_24H
2395  WLAN_NFT_Xh
2396  WLAN_Pairwise
2397  WLAN_tput_reg
2398  WLAN_Validation
2399  WLAN_WMM
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
2413 Install python:
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
2434 sleep 1
2435 ifconfig wlan0 hw ether 00:22:33:44:55:66
2436 sleep 1
2437 cat /sys/kernel/debug/mmc2/ios
2438 sleep 1
2439 ifconfig wlan0 up
2440 #insmod /lib/modules/`uname -r`/kernel/drivers/usb/gadget/g_ether.ko
2441 #ifup usb0
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
2446 On the SERVER side
2447 ------------------
2448 use usb0 {{{
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 {{{
2464     09aug2010
2466     The Quattro docs:
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.
2470 Hardware setup {{{
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
2477 Prepare kernel {{{
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}
2501 Prepare sdcard:
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
2510 Why need it?
2512 This macro used in
2513         wl1271_reg.h
2514         wl1271_sdio.c
2515         wl1271_boot.c
2517 Current status
2519 load wl1271_sdio
2520 |-> wl1271_plat_probe()
2521     |-> set_irq_type() - RISING or FALLING
2523 wl1271_op_add_interface()
2524 |-> wl1271_boot()
2525     |-> ...
2526     |-> wl1271_boot_write_irq_polarity()
2527     |   |-> set reg OCP_REG_POLARITY to 0 if rising
2528     |-> ...
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.
2537 Solution:
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) {{{
2544         22aug2010 02sep2010
2545 --- Setup configuration {{{
2547     eth=172.16.1.7 ---> eth2=172.16.1.10
2548       Target                    PC
2549     wlan                 eth1=192.168.1.100
2550                                 |
2551                     +---------------------+
2552                     |                     |
2553              eth=192.168.1.1    eth=192.168.1.2
2554            00:25:9c:c9:59:98    00:25:9c:57:19:64
2555                    AP1                   AP2
2556               wlan                 wlan
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
2562 by wired ethernet.
2564 Supported APs: WRT54GL, WRT610n
2566 Getting new source n build:
2567 pushd /work/ti/nokia_testing/peripherals-wlan-tests
2568 git pull
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
2573 to remove package
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
2582 Config kernel
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}
2592 Running tests:
2593 target -
2594     python /usr/share/peripherals-test-autom/dut.py -v
2595 server -
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
2602 Status:
2603     1. Tests use `iwconfig' instead of `iw'. Are there plans to switch? Yes (Tuomas)
2605 Open issues:
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 {{{
2612     17aug2010
2614 TODO: check for support of 802a in mac802, operate it (scan), to understand the cmd flow
2616 Assemble hw: {{{
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
2627 git branch 1273_ext
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}
2640 add to wl1271.h
2641 #define WL1271_80211A_ENABLED
2643 in drivers/net/wireless/wl12xx/wl1271_main.c delete checking for NVS file size
2644 line 572 :
2645 if (fw->size != sizeof(struct wl1271_nvs_file) &&
2646         (fw->size != WL1271_INI_LEGACY_NVS_FILE_SIZE)) {
2648 Status:
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
2654 Running testing {{{
2655 On PC side:
2656 iperf -s -i1    
2657 On target side:
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
2667 sleep 1
2668 ifconfig wlan0 hw ether 00:22:33:90:64:31
2669 ifconfig wlan0 up
2670 iw wlan0 connect peripherals-conn-5ghz
2671 dhclient wlan0 &
2672 iperf -c 192.168.1.100 -i1
2675 16sep2010
2676 Send patch to switch support 11a by kernel config as experimental.
2677 20sep2010
2678 Send patch to community. NACKed by Luca, cause have runtime recognition.
2681 008. Prepare P1 release {{{
2682         03oct2010
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,
2687         ba_initiator 
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 ./*
2696 rebuild iw:
2697 make CFLAGS=-DCONFIG_LIBNL20 LIBS=-lnl-genl NLLIBNAME=libnl-2.0
2699 --- libnl
2700 git clone git://git.kernel.org/pub/scm/libs/netlink/libnl.git
2701 cd libnl
2702 autogen.sh
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
2706 --- iw
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
2711 --- wpa_supplicant
2712 git clone git://w1.fi/srv/git/hostap.git
2714 Running w       pa_cli:
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\
2719 boot\
2720         MLO, uboot, uImage
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 {{{
2729         05oct2010
2730 commit changes
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 {{{
2744         06oct2010
2746 To enable event tracing for testing purposes.
2748 http://wireless.kernel.org/en/developers/Documentation/mac80211/tracing
2750 Tracing
2751 make menuconfig
2752 FUNCTION_TRACER=y
2753 Kernel Hacking -> Tracers -> Kernel function tracer
2754 MAC80211_DRIVER_API_TRACER=y
2755 Network support -> Wireless -> Select mac80211 debugging features -> 
2756     Driver API tracer
2758 How to use:
2759 mkdir /debug
2760 mount -t debugfs debugfs /debug
2761 and run:
2762 echo 1 > /debug/tracing/events/mac80211/enable
2763 cat /debug/tracing/trace
2765 Dynamic debug
2766 make menuconfig
2767 Kernel Hacking -> Enable dynamic printk() support
2769 How to use:
2772 011. Support P1 release {{{
2773         10oct10
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:
2786 Ring
2796 Event
2797 PsPoll
2798 RxFilter
2799 CalibrationFail
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 {{{
2825         17oct2010
2826 git checkout master
2827 git branch rel-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 {{{
2836         10oct2010
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)
2846 |-> ...
2847 |-> wl1271_alloc_hw()
2848     |-> set sg_enabled = true
2849 |-> ...
2851 wl1271_op_add_interface()
2852 |-> ...
2853 |-> wl1271_hw_init()
2854     |-> ...
2855     |-> wl1271_init_pta()
2856         |-> wl1271_acx_sg_cfg() (_acx.c)
2857             |-> ...
2858             |-> ...
2859         |_> wl1271_acx_sg_enable() (_acx.c)
2860             |-> ...
2861             |-> wl1271_cmd_configure( ACX_SG_ENABLE )
2862             |-> ...
2863     |-> ...
2864 |-> ...
2866 wl1271_sysfs_store_bt_coex_state() (_main.c)
2868 wl1271_sysfs_show_bt_coex_state() (_main.c)
2870 WiLink source {{{
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 {{{
2881                                         WiLink  NLCP
2882 Per threshold                           7500
2883 HV3 max override                        0
2884 NFS sample interval                     400
2885 Load ratio                              50
2886 Auto PS mode                            1
2887 Auto scan prob-req                      170
2888 Active scan duration factor HV3         50
2889 Antenna config                          0
2890 Beacon miss percent                     60
2891 Rate adapt thres                        12
2892 Rate adapt SNR                          0
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
2907 RXT                                     1200
2908 TXT                                     1000
2909 ADAPTIVE_RXT_TXT                        1
2910 PS_POLL_TIMEOUT                         10
2911 UPSD_TIMEOUT                            10
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
2926 HV3_MAX_SERVED
2927 DHCP_TIME
2928 Active scan duration factor A2DP        100
2929 TEMP_PARAM_1
2930 TEMP_PARAM_2
2931 TEMP_PARAM_3
2932 TEMP_PARAM_4
2933 TEMP_PARAM_5
2937 Status:
2938 16oct2010 moved to firmware
2940 014. Create PLT utility {{{
2941         20sep2010 17oct2010 
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
2953 TIWha::Scan()
2954 #ifdef PLT_TESTER
2955 |-> PltSm(NULL)
2956 |   |-> TIWha::PltSm()
2957 #endif
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
2964 TEST_CMD_FCC
2965 TEST_CMD_STOP_TX
2966 TEST_CMD_TELEC
2967 TEST_CMD_STOP_TX
2968 TEST_CMD_UPDATE_PD_REFERENCE_POINT
2969 TEST_CMD_P2G_CAL
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)
2978 |-> ...
2979 |-> load INI file
2980 |   wlanDrvIf_LoadFiles()
2981 |-> ...
2983 drvMain_SetDefaults() (stad/src/Ctrl_Interface/DrvMain.c)
2984 |-> osInitTable_IniFile() (platforms/os/linux/src/osRgstry_parser.c)
2985 |   |-> ...
2986 |   |-> regFillInitTable() (platforms/os/common/src/osRgstry.c)
2987 |   |-> ...
2988 |-> TWD_SetDefaults() (TWD/TWDriver/TWDriver.c)
2990 set_nvs {{{
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
3004 build:
3005 make LIBNL=/work/zoom2/1273e CROSS_COMPILE=arm-none-linux-gnueabi-
3007 Build wlan_cu from WiLink prj {{{
3008         17oct2010
3009 Download WiLink from MCP_2.x_1
3011 p1273
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;    
3078         __le16 id;                      
3079         __le16 status;                  
3080         u8 data[0];                     
3081     struct wl1271_cmd_test_header test; 
3082         u8 id;                          
3083         u8 padding[3];                  
3084     __le16 len;
3085     u8  buf[MAX_TLV_LENGTH];
3086     u8  type;
3087     __le16 radio_status;
3088     u8  nvs_version[MAX_NVS_VERSION_LENGTH];
3089     u8  sub_band_mask;
3090     u8  padding2;
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;
3129         u8 padding[2];
3130         __le32 delay;
3131         __le32 rate;
3132         __le16 size;
3133         __le16 amount;
3134         __le32 power;
3135         __le16 seed;
3136         u8 pkt_mode;
3137         u8 dcf_enable;
3138         u8 g_interval;
3139         u8 preamble;
3140         u8 type;
3141         u8 scramble;
3142         u8 clpc_enable;
3143         u8 seq_nbr_mode;
3144         u8 src_mac[MAC_ADDR_LEN];
3145         u8 dst_mac[MAC_ADDR_LEN];
3146 } __attribute__((packed));
3150 Status:
3152 17oct2010
3153 by Ohad to start converting wlan_cu from WiLink prj.
3154 18oct2010
3155 done wlan_cu build of native WiLink prj
3156 27oct2010
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)
3162 28oct2010
3163 Compilation: 
3164   1. incompatible pointer type - Done
3165 Code flows:
3166   1. TEST_CMD_CHANNEL_TUNE - TODO check if active before send cmd
3167 03nov2010
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
3170 04nov2010
3171   After further discussion w/ Luca new patch created to remove all unused structures from wl1271_cmd.h
3173 Support SeaRay - NB72 from CCI {{{
3174         21oct2010
3175 by Lior Shapira:
3176 The CCI is Taiwan company builds platform for Nokia, based on Qualcomm board 
3177 w/ 1271, single band, TQS. Using MeeGo product.
3179 Status:
3180 21oct2010
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.
3183 24oct2010
3184         Send email to Sangi about Luca's git
3185 01nov2010
3186         Send PLT utility in current status to Sangi. Accepted as successful.
3187 03nov2010
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 {{{
3197 The 1 is red line
3199 1  3  5  7  9
3200  2  4  6  8
3202 db9 connector           10pin connector
3203 1                       1
3204 2                       6                       
3205 3                       2
3206 4                       7
3207 5                       3
3208 6                       8
3209 7                       4
3210 8                       9
3211 9                       5
3214 Kernel patch:
3215 ./patches/beagleboard/\[PATCH\]\ omap\ \ beagle\ \ add\ support\ for\ wl1271\ on\ the\ board\ file.eml
3217 Uboot env:
3218 console=ttyO2,115200n8
3220 Change in /etc/inittab
3223 Got patch and .config
3225 make distclean
3226 make omap2plus_defconfig (from 2.6.37-rcX)
3227 make menuconfig
3228 make uImage
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
3240 Config kernel:
3241 REGULATOR_FIXED_VOLTAGE=y
3242 NL80211_TESTMODE=y
3243 WL12XX_MENU=y
3244 CRYPTO_ECB=y
3245 CRYPTO_ARC4=y
3248 016. Error msgs w/ new NVS file {{{
3249         07nov2010
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.
3254 Scanning {{{
3255 struct wl1271_cmd_scan
3256   struct wl1271_cmd_header
3257     __le16 id                                   2
3258     __le16 status                               2
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
3264     u8 n_ch                                     1
3265     u8 n_probe_reqs                             1
3266     __le32 tx_rate                              4
3267     u8 tid_trigger                              1
3268     u8 ssid_len                                 1
3269     u8 padding1[2]                              2
3270     u8 ssid[IW_ESSID_MAX_SIZE]                  32
3271     u8 band                                     1
3272     u8 use_ssid_list                            1
3273     u8 scan_tag                                 1
3274     u8 padding2                                 1 _____ 56 ----- 60
3275   struct basic_scan_channel_params
3276     __le32 min_duration                         4
3277     __le32 max_duration                         4
3278     __le32 bssid_lsb                            4
3279     __le16 bssid_msb                            2
3280     u8 early_termination                        1
3281     u8 tx_power_att                             1
3282     u8 channel                                  1
3283     u8 dfs_candidate                            1
3284     u8 activity_detected                        1
3285     u8 pad                                      1 _____ 20 ----- 80
3287 Where from error comes? {{{
3288 wl1271_rx()
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) {{{
3297   nvs                                           468B
3298   struct wl1271_ini_general_params
3299     u8 ref_clock                                1
3300     u8 settling_time                            1
3301     u8 clk_valid_on_wakeup                      1
3302     u8 dc2dc_mode                               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
3307     u8 sr_state                                 1
3308     u8 srf1                                     16
3309     u8 srf2                                     16
3310     u8 srf3                                     16
3311   padding                                       1
3312   struct wl1271_ini_band_params_2
3313   padding                                       1
3314   struct wl1271_ini_fem_params_2
3315   padding
3316   struct wl1271_ini_fem_params_2
3317   padding
3318   struct wl1271_ini_band_params_5
3319     u8 rx_trace_insertion_loss                  7
3320     u8 tx_trace_loss                            7
3321     u8 rx_rssi_process_compens                  15
3322   padding
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
3332     u8 tx_ibias                                 6
3333     u8 rx_fem_insertion_loss                    7
3334     u8 degraded_low_to_normal_thr               1
3335     u8 normal_to_degraded_high_thr              1
3336   padding
3337   struct wl1271_ini_fem_params_5
3338   padding
3341 Status:
3342         09nov2010
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.
3346 Next steps:
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
3349 w/ CRDA.
3350 Freezed by Ohad decision.
3352 017. Fix support for 11a {{{
3353         01dec2010
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.
3359 Status:
3360         02dec2010 Luca getting into the issue
3361         03dec2010 by Luca: disable 11a channels when wl->enable_11a is known
3363 80336 {{{
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)
3377 Closed.
3379 80809 {{{
3380 Low RSSI trigget not exists
3382 Bug in Developed state.
3384 Ask Ruthy.
3386 80766 {{{
3387 RSSI doesn't update.
3389 018. Build L23 (Poky) {{{
3390         20dec2010 (3 hrs)
3391 Open account in dirac.dal.design.ti.com
3392 login and run
3393 mkview_linked omapsw_a0387671_test
3394 output {{{
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".
3397 Created view.
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
3403 Other:          : r-x
3405 Where is cleartool? /usr/atria/bin/cleartool
3406 run `../meta-texasinstruments/scripts/ccfetch-installer.sh'
3407 output {{{
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
3418 Ok, I've got:
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
3426 Is this correct?
3427   Y/N> Y
3428 Found identity id_rsa.. should I use this?  (Only say 'Y'es if it has an empty passphrase)
3429   Y/N> Y
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
3433 if prompted:
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    
3449 Done!
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 {{{
3458         17nov2010
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.
3462 --- TxBip
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
3468 --- TxCont
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
3476 --- RxStat
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
3482 TODO:
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
3491 x 7. Add to README:
3492         Kernel cfg NL80211_TESTMODE=y
3493         How to compile
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
3497         mkdir patches
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/
3500         Add to the subject:
3501                 Release of TI's PLT utility based on driver wl12xx
3502         Add after subject:
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 {{{
3509         26dec2010
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?
3515 --- AP (fw M6)
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
3520 RFMD_S_3.5.ini
3521 TQS_D_1.0.ini
3522 TQS_D_1.7.ini
3523 TQS_S_2.5.ini
3524 TQS_S_2.6.ini
3525 INI files WL7 - those are files for quattro
3526 RFMD_S_3.5.ini
3527 TQS_D_1.0.ini
3528 TQS_D_1.7.ini
3529 TQS_S_2.5.ini
3530 TQS_S_2.6.ini
3532 --- STA (fw M6)
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
3536 RFMD_S_3.5.ini
3537 TQS_D_1.0.ini
3538 TQS_D_1.7.ini
3539 TQS_S_2.5.ini
3540 TQS_S_2.6.ini
3542 --- STA (fw MCP2.5)
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
3547 RFMD_S_3.5.ini
3548 TQS_D_1.0.ini
3549 TQS_D_1.7.ini
3550 TQS_S_2.5.ini
3551 TQS_S_2.6.ini
3552 INI files WL7 - those are files for quattro
3553 RFMD_S_3.5.ini
3554 TQS_D_1.0.ini
3555 TQS_D_1.7.ini
3556 TQS_S_2.5.ini
3557 TQS_S_2.6.ini
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:
3562 ini_files\
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)
3567 Delivered 26dec2010
3570 021. BringUp BeagleBoard {{{
3571         09jan2010
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
3576 cd x-load
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
3585 cd u-boot
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/
3596 1. Add patch
3597 2. copy bb config
3598 3. compile kernel
3600 --- Change u-boot env:
3601 console=ttyO2,115200n8
3603 12jan2011
3604 Created project at http://git.gitorious.org/beagletoy/beagletoy.git
3605 w/ MLO, uboot, kernel, rootfs, Luca's patches and REAME.
3606 13jan2011
3607 The GIT removed due to legal issues and everything placed at
3608 \\dilfs14\wlan\WLAN\NLCP\...
3610 022. Overclocking Zoom3 to 1GHz {{{
3611         12 - 13jan2011
3612 from Documentation/cpu-freq/user-guide.txt
3613 and Documentation/arm/OMAP/omap_pm
3614 --- Kernel config
3615 CONFIG_CPU_FREQ
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
3623 CONFIG_CPU_IDLE
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
3634 git fetch omap-dvfs
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
3640 If there is error:
3641  error: Untracked working tree file
3643  git clean -f -d
3645 --- To remove suspend/resume prints
3646 CONFIG_PM_DEBUG
3647 --- To stop suspend/resume availability
3648 CONFIG_SUSPEND
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 {{{
3660         23-25jan2011
3661 --- Build w/o PM
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 {{{
3673         18jan2011
3675 1. Fixed bugs
3676 2. Support mcp 2.5
3678 tune_channel 0 7
3679 tx_cont 2000 1 100 0 5000 0 3 0 0 0 0 0 1 0 08:00:28:90:64:31
3680 tx_stop
3682 power_mode <on|off>
3683 tune_channel <band> <channel>
3684 calibrate <0|1> * 8
3686                         NVS     ini
3687 Create reference         -       +
3688 Calibrate                ?       -
3689 Update NVS               +       +
3691 create_nvs_file()
3692 |-> nvs_fill_nvs_part()
3693 |-> nvs_fill_radio_prms
3696 19jan2011
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
3701 24jan2011
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..
3711 2011-01-31
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 {{{
3716         2011-02-06
3718 git clone git://gitorious.org/beagleboard-validation/scripts.git
3720 --- u-boot
3721 git clone git://git.denx.de/u-boot.git
3722 pushd u-boot
3723 git remote add beagleboard-validation git://gitorious.org/beagleboard-validation/u-boot.git
3724 git remote update
3725 git checkout -b koen-beagle-2010.12 beagleboard-validation/koen/beagle-2010.12
3726 p1273e
3727 make omap3_beagle_config
3728 make
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
3736 Apply
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) {{{
3751         2011-02-07
3752 Based on Shahar's patches from 2011-02-06
3754 Fixes in calibrator INI parser.
3756 2011-02-09
3757 Sent build for Ilanit to test.
3759 issues
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 {{{
3765         2011-02-13
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)
3770 Add PLT patch 
3773 028. Build R3 for Beagleboard {{{
3774         2011-02-14
3775 Apply performance patches (Ido patches/performance/2011-02-13)
3776 Add Quattro patches (Shahar 2011-02-08) + fix from Arik
3777 Add PLT patch 
3778 Revert AutoARP
3779 Align-chip-interrupt-pacing-setting
3780 Stop BA event
3783 Add Ido's Fix kernel panic in Tx
3784 Add AP patches
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
3793 git fetch koen-omap
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 {{{
3859         2011-02-22
3861 git clone git://git.denx.de/u-boot.git
3862 cd u-boot
3863 git remote add omapzoom git://dev.omapzoom.org/pub/scm/bootloader/u-boot.git
3864 git fetch omapzoom
3865 git branch omapzoom-omap4_dev omapzoom/omap4_dev
3866 git checkout omapzoom-omap4_dev
3867 git pull
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"
3875 make distclean
3876 make omap4430panda_config
3877 make
3879 git clone git://dev.omapzoom.org/pub/scm/bootloader/x-loader.git
3880 cd x-loader
3881 git checkout -b omap4_dev origin/omap4_dev
3882 make omap4430panda_config
3883 make ift
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
3907 cd linux-2.6
3908 make omap2plus_defconfig
3909 make menuconfig
3910 make uImage modules
3911 cp -f ./arch/arm/boot/uImage /tftpboot/panda/
3912 make modules_install INSTALL_MOD_PATH=${NFSROOT}
3915 030. Enable bluetooth on Panda {{{
3916         2011-02-27
3918 Kernel changes:
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 = {
3933         .name           = "kim",
3934         .id             = -1,
3935         .dev.platform_data = &gpios,
3938 static struct platform_device *panda_devices[] __initdata = {
3939         &leds_gpio,
3940         &wl127x_device,
3944 On boot do follows:
3946 insmod /lib/modules/`uname -r`/kernel/net/bluetooth/bluetooth.ko
3947 ./uim /dev/ttyO1 3686400 none 22 &
3948 hciconfig hci0 up
3950 hcitool dev # gives you the device's bd address
3951 hcitool scan # scans for nearby bluetooth devices
3954 031. Calibrator 1-step procedure {{{
3955         2011-02-09
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
3958 also.
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 {{{
3964         2011-02-27
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.
3971 How to do it:
3972 openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'
3975 033. Close bug about calibration for AP mode {{{
3976         2011-03-02
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 {{{
3983         2011-03-07
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
3988 antenna.
3991 035. Build n boot Android on Blaze {{{
3992         2011-02-17
3993 Build n prepare rootfs {{{
3994 Build {{{
3995 --- x-loader
3996 Repo   : git://git.omapzoom.org/repo/x-loader.git
3997 Branch : omap4_dev
3998 Config : omap4430sdp_config
4000 git checkout -b omap4_dev origin/omap4_dev
4001 cd x-loader
4002 make omap4430sdp_config
4003 make
4005 from 2011-03-08
4006 git clone git://git.omapzoom.org/repo/x-loader.git x-loader
4007 cd x-loader
4008 git checkout 8de4ac4408224f8cec7aa8493301483fe7aa324c
4011 --- u-boot
4012 Repo   : git://git.omapzoom.org/repo/u-boot.git
4013 Branch : omap4_dev
4014 Config : omap4430sdp_config
4016 git clone git://git.omapzoom.org/repo/u-boot.git
4017 cd u-boot
4018 git checkout -b omap4_dev origin/omap4_dev
4019 make omap4430sdp_config
4020 make
4022 ---kernel
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
4028 cd omap
4029 git checkout -b p-android-omap-2.6.35 origin/p-android-omap-2.6.35
4030 make android_4430_defconfig
4031 make -j8
4033 --- rootfs
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
4037 cd omapmanifest
4038 git reset --hard RLS27-GB-ENG-1_Gingerbread
4039 export MANIFEST=`pwd`
4040 cd ..
4041 mkdir -p L27-GB/mydroid ; cd L27-GB/mydroid
4042 export MYDROID=`pwd`
4043 repo init -u $MANIFEST
4044 repo sync
4046 Building
4047 source build/envsetup.sh
4048 lunch blaze-eng
4049 get following
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
4057 TARGET_BUILD_APPS=
4058 TARGET_ARCH=arm
4059 HOST_ARCH=x86
4060 HOST_OS=linux
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
4069 untar
4070 cd ~/ti/android/omap
4071 git am ../<path to patches>/*
4072 cp ~/ti/blaze/blaze-0.2/kernel/kernel_config .config
4073 make -j8
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
4092 Add userspace apps:
4093 cd L27-GB/mydroid/
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
4099 cd ./compat...
4100 Changes in setenv.sh
4101 TOOLCHAIN_PATH=/opt/arm-2010q1/bin
4102 KERNEL_PATH=/home/gxk/ti/android/omap
4103 source setenv.sh
4104 make
4106 Copy fw n NVS files to L27-GB/mydroid/hardware/wlan/fw
4108 Setting proper device:
4109 cd  L27-GB/mydroid/
4110 cp ./device/ti/blaze/buildspec.mk.default buildspec.mk
4112 cd ~/ti/android/L27-GB/mydroid/
4113 make
4115 Add calibrator to Android {{{
4116 cd L27-GB/mydroid/external
4117 git clone ti-utils
4121 Prepare rootfs {{{
4123 http://omapedia.org/wiki/L27.INC1.GB-ENG-1_OMAP4_GingerBread_ES2_Release_Notes
4125 The full procedure doesn't work ?????
4126 cd ~/ti/android
4127 mkdir myfs; cd myfs
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
4135 cd L27-GB/mydroid/
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
4144 Boot {{{
4146 Console on 3rd port
4148 U-boot env:
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 {{{
4163         2011-03-13
4165 Create build for Panda based wl12xx-2011-03-03 + Guy's patches + Guy's new
4166 filesystem.
4168 Build kernel: {{{
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
4202 Changes:
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
4208 2. Add iperf
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}"
4213 Copy from Poky:
4214 mkdir libexec
4215 cp telnetd ./libexec
4216 cp inetd ./libexec
4217 cp etc/inetd.conf ./etc/
4219 Copy bash to bin/bash
4221 2011-03-15
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 {{{
4230         2011-03-10
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
4241 in add init.rc
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
4246        user root
4247        oneshot
4249 ! service mytelnetd /data/busybox/telnetd -l sh
4250       user root
4251       oneshot
4253 ! change below 'service console /system/bin/sh'
4254   user root
4255   group root
4256   
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
4266 make
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/
4273 mkdir myfs; cd myfs
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 /
4281 Add CRDA:
4282 cp crda ./sbin
4283 mkdir lib/crda
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
4289 Add FW n NVS:
4290 Copy wl128x-fw.bin to ./system/etc/firmware/
4291 Copy wl1271-nvs.bin ./system/etc/firmware/
4294 038. Prepare filesystem with userspace apps {{{
4295         2011-03-17
4296 The reason to prepare wpa_s and others that have to remove my fix roaming patch
4297 from wpa_s.
4299 --- Build apps:
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
4316 hostapd
4318 --- Additional changes:
4319 Disable dbus deamon: rm -rf etc/rc5.d/S02dbus-1
4320 Install libnl from offcial libnl-2.0
4321 rm -rf lib/libc.so
4322 Change hostname in etc/hostname to zoom3
4324 --- Testing
4325 Connection w/ wpa_s WPA PSK
4327 039. Debug AP problem {{{
4328         2011-03-17
4329 Create kernel log:
4330 ./go.sh -b 7
4331 ./go.sh -d 408772
4332 echo -n 'module wl12xx +p' > /sys/kernel/debug/dynamic_debug/control
4333 ./ap_test ap
4335 040. Add netlatency to Blaze Android build {{{
4336         2011-03-21
4337 cd omapmanifest
4338 git reset --hard RLS27-GB-ENG-1_Gingerbread
4339 export MANIFEST=`pwd`
4340 L27-GB/mydroid
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/
4346 make
4348 041. Build Panda with fix for mmc5 master clock {{{
4349         2011-03-21
4351 get wl12xx from 2011-03-18
4352 Add Panda patches
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
4359 UDP Rx/Tx   12.5/27.7
4360 TCP Rx/Tx   10.5/23.9
4362 + patch to fix mmc5 master clock
4363 UDP Rx/Tx   12.6/33.4
4364 TCP Rx/Tx   13.4/26.5
4366 + patch - mmc hs sdio capabilites
4367 UDP Rx/Tx   12/32.6
4368 TCP Rx/Tx   11.2/26.3
4370 2011-03-22
4371 Gave SD card to Ariela - Answer: It is 24MHz!!!
4374 042. Check filesystem package for testing requirements {{{
4375         2011-03-22
4376 Missing ftp, netlatency
4378 found previously placed Chariot endpoint at /wlan/temp
4379 cp ./netlatency /opt/rootfs/z3e/usr/sbin/
4380 put /bin/ftp
4382 043. Compare fw 7.1.3.50.55 vs 7.1.3.50.58 {{{
4383         2011-03-07
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 {{{
4391         2011-03-22
4392 Build kernel {{{
4393 cd omap
4394 git pull
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
4400 Change config:
4401 Kernel Hacking -> Tracers -> Kernel function tracer
4402 make -j8 uImage modules
4404 cd ~/ti
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
4422 git add .
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
4432 Build AFS {{{
4433 cd omapmanifest
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
4439 repo sync
4440 repo forall -c git checkout -b vanilla
4441 pushd build
4442 git checkout -b wl12xx
4443 git am <path_to_patch>
4446 Appply patches from blaze-0.3/android/patches
4448 Add userspace prjs:
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
4457 make clean
4458 make -j8
4461 Prepare myfs {{{
4462 cd ~/ti/android
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/ \;
4472 popd
4474 Add binaries:
4475   copy to / follows: cli.sh, start-sta-supp.sh n chmod 777 them
4476   mkdir /data/busybox
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 /
4485   cp go.sh to /
4486   cp ./hardware/wlan/initial_regdom/initial_regdom.sh ./system/bin
4489 u-boot env {{{
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 {{{
4495         2011-03-29
4497 Add NVS path in plt.h with macro ANDROID
4499 adb shell stop
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 {{{
4507         2011-03-30
4508 Build kernel {{{
4509 cd omap
4510 git pull
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/*
4515 patches:
4516 rx streaming v3
4517 new roaming
4518 Ap disable beacon filter
4519 auto-arp security
4521 cp ../../blaze/blaze-0.3/kernel/kernel_config
4522 Change config:
4523 Kernel Hacking -> Tracers -> Kernel function tracer
4524 make -j8 uImage modules
4526 cd ~/ti
4527 git clone git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx.git
4528 (commit id 392d496)
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
4545 git add .
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
4555 Build AFS {{{
4556 cd omapmanifest
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
4562 repo sync
4564 Apply patches to user apps from ti/blaze/r3-ed3/android/patches :
4565 repo forall -c git checkout -b vanilla
4566 pushd build
4567 git checkout -b wl12xx
4568 git am <path_to_patch>
4571 Appply patches from blaze-0.3/android/patches
4573 Add userspace prjs:
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
4579 make clean
4580 make -j8
4583 Changes in Arik's packages:
4584 Copy firmware:
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
4608   mkdir /data/busybox
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
4613 Prepare myfs {{{
4614 cd ~/ti/android
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/ \;
4624 popd
4626 Copy modules from kernel (fm_drv.ko, gps_drv.ko, st_drv.ko, bt_drv.ko):
4627 cd omap
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/
4634 Changes in init.rc
4635 cp ../L27-GB/mydroid/device/ti/blaze/init.omap4430.rc ./init.rc
4637 chmod -R 777 ./*
4641 u-boot env {{{
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 {{{
4647         2011-04-04
4648 Release notes {{{
4649 Hi All,
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
4662 Important!!!
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:
4667 - SoftAp
4668 - Roaming
4669 - ...
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 
4679   in few seconds
4680 - SG: APUT QuattroL Multicast Tx Traffic Stops right after start sending 
4681   HV3 in BT
4683 Usefull links:
4684 Release doc
4685 \\dilfs02\wlan\WLAN\NLCP\Driver\Version_Tree\r3-ed3.1-03apr11\docs
4686 Release image
4687 \\dilfs02\wlan\WLAN\NLCP\Driver\Version_Tree\r3-ed3.1-03apr11\images
4688 Patches includes
4689 \\dilfs02\wlan\WLAN\NLCP\Driver\Version_Tree\r3-ed3.1-03apr11\patches
4690 Sanity test
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
4703 ls -l ./r3ed3.1-rc1
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
4712 pushd omap
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
4717 make uImage modules
4718 popd
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
4729 pushd wl12xx
4730 git reset --hard 392d496
4731 popd
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 .
4746 git add .
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
4760 pushd omapmanifest
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
4766 repo sync
4768 Apply patches to Android applications:
4769 repo forall -c git checkout -b vanilla
4770 pushd ./build
4771 git am $WL12XX_PRJ/r3ed3.1-rc1/android/patches/build/*
4772 popd
4773 pushd device/ti/blaze
4774 git am $WL12XX_PRJ/r3ed3.1-rc1/android/patches/device.ti.blaze/*
4775 popd
4776 pushd external/hostapd
4777 git am $WL12XX_PRJ/r3ed3.1-rc1/android/patches/external.hostapd/*
4778 popd
4779 pushd external/openssl
4780 git am $WL12XX_PRJ/r3ed3.1-rc1/android/patches/external.openssl/*
4781 popd
4782 pushd external/wpa_supplicant_6
4783 git am $WL12XX_PRJ/r3ed3.1-rc1/android/patches/external.wpa_supplicant_6/*
4784 popd
4785 pushd framework/base
4786 git am $WL12XX_PRJ/r3ed3.1-rc1/android/patches/framework.base/*
4787 popd
4788 pushd hardware/libhardware_legacy
4789 git am $WL12XX_PRJ/r3ed3.1-rc1/android/patches/hardware.libhardware_legacy/*
4790 popd
4791 pushd system/core
4792 git am $WL12XX_PRJ/r3ed3.1-rc1/android/patches/system.core/*
4793 popd
4794 pushd system/netd
4795 git am $WL12XX_PRJ/r3ed3.1-rc1/android/patches/system.netd/*
4796 popd
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
4803 make clean
4804 make
4806 --- Preparing filesystem
4807 Make sure that your current directory is android-wl12xx 
4808 (see Prepare the project)
4810 mkdir myfs; cd myfs
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/ \;
4819 popd
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 \;
4824 popd
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
4832 chmod -R 777 ./*
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
4842 commit id 1a51c36
4844 Produced build and SD card for Bella
4847 2011-04-13
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
4856 To clone the prj:
4857 git clone git://gitorious.org/wl12xx-next3/wl12xx-next3.git
4860 049. Build R3-RC2-Android {{{
4861         2011-04-12
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
4866 Solution:
4867 Add 2 lines to hostapd.conf or ap_test.sh
4868 country_code=US
4869 ieee80211d=1
4870 Remark:
4871 iw reg set/get works, but no changes in AP beacon
4873 91039 - [Android] not saving wless profile
4874 Solution:
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
4879 R3-RC2 Android
4881 Add hostapd.conf from Arik 2011-04-11 to
4882     external/hostap/
4884 Add certification files to system/etc/certs
4887 mkdir /data/busybox
4888 Copy busybox binary to /system/bin
4889 Copy script mcp_create_busybox_symlink /data/busybox n run it there
4890 Add to init.rc
4891 service mytelnetd /data/busybox/telnetd -l sh
4892       user root
4893       oneshot
4895 Try to add busybox:
4896 Ad as usual.
4897 Remove /data/busybox/{rmmod,insmod,modprobe,dhcprelay,udhcp*, syslogd, swapon, swapoff}
4900 050. Prepare Beagle to NFS boot n R3-RC2 {{{
4901         2011-04-13
4903 Make below script:
4904 mkimage -A arm -T script -C none -n "My boot script" -d nfs_bb.script boot.scr
4906 Script:
4908 echo ----------------------
4909 echo U-boot for Beagleboard
4910 echo ----------------------
4911 setenv console 'ttyO2,115200n8'
4912 setenv bootdelay 2
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
4925 Kernel patches:
4926 git am ./patches/beagleboard/wl12xx-2011-02-08/0001-Add-Beagleboard-support.patch
4927 git am ./patches/r3/r3-rc2/kernel/*
4930 Run bluetooth:
4931 insmod /lib/modules/`uname -r`/kernel/net/bluetooth/bluetooth.ko
4934 051. Create rootfs for R3 {{{
4935         2011-04-26
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 {{{
4951         2011-05-01
4953 Kernel commit eb4fd2bb24343d6d0ffe10c05bf1e7dc01b32f13
4954 iw commit 18e05613cd050d4d72938f1a140b2cd20864290f
4955 hostap commit 0725cc7b7efc434910e89865c42eda7ce61bbf08
4956 calibrator 
4958 053. Build latest R4 build 5 {{{
4959         2011-05-01
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
4966 fw 7.3.0.0.49
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 {{{
4974         2011-05-01
4976 Kernel commit 59fb9103cf037dfbc5ae4387edc441415b7eddf1
4977 iw commit 18e05613cd050d4d72938f1a140b2cd20864290f
4978 hostap commit 0725cc7b7efc434910e89865c42eda7ce61bbf08
4979 calibrator 
4981 055. Fix Beagle NFS for 2.6.39-rcX {{{
4982         2011-05-04
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 {{{
4992         2011-05-04
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
5003 fw 7.3.0.0.52
5004 wl1271-fw-multirole-roc.bin
5005 wl128x-fw-multirole-roc.bin
5007 No P2P connection
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.
5023 Works.
5024 Realesed as 7.1.5.50.58
5026 058. FEM Autodetection {{{
5027         2011-04-05
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).
5033 Solution: 
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 {{{
5042         2011-05-15
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
5048 STA: 7.1.5.50.69
5049 AP:  6.2.1.0.54
5051 AFS at myfs.r3:
5052 Take AFS from r3-rc2
5054 060. Build R3M1-RC4-Android {{{
5055         2011-05-15
5057 wl12xx commit 9a4c2c1bae3e1c94d4598634c6f68153bf557c58 (tag wl12xx-2011-05-13)
5058 compat commit 3e6f997
5059 compat-wireless-2.6 commit 501c91f
5061 rm ./patches/35-*
5062 rm ./patches/40-*
5064 Add wl12xx patches (based on r3m1-rc2)
5065 0003 upstreamed
5066 0004 u
5067 0005 u
5068 0006 u
5069 0007 u
5070 0008 u
5071 0009 u
5073 0010 rx streaming
5074 0011 rx streaming
5075 0012 rx streaming
5077 0013 u
5078 0014 u
5079 0015 u
5080 0016 u
5081 0017 u
5082 0018 u
5084 0037 no need
5085 0039 u
5086 0040 u
5087 0041 u
5088 0042 u
5089 0043 u
5090 0044 u
5091 0045 u
5092 0046 u
5093 0047 u
5094 0048 rx streaming
5096 0049 qos prioritization
5098 0050 fw logger
5099 0051 fw logger
5102 To add:
5103 ------
5104 RxStreaming x4
5105 Handle QOS prioritization
5106 Avoid recovery while one is already in progres
5107 Add support for the FW crash log x4
5108 Enable BET in 2.4G
5109 wl12xx: Stop BA session event
5110 mac80211: Stop BA session 
5113 AFS at myfs.r3:
5114 Take AFS from r3-rc2
5116 061. Prepare R4 on Blaze for 18xx {{{
5117         2011-05-23
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 {{{
5124         2011-04-24
5125 based on commit 278f02e152f84cb47a04d3e54da5e9922b79730c from wizery git
5127 fw: 7.3.0.0.55
5129 063. Build R3M1-RC5-Android {{{
5130         2011-05-15
5132 omap kernel commit ff0b9680e4a2eeeb389f584acf8becf989ecb928
5133 compat commit d08656f
5134 compat-wireless-2.6 commit 6f4e670768943ec6f175435177be444f4fa84d6c
5135 wl12xx commit 842de05fe75d07bf4cfe35e5ecd89e57ece65d2c
5137 rm ./patches/03-*
5138 rm ./patches/35-*
5139 rm ./patches/40-*
5141 Create patches for wl12xx:
5142 -------------------------
5143 git remote add wizery ssh://geryk@wizery.com/pub/wl1271.git
5144 git fetch wizery
5145 git checkout --track -b wizery-suspend_android wizery/suspend_android
5146 git format-patch -o patches/r3m1rc5 master
5147 commit c498a81a911e5f857020abdce63fd0d5c729a21f
5150 To add:
5151 ------
5152 QOS prioritization  [RFC v2]
5153 Add support for the FW crash [v3]
5154 Stop BA session [v2]
5157 AFS:
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 {{{
5165         2011-05-30
5166 based on commit 6d67e7681c8bd0ad957a8cadeca694606de8ed9d from wizery git
5168 fw: 7.3.0.0.58
5170 065. Calibration for R4 (mcp3.x) {{{
5171         2011-05-29
5173 6d67e7681c8bd0ad957a8cadeca694606de8ed9d
5175 INI files taken from FW_7.1.2.0.XX\7.1.4.0.56
5177 2011-05-30
5178 Created patch to use PLT firmware when doing calibration.
5179 Sent t Eliad, pushed to wizery/p2p-roc-11n
5180 fd2601a881c39
5182 066. Add TxTone command to calibrator {{{
5183         2011-05-16
5184 Open bug 92919
5185 New command TxTone which starting transmission of
5186 certain tone type (single tone or carrier feedthrough)
5189 The TxTone transmission procedure:
5190 Get in PLT mode
5191 calibrator wlan0 plt power_mode on
5193 Run TxTone transmission
5194 calibrator set plt_tx_tone <power> <tone type>
5195 Power
5196 Tone type
5197  1 - Single tone
5198  2 - Carrier FeedThrough
5200 Stop transmission
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 {{{
5212         2011-05-15
5214 omap kernel commit ff0b9680e4a2eeeb389f584acf8becf989ecb928
5215 compat commit d08656f
5216 compat-wireless-2.6 commit 6f4e670768943ec6f175435177be444f4fa84d6c
5217 wl12xx commit 842de05fe75d07bf4cfe35e5ecd89e57ece65d2c
5219 rm ./patches/03-*
5220 rm ./patches/35-*
5221 rm ./patches/40-*
5223 Create patches for wl12xx:
5224 -------------------------
5225 git remote add wizery ssh://geryk@wizery.com/pub/wl1271.git
5226 git fetch wizery
5227 git checkout --track -b wizery-suspend_android wizery/suspend_android
5228 git format-patch -o patches/r3m1rc5 master
5229 commit c498a81a911e5f857020abdce63fd0d5c729a21f
5232 Updates:
5233 1. calibrator
5234 2. Eliad patch "Do not drop packet while in resuming"
5235 3. Applied 3rd patch for system.netd
5238 Build R4-RC1 Android {{{
5239         2011-06-02
5240 Got email 
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.
5255 It can be found at:
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
5265 connection.
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:
5271                                 r3m1rc5         r4rc1
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:
5289                                 r3m1rc5         r4rc1
5290 ------------------------------------------------------
5291 build                           +               +
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
5307 7.3.0.0.61
5309 Do not AFS with p2p_supplicant!!! After building AFS, 
5310 pushd external/p2p_supplicant && mm
5313 068. Build R4 RC2 Build 4 {{{
5314         2011-05-29
5316 git checkout --track -b wizery-p2p_roc_11n-2011-05-31 wizery/p2p_roc_11n
5318 git fetch wizery
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
5327 fw: 7.3.0.0.58
5329 069. Build R4 RC2 Build 5 {{{
5330         2011-06-05
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
5334 git fetch wizery
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
5348 fw: 7.3.0.0.61
5350 Released 2011-06-05
5352 070. Build R4 RC2 Build 6 {{{
5353         2011-06-06
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
5357 git fetch wizery
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
5371 fw: 7.3.0.0.61
5373 Released 2011-06-05
5375 071. Build R3M1-RC5-Build 4 {{{
5376         2011-06-07
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
5400 rm ./patches/03-*
5401 rm ./patches/35-*
5402 rm ./patches/40-*
5404 Create patches for wl12xx:
5405 -------------------------
5406 git remote add wizery ssh://geryk@wizery.com/pub/wl1271.git
5407 git fetch wizery
5408 git checkout --track -b wizery-suspend_android wizery/suspend_android
5409 git format-patch -o patches/r3m1rc5 master
5410 commit c498a81a911e5f857020abdce63fd0d5c729a21f
5413 To add:
5414 ------
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]
5419 MIC failure
5420 Support for LowPower DRPw [v4]
5421 Tx scheduler by FW occupancy
5423 STA fw 7.1.5.50.72
5424 AP  fw 7.2.1.0.54
5426 Released 2011-06-07
5429 072. Build R3M1-RC5-Build 5 {{{
5430         2011-06-07
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
5440 rm ./patches/03-*
5441 rm ./patches/35-*
5442 rm ./patches/40-*
5444 Create patches for wl12xx:
5445 -------------------------
5446 git remote add wizery ssh://geryk@wizery.com/pub/wl1271.git
5447 git fetch wizery
5448 git checkout --track -b wizery-suspend_android wizery/suspend_android
5449 git format-patch -o patches/r3m1rc5 master
5450 commit c498a81a911e5f857020abdce63fd0d5c729a21f
5453 To add:
5454 ------
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]
5459 MIC failure
5460 Support for LowPower DRPw [v4]
5461 Tx scheduler by FW occupancy
5463 STA fw 7.1.5.50.72
5464 AP  fw 7.2.1.0.54
5466 Released 2011-06-09
5469 072. Build R3M1-RC5-WAPI Build 1 {{{
5470         2011-06-07
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
5478 rm ./patches/03-*
5479 rm ./patches/35-*
5480 rm ./patches/40-*
5482 Create patches for wl12xx:
5483 -------------------------
5484 git remote add wizery ssh://geryk@wizery.com/pub/wl1271.git
5485 git fetch wizery
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
5496 Added patch to AFS:
5497 - to external/wpa_supplicant_6
5498 - to hardware/wlan
5500 STA fw 7.1.5.50.72
5501 AP  fw 7.2.1.0.54
5503 Released 2011-06-09
5506 072. Build R3M1-RC5-Build 6 {{{
5507         2011-06-07
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
5515 rm ./patches/03-*
5516 rm ./patches/35-*
5517 rm ./patches/40-*
5519 Create patches for wl12xx:
5520 -------------------------
5521 git remote add wizery ssh://geryk@wizery.com/pub/wl1271.git
5522 git fetch wizery
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:
5534 STA fw 7.1.5.50.72
5535 AP  fw 7.2.1.0.54
5537 Released 2011-06-09
5540 073. Build R3M1-RC5-Build 7 {{{
5541         2011-06-13
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
5549 rm ./patches/03-*
5550 rm ./patches/35-*
5551 rm ./patches/40-*
5553 Create patches for wl12xx:
5554 -------------------------
5555 git remote add wizery ssh://geryk@wizery.com/pub/wl1271.git
5556 git fetch wizery
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
5572 STA fw 7.1.5.50.72
5573 AP  fw 7.2.1.0.54
5575 Released 2011-06-14
5578 074. wl18xx NVS changes {{{
5579         2011-06-14
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
5587 NVS structure:
5588 01 6d 54 M5 M4 M3 M2 01 71 54 M1 M0 00 00
5590 wl18xx NVS:
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 {{{
5598         2011-06-15
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
5606 rm ./patches/03-*
5607 rm ./patches/35-*
5608 rm ./patches/40-*
5610 Create patches for wl12xx:
5611 -------------------------
5612 git remote add wizery ssh://geryk@wizery.com/pub/wl1271.git
5613 git fetch wizery
5614 git checkout --track -b wizery-suspend_android wizery/suspend_android
5615 git format-patch -o patches/r3m1rc5 master
5616 commit c498a81a911e5f857020abdce63fd0d5c729a21f
5619 Got 4 patches:
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
5625 Changes:
5626 fix mac80211 WMM starvation
5628 Tested:
5629 TCP Tx for 3 min
5632 STA fw 7.1.5.50.72
5633 AP  fw 7.2.1.0.54
5635 Released 2011-06-15
5637 076. Build R3M1-RC5-Build 9 {{{
5638         2011-06-16
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
5646 rm ./patches/03-*
5647 rm ./patches/35-*
5648 rm ./patches/40-*
5650 Create patches for wl12xx:
5651 -------------------------
5652 git remote add wizery ssh://geryk@wizery.com/pub/wl1271.git
5653 git fetch wizery
5654 git checkout --track -b wizery-suspend_android wizery/suspend_android
5655 git format-patch -o patches/r3m1rc5 master
5656 commit c498a81a911e5f857020abdce63fd0d5c729a21f
5659 Changes:
5660 new firmware 7.1.5.50.73
5662 STA fw 7.1.5.50.73
5663 AP  fw 7.2.1.0.54
5665 Released 2011-06-16
5667 077. wl18xx - Add stuff to debugfs {{{
5668         2011-06-15
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    - 
5677   BaPolicyTid_0
5678   SdioBlkSizeShift
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
5687 Created 3 patches:
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
5692 Finished 2011-06-20
5694 078. Build R3M1-RC5-Build 1x {{{
5695         2011-06-16
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
5703 rm ./patches/03-*
5704 rm ./patches/35-*
5705 rm ./patches/40-*
5707 Create patches for wl12xx:
5708 -------------------------
5709 git remote add wizery ssh://geryk@wizery.com/pub/wl1271.git
5710 git fetch wizery
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 {{{
5717 Removed patches:
5718 FW Logger:
5719     0020  wl12xx Support routing FW logs to the host
5720     0021  wl12xx Allow disabling the bus FW Logger
5721 Low Power DRP:
5722     0024  Add support for Low Power DRPw
5723 SDIO claim:
5724     0027  Temporary revert Change claiming of the SDIO
5725     0033  Add claim patch
5727 Changed STA fw to 7.1.4.50.63
5728 AP  fw 7.2.1.0.54
5730 Released 2011-06-16
5732 --- Build 11 {{{
5733 based on build 10 
5734 Low Power DRP:
5735     Add support for Low Power DRPw
5737 STA fw to 7.1.4.50.63
5738 AP  fw 7.2.1.0.54
5740 Released 2011-06-16
5742 --- Build 12 {{{
5743 based on build 11 
5744 Added patches
5745 FW Logger:
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
5750 AP  fw 7.2.1.0.54
5752 Released 2011-06-19
5754 --- Build 13 {{{
5755         2011-06-19
5756 based on build 12 
5757 Added patches:
5758 Low Power DRP:
5759     Add support for Low Power DRPw
5760 FW Logger:
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
5766 AP  fw 7.2.1.0.54
5768 Released 2011-06-19
5770 --- Build 14 {{{
5771         2011-06-20
5772 based on build 10 
5773 Changed STA fw to 7.1.4.50.73
5774 AP  fw 7.2.1.0.54
5776 Released 2011-06-20
5778 --- Build 15 {{{
5779         2011-06-20
5780 based on b10
5782 Added patches:
5783 Low Power DRP:
5784     0024 Add support for Low Power DRPw
5785 SDIO claim:
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
5790 AP  fw 7.2.1.0.54
5792 Released 2011-06-20
5795 Result table {{{
5797         5.2.27  5.2.30  5.2.32
5799 b10       v       v       v
5806 1,2,4
5814 b15       v       ?       ?
5815 1,3,5
5817 1. LDP patch
5818 2. FW Log
5819 3. Claim SDIO
5820 4. FW 73
5821 5. FW 73_S
5824 2011-06-21 Found problem at testing setup. Retest of b9 gives pass on all
5825  tests.
5826 The build 9 released as final.
5828 --- Build 16 {{{
5829         2011-06-28
5830 based on b9
5832 Added patches:
5833 Added wl12xx Stop BA session (missed in b9)
5835 Changed STA fw to 7.1.5.50.74
5836 AP  fw 7.2.1.0.54
5838 Released 2011-06-28
5841 2011-06-30 The build 16 is the release. All tests passed.
5844 079. wl18xx - Change frag_threshold to be configurable {{{
5845         2011-06-28
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)
5853 acx.c
5854 wl1271_acx_frag_threshold()
5857 ACX_FRAG_CFG
5859 2011-06-29 Patch sent
5861 080. ti-utils - update firmware and create new branch for r4 {{{
5862         2011-07-03
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 {{{
5874         2011-07-05
5875 Native Linux based wl12xx-2011-06-27
5877 --- Kernel
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
5884 --- U-boot cfgs
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) {{{
5899         2011-07-05
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
5906 Solution:
5907 ./calibrator set upd_nvs <path to ini> <path to nvs>
5908 The NVS parameter can point to MCP NVS file (shorter).
5911 2011-07-05 ended
5913 083. Bug 94641 {{{
5914         2011-07-11
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.
5921 084. Bug 95539 {{{
5922         2011-07-11
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 {{{
5930         2011-07-14
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 {{{
5940         2011-07-11
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 {{{
5951 ethtool -i and -d
5952 do_gregs()
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
5958 kernel:
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()
5975 wl12xx:
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
5982 2011-07-15
5983   Got comment from Kalle Valo that there is ioctl (from ethtool) which
5984   brings HW version to userspace already
5985 2011-07-17
5986   Sent answer that ioctl is heavy broken...
5987 2011-07-18
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 {{{
5997         2011-08-11
5998 from Dinesh: repeated call for tx_cont causes firmware crash.
6000 Solution: Update HowtoProduction doc to mandatory use of tx_stop after each
6001 tx_cont.
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 {{{
6008         2011-08-14
6009 To change NVS file name from wl1271-nvs.bin to wl127x-nvs.bin and 
6010 wl128x-nvs.bin
6012 Solution: Patch to the driver, change of ti-utils to be able to use new
6013 filenames.
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()
6038 bgscan.h
6039 bgscan.c
6040 bgscan_learn.c
6041 Add wpa_cli command for list of roaming candidates
6042 wpa_cli.c
6043 ctrl_iface.c
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()
6058 in bgscan_ops.
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.
6068 Changes:
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 {{{
6079         2011-08-09
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
6100         call.
6103 0xx. Remove driver in PLT mode {{{
6104         2011-08-14
6105 Problem output {{{
6106 blazik login: root
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
6130 [ 3446.052154] 
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!
6137 [ 3446.086151] 
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
6142 [ 3446.115173] 
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)
6159 Solution:
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);
6166         }
6168 2011-08-15 Sent patch to internal ml
6171 Power on the device to read chip id {{{
6172         2011-08-15
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()
6196 Roaming {{{
6197         08nov2010 2011-07-06
6199 Introduction {{{
6201 Roaming is reconnecting to another AP with the same ESS and the same
6202 security type.
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
6217 interval.
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.
6228 --- Bgscan algos
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
6238 long time interval.
6240 Learn (bgscan_learn)
6241 Has 4 parameters: short time interval, signal threshold, long time interval
6242 and file name.
6245 BGSCAN {{{
6247 --- Initialization
6248 Initialization of bgscan happened while the state of wpa_supplicant changed 
6249 to WPA_COMPLETED.
6251 wpa_supplicant_set_state() (wpa_supplicant/wpa_supplicant.c)
6252 |-? WPA_COMPLETED
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)
6260 |-? !WPA_COMPLETED
6261     wpa_supplicant_stop_bgscan()
6262     |-> bgscan_deinit()
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)
6275 wpa_supplicant :
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()
6299 calls
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()
6314      ROAMING
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()
6329 |                   |   |->...
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
6343 --- Roaming flow
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()
6349                 |-> ...
6351 wpa_supplicant_event(EVENT_AUTH)
6352 |-> sme_event_auth( )
6353     |-> sme_associate()
6354         |-> ...
6355         |-> wpa_drv_associate()
6356             |-> wpa_driver_nl80211_associate()
6359 --- wpa_supplicant eloops
6361 eloop_cancel_timeout()
6363 eloop_register_timeout()
6367 --- Compilation {{{
6368 The bgscan can be used if wpa_supplicant compiled with the options
6369 NEED_BGSCAN
6370 CONFIG_BGSCAN_LEARN
6372 --- Usage n configuration {{{
6373 The wpa_supplicant.conf prms:
6374 bgscan=<module>:<module param>
6375 Simple
6376 bgscan="simple:30:-45:300"
6377 Learn
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 {{{
6385 DRV :
6386 wl1271_op_add_interface()
6387 |-> wl1271_hw_init()
6388     |   |-> ...
6389     |-> wl1271_acx_rssi_snr_avg_weights()
6390     |   ACX_RSSI_SNR_WEIGHTS - rssi beacon, rssi data, snr beacon, snr data
6392 FW :
6393 WriteInfoEle() (infoele.c)
6394 |-> RoamingTriggersSetTriggerWeights() (roaming_trigger.c)
6396 wpa_supplicant :
6399 --- Connection {{{
6400 DRV :
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)
6411                 |   
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
6416                         |->
6417 wpa_supplicant :
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:
6438 threshold - 
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)
6446 u2 p[2] - padding
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)
6459 mac802.11 :
6460 struct genl_ops nl80211_ops[] (net/wireless/nl80211.c)
6461     .cmd = NL80211_CMD_SET_CQM,
6462     .doit = nl80211_set_cqm
6463 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
6470             |-> ...    
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
6478                         |->
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,...)
6488 DRV :
6489 nl80211_deauthenticate
6490 cfg80211_mlme_deauth()
6491 __cfg80211_mlme_deauth()
6494 BSS loss {{{
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.
6501 Drv:
6502 (cfg)driver cfg the fw by cmd (ACX_CONN_MONIT_PARAMS) w 2 params thold n
6503 timeout.
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
6508 deauth).
6511 FW Code:
6512 TSFOutOfSyncSendProbeReq()
6514 Set BSS Loss, TSF sync params:
6515 SetConnectionMonitoringParams()
6517 Drv code:
6518                                                 wl1271_op_add_interface()
6519                                                         |
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,...)
6526 Bug 96122 {{{
6527         2011-07-11
6528 Roaming: SUT sends unnecessary Null Data packets while roaming to another AP
6530 Measure trace for roaming datapath
6532 from Luca
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
6546 Bug 88512 {{{
6547         2011-03-09
6548 Before sent BSSLoss event fw sends 10 prob/req to disconnected AP and >200
6549 NullData pkts to the AP.
6552 Setup:
6553 ifconfig wlan0 up
6554 iw wlan0 connect abcd11
6555 Switch radio off on the connected AP.
6557 Sniffer shows:
6558 1 ProbReq to the AP + 9 retries
6559 1 NullData to the Ap + >200 retries
6560 1 Action to the AP + 9 retries
6562 Description:
6563 The ProbeReqs send because of timeout period 
6566 On MCP side:
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, )
6578 TODO: {{{
6580  Patches:
6581 d wl12xx: fixes for hw_pg_ver and chip id reporting
6582   2011-07-18 sent upstream. applied.
6583   
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
6590   
6592  Calibrator:
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)
6597  Filesystem:
6598   1. Add CONFIG_WPS2 to wpa_supplicabt for R4
6599   2. Add hostapd.conf and change ap_test.sh
6600   3. Create Ubuntu fs
6601      apt-get install rootstock
6602      https://wiki.ubuntu.com/ARM/RootfsFromScratch
6603      apt-get remove --purge network-manager
6604   2011-03-14 {{{
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
6610  Bluetooth:
6611   1. Change file path in  drivers/misc/ti-st/st_kim.c
6613  Misc:
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
6617         Petri Karhula
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
6622        type.
6624  Roaming:
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
6634   7. 802.11r
6635   8. roaming triggers: RSSI, Tx rertries
6636      a. RSSI trigger
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
6642  10. 88521
6643  11. 88512
6644  12. 86130 !
6645  14. 80617 - reauth
6649 Code flows n theory {{{
6651 Beacon loss event {{{
6653 wl1271_event_process() (event.c)
6654 |-> ...
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 {{{
6679 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
6698     |       |   |   |-> ...
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)
6725     |                 |->
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()
6736 |   |   |   |   |-> ...
6737 |   |_> wpa_supplicant_clear_connection()     
6738 |       |-> ...     
6739 |      
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 {{{
6759         2011-05-29
6760         During normal add interface
6761 wl1271_op_add_interface() (main.c)
6762 |-> ...
6763 |-> wl1271_chip_wakeup()
6764 |-> wl1271_boot()
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()
6777     |   |-> 
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
6800         During PLT start
6801 wl1271_tm_cmd_set_plt_mode() (testmode.c)
6802 |-> wl1271_plt_start()
6803     |-> ...
6804     |-> wl1271_chip_wakeup()
6805     |-> wl1271_boot()
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                                    !!!
6823      16 |-> cfg Rx                                         ???
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
6840     |   and padding = 3
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
6858         |       padding = 3
6860 --- Rx streaming {{{
6862 The feature supposed to increase tp during TCP Tx in PS-legacy.
6863 While doing TCP Tx 
6864 ????
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()
6877 command join {{{
6878         2011-02-02
6880 --- The DummyJoin - wl1271_dummy_join()
6882 wl1271_sta_handle_idle()
6883 |-? if not idle => inc session counter and
6884     wl1271_dummy_join()
6886 wl1271_bss_info_changed_sta()
6887 |-> if status changed to disassociated and
6888     wl1271_dummy_join()
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)
6898 |-? 
6899 wl1271_join() (main.c)
6902 wl1271_bss_info_changed_sta()
6903 |-? if it ibss
6904 if changed BSS_CHANGED_BSSID, 
6906 --- The command join - wl1271_cmd_join()
6908 wl1271_op_config()
6909 |-> wl1271_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
6917         wl1271_dummy_join()
6918         |-> wl1271_cmd_join()
6923 Service period {{{
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()
6949 No one calls it ???
6950 bgscan_notify_beacon_loss()
6953 blacklisting {{{
6955 wpas_connection_failed()
6956 |-> wpa_blacklist_add()
6957 |-> ...
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()
6964         |-> ...
6967 [R4] Loading PLT firmware {{{
6968         2011-05-30
6969 wl1271_plt_start()
6970 |-> wl1271_chip_wakeup()
6971 |   |-> ...
6972 |   |-> wl1271_fetch_firmware()
6973 |   |-> ...
6974 |-> wl1271_boot()
6975 |-> wl1271_plt_init()
6980 Scan {{{
6981         13oct2010
6983 http://mcsdocs.isr.asp.ti.com:81/WLAN/index.php?dir=MCS_WLAN_Docs/Architecture/WiLink%20Products/Feature%20Specs/&file=Scan%20FS.doc
6985 Theory {{{
6987 Scan types:
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 
6993         interval
6994 one shot scan - when connected (split scan, means during traffic - some scan, some traffic), can be
6995         active/passive
6997 Scan triggers:
6998 Application scan
6999         Started by app
7000 Connection scan
7001         ...
7002 Roaming scan:
7003         Background scan
7007 Code flow {{{
7008 DRV:
7009 drivers/net/wireless/wl12xx/scan.c
7010 wl1271_scan()
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()
7025 Global
7026 ConnectionScanCB_t connectionScanCB;
7028 CMD_SCAN
7029 CMD_STOP_SCAN
7030 CMD_CONNECTION_SCAN_SSID_CFG
7031 CMD_TRIGGER_SCAN_TO
7033 typedef struct {
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];
7049   uint8  numOfDfs;
7050   uint8  padding[ 3 ];
7051   ConnScanChannelInfo_t   channelList[CONN_SCAN_MAX_CHANNELS_ALL_BANDS];
7052 } ConnScanParameters_t;
7056 Schedule scan {{{
7057         05jan2011
7058 chat w/ Luca {{{
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 {{{
7080         2011-05-23
7082 1. Using EEPROM
7084         The new command for calibrator to create NVS from EEPROM
7085         Separate issue: 
7086                 1. To unload testmode for runtime in future
7087                 2. 
7088 2. TxBip
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.
7094 3. MAC from ROM
7096         To update NVS file with MAC address from ROM in PLT.
7099 Support investigation on Panda {{{
7100         2011-03-14
7101 Qs from Ariela:
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?
7107 nVidia {{{
7108         2011-04-05
7110 http://tegradeveloper.nvidia.com/tegra/downloads
7112 kernel 2.6.34-rc3
7113 git://nv-tegra.nvidia.com/linux-2.6.git
7114 commit id e823580
7117 Bluetooth script delivery to linux-firmware {{{
7118         2011-02-27
7120 Create repository in github named linux-firmware
7122 git clone from
7123         git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git
7124 cd linux-firmware
7125 git remote add gxk  git@github.com:gxk/linux-firmware.git
7126 git push gxk master
7128 Add to WHENCE
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
7159 git fetch rowboat
7160 git branch -a
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
7171 sudo apt-get update
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
7176 cd $MYDROID
7177 cp -Rfp device/ti/blaze/buildspec.mk.default buildspec.mk
7178 make -j4
7180 cd ..
7181 mkdir myfs
7182 cd myfs
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
7187 #BT drivers
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
7203 Code:
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
7210 Code:
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:
7218 Code:
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.
7227 Works so far.
7229 Patch attached to fix build on 32 bit hosts.
7231 Code:
7233 repo diff
7235 project build/
7236 diff --git a/core/main.mk b/core/main.mk
7237 index 6113e52..72e32c8 100644
7238 --- a/core/main.mk
7239 +++ b/core/main.mk
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
7273 --- a/cs/Android.mk
7274 +++ b/cs/Android.mk
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
7324 另外还需要修改 rename 
7326 opensles/libopensles/IAndroidEffect.c => opensles/libopensles/IAndroidEffect.cpp
7329 diff --git a/opensles/libopensles/Android.mk b/opensles/libopensles/ 
7330 Android.mk 
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:=                     \ 
7336          CEngine.c                     \ 
7337          COutputMix.c                  \ 
7338          IAndroidConfiguration.c       \ 
7339 -        IAndroidEffect.c              \ 
7340 +        IAndroidEffect.cpp            \ 
7341          IAndroidEffectCapabilities.c  \ 
7342          IAndroidEffectSend.c          \ 
7343          IBassBoost.c
7346 Overclocking {{{
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 
7359 branch: dvfs
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
7367 My Zoom3 is
7368         OMAP3630-GP rev 2, CPU-OPP2 L3-200MHz
7370 My Beagle is
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
7376 Using CPUfreq:
7377 /sys/devices/system/cpu/cpu0/cpufreq/
7379 Power Save with BT Coex {{{
7380         2011-02-03
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
7388 w/ iw utility
7391 BT Coex {{{
7392         2011-02-02
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
7397 pkts.
7399 Power Consumption enhancement {{{
7401 http://wireless.kernel.org/en/users/Documentation/Power-consumption
7405 Build 3.0 for Panda {{{
7406         2011-06-23
7407 Build v3.0-rc4
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 {{{
7419                 2011-06-27
7421 git checkout git://git.denx.de/u-boot.git
7422 git reset --hard dc4970b299b1877f21f99ed4894f360ec955782b
7423 git am ./patches/panda/tftp_boot/*
7424 v8 4/4
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
7438 make
7442 Build ICS for Blaze {{{
7443         2011-07-06
7445 git remote add omapzoom git://git.omapzoom.org/kernel/omap.git
7446 git fetch omapzoom
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 {{{
7453         2011-07-06
7455 --- Kernel
7457 git remote add omapzoom git://git.omapzoom.org/kernel/omap.git
7458 git fetch omapzoom
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 {{{
7465         2011-01-26
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 */
7486 sudo make
7488 sudo make install
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
7500 DFS design {{{
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
7505 even before 3.4
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
7519 --- Tx
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 
7532 --- Rx
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
7539 Wl8 Rx alignment - 
7541 --- Event mbox
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.
7547 --- cmd mbox
7548 drv wr cmd and sends irq
7550 cmd complete is just ...
7553 ----------------------------
7555 ----------------------------
7557 frame max is 1500B
7558 SDIO block
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 {{{
7573         06oct2010
7575 libnl {{{
7577 Development:
7578 http://www.kernel.org/pub/scm/libs/netlink/libnl.git
7579 git://git.kernel.org/pub/scm/libs/netlink/libnl.git
7580 Stable:
7581 http://www.kernel.org/pub/scm/libs/netlink/libnl-stable.git
7582 git://git.kernel.org/pub/scm/libs/netlink/libnl-stable.git
7584 ./autogen.sh
7585 ./configure --prefix=${NFSROOT} CC=arm-none-linux-gnueabi-gcc --host=arm-linux LD=arm-none-linux-gnueabi-ld
7586 make && make install
7588 iw {{{
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
7598 openssl {{{
7599 untar openssl-1.0.0a
7600 export CROSS_COMPILE=
7601 ./Configure --openssldir=${NFSROOT} shared os/compiler:arm-none-linux-gnueabi-
7602 make
7603 make install
7605 hostap {{{
7607 git clone git://w1.fi/srv/git/hostap.git
7609 --- wpa_supplicant
7610 cd hostap/wpa_supplicant
7612 .config
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
7623 CONFIG_CTRL_IFACE=y
7626 iperf {{{
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
7633 make install
7636 git clone git://git.sv.gnu.org/inetutils.git {{{
7637 cd inetutils
7638 remove `man' from SUBDIRS in Makefile.am
7639 ./bootstrap
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
7653 On target run:
7654 inetd /etc/inetd.conf &
7656 top {{{
7657 http://www.unixtop.org/
7659 top-3.8beta1
7661 cd top-3.8beta1
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
7670 Change in Makefile:
7671 CC ?= gcc
7672 AR ?= ar
7673 RANLIB ?= ranlib
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
7679 eth3tool {{{
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
7691 trace-cmd {{{
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) {{{
7709     17aug2009
7710 On target:
7711 Load module g_ether, which creates device usb0
7712 modprobe g_ether
7713 ifconfig usb0 10.0.0.3
7714 On host:
7715 modprobe usbnet g_ether cdc_ether
7716 ifconfig usb0 10.0.0.5
7718 02. To set source management system {{{
7719     20aug2009
7721 1. To purchase the computer
7723 IBM tower x3400
7725 4 disks x 500GB - Raid + hot spare + 4th for backups
7726 DVD writer
7728 Adrian - 0544821798
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
7734 Create
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
7747 --- install trac
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
7751 --- Config
7752 mkdir /srv/svn
7753 svnadmin create --fs-type fsfs /srv/svn/<project>
7754 mkdir /srv/trac
7755 trac-admin /srv/trac/<project> initenv
7756 Answer to all questions default, except path to repo which is
7757     /srv/svn/<project>
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>>
7762     DAV svn
7763     SVNPath /srv/svn/<project>
7764     AuthType Basic
7765     AuthName "<project> Repository"
7766     AuthzSVNAccessFile /srv/svn/svn-acl-conf
7767     AuthUserFile /srv/svn/<project>.htpasswd
7768     Require valid-user
7769 </Location>
7771 touch /srv/svn/<project>.htpasswd
7772 htpasswd -m /srv/svn/<project>.htpasswd <username>
7773 add to /srv/svn/svn-acl-conf follows:
7774 [<project>:/]
7775 <username> =  rw
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>
7783 </Location>
7784 <Location "/trac/<project>/login">
7785     AuthType Basic
7786     AuthName "trac"
7787     AuthUserFile /srv/trac/<project>.htpasswd
7788     Require valid-user
7789 </Location>
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 {{{
7801     14sep2009
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/*
7834 add to ~/.bashrc
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
7845 cd <dvsdk>
7846 modify Rules.mak
7847 make && make install
7849 --- Reduced rootfs
7850 Under <dvsdk source>/PSP_02_10_00_14/bin/target-reduced-dm365.tar
7852 --- Make nfs
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
7856 on target:
7857 mount -o nolock,tcp 192.168.1.41:/opt/tmx320dm65 /mnt/usb/
7859 --- U-boot srcs
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 {{{
7877     11oct2009
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 {{{
7892     15sep2009
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
7897 --- Get kernel src
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
7906 make distclean
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 {{{
7914     20oct2009
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
7921     live-arm
7922     dm365_live
7923 Untar the ltib_ver1_5oct09.tar.gz get dirs: bin, config, dist, doc and also 
7924 perl script ltib.
7927 07. Watch> Set main charger at early state {{{
7928     29oct2009
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 {{{
7938     01nov2009
7940 Results from jtag commands {{{
7942 === Normal boot
7944 The `st' command
7945 ----------------
7946 J-Link>st
7947 VTarget=0.000V
7948 ITarget=1mA
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, ...
7952  - Adaptive clocking
7954 The `hwinfo' command
7955 --------------------
7956 J-Link>hwinfo
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)
7965 The `regs' command
7966 ----------------
7967 J-Link>regs
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
7984 === Badly booted
7986 The `st' command
7987 ----------------
7988 J-Link>st
7989 VTarget=2.653V
7990 ITarget=1mA
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,
7994  - Adaptive clocking
7996 The `hwinfo' command
7997 --------------------
7998 J-Link>hwinfo
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)
8007 The `regs' command
8008 ----------------
8010 J-Link>regs
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
8031     Redboot boot flow:
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 {{{
8044     18nov2009
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
8047 cd /
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
8062 popd
8064 cd ~/ivirtus/cofdm/altair_prj
8065 mkdir ./OS && cd ./OS
8066 tar zxf SDIO_AltLink.tar.gz
8069 10. Watch> Support syslogd {{{
8070     07dec2009
8072 Add sysklogd project to subversion
8073 Update ibuild.sh to build sysklogd
8074 make project ilog
8076 To do on/off option
8079 11. Watch> To forbid upgrade when battery in 43% capaciy {{{
8080     28dec2009
8082 New parameter added to system.ini called noupgrade_percent w/ default value 43.
8084 The ioctl WRISTCMD_GET_CURRENT brings values like:
8085 975 - 
8086 796 - 4.2v
8087 755 - 4.1v
8088 485 - 3.5v = 41.91%
8090 12. Watch> Create battery status file when plugin USB {{{
8091     29dec2009
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 {{{
8099 ---=== 3.9v
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   |
8107 ---=== 3.7v
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   |
8115 ---=== 3.6v
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   |
8123 ---=== 3.5v
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   |
8130                      0x000FD840
8133    | Reg 0  | Reg 1   |Reg 2   |      |
8134    | intrr  | intr m  |intr sen|      |
8135 ---------------------------------------
8136 0  |        |         |        | 0    |
8137 1  |        |         |        | 0    |
8138 2  |        |         |        | 0    |
8139 3  |        |         |        | 0    |
8140 ---------------------------------------
8141 4  |        |         |        | 0    |
8142 5  |        |         |        | 0    |
8143 6  |CHGDETI |         |CHGDETS | 1    |
8144 7  |        |         |        | 0    |
8145 ---------------------------------------
8146 8  |        |         |        | 0    |
8147 9  |        |         |        | 0    |
8148 10 |CCCVI   |         |CCCVS   | 1    | !!!
8149 11 |CHGCURRI|         |CHGCURRS| 1    |
8150 ---------------------------------------
8151 12 |        |         |        | 1    |
8152 13 |        |         |        | 0    |
8153 14 |        |         |        | 1    |
8154 15 |        |         |        | 1    |
8155 ---------------------------------------
8156 16 |USBI    |         |USB4V4S | 1    |
8157 17 |        |         |USB2V0S | 1    |
8158 18 |        |         |USB0V8S | 1    |
8159 19 |IDI     |         |IDFLOATS| 1    |
8160 ---------------------------------------
8161 20 |        |         |        | 0    |
8162 21 |        |         |        | 0    |
8163 22 |        |         |        | 0    |
8164 23 |UDMI    |         |UDMS    | 0    |
8166 Tests after change {{{
8168 ---=== 4.1v
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   |
8176 ---=== 3.7v
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 {{{
8204     05jan2010
8206 USB detection testing {{{
8207                                     4.1V
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
8227                                     3.7V
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        
8235 Plugout USB                 
8237                                     3.5V
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 
8244                             
8246 and w/ USB pluggedin        
8247 Plugout USB                 
8249                            | Reg 0          | Reg 1         | Reg 2        
8250                            | interrupt      | interrupt mask| interrupt sense     
8251                       -------------------------------------------------------
8252                       0    |                |               |             
8253                       1    |                |               |             
8254                       2    |                |               |             
8255                       3    |                |               |             
8256                       -------------------------------------------------------
8257                       4    |                |               |             
8258                       5    |                |               |             
8259                       6    | CHGDETI        |               | CHGDETS      
8260                       7    |                |               |             
8261                       ------------------------------------------------------
8262                       8    |                |               |             
8263                       9    |                |               |             
8264                       10   | CCCVI          |               | CCCVS        !!!
8265                       11   | CHGCURRI       |               | CHGCURRS     
8266                       --------------------------------------------------- 
8267                       12   |                |               |             
8268                       13   |                |               |             
8269                       14   |                |               |             
8270                       15   |                |               |             
8271                       --------------------------------------------------- 
8272                       16   | USBI           |               | USB4V4S      
8273                       17   |                |               | USB2V0S      
8274                       18   |                |               | USB0V8S      
8275                       19   | IDI            |               | IDFLOATS     
8276                       --------------------------------------------------- 
8277                       20   |                |               |             
8278                       21   |                |               |             
8279                       22   |                |               |             
8280                       23   | UDMI           |               | UDMS         
8283 The detection no based only on bit 16 in reg 2 of PMIC, which is USB4V4S
8286 15. Watch> Change battery capacity calculation {{{
8287     30dec2009
8289 Current: There are values
8290 [battery_low]
8291     mvolt_max = 270
8292     mvolt_min = 450
8293     hwunits_max = 957
8294     hwunits_min = 144
8295 [battery_low]
8296     full_percent = 82
8297     notify_percent = 40
8298     stop_percent = 35
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.
8305 --- Measures:
8306 3.71v- 568.4 - 40%
8307 3.67v- 549.6 - 35%
8308 3.6v - 519   - 26%
8309 3.5v - 472   - 12.8%
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)
8322        stop - 0%
8324 New configuration values:
8325 [battery_low]
8326     mvolt_max = 418
8327     mvolt_min = 340
8328     hwunits_max = 782
8329     hwunits_min = 426
8330 [battery_low]
8331     full_percent = 100
8332     notify_percent = 13
8333     stop_percent = 0
8334     notify_interval = 1200
8335     upgrade_limit = 13
8336     
8338 16. Watch> Fix AVI file {{{
8339     24jan2010
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 {{{
8345     23feb2010
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)
8353 Changes:
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
8358 SWA1 n SWB1, etc...
8360 18. Watch> Change stop recording button push {{{
8361     03feb2010 27apr2010
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 {{{
8385     02may2010
8387 Device_Init()
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()
8396 |-> ...
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 {{{
8411     16may2010
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 {{{
8426     16may2010
8428 av_encode() (ffmpeg/ffmpeg.c)
8430 |-> ...
8431 |-> av_read_frame() (ffmpeg/libavformat/utils.c)
8432 |-> ...
8433 |-> output_packet()
8434 |   |-> write_frame()
8435 |   |   |-> 
8438 file_write() (ffmpeg/libavdevice/sahara.c)
8439 |-> ...
8440 |->fifowrite() (ffmpeg/libavdevice/sahara.c)
8444 dm365> BringUp new software {{{
8445     06may2010
8447 download {{{
8449 PSP   3.01
8450 DVSDK 3.10.00.12
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
8484 answer - No
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'
8493 run: setdm365
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) {{{
8500 chmod 777 /opt
8501 mkdir /opt/dm365
8502 cd /opt/dm365
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
8507 cd /opt/dm365
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
8512 cd /opt/dm365
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
8521 Create rootfs-demo
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
8532 Build kernel
8533 sudo apt-get install uboot-mkimage
8534 cd /opt/dm365/dvsdk_3_10_00_12
8535 make linux_clean
8536 make linux
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
8541 cd u-boot-davinci
8542 git checkout DEV.DaVinciPSP.03.XX.00.35
8547 Set env n build (arago - DEV.DaVinciPSP.03.XX.00.35) {{{
8548     12may2010
8549 cd ivirtus/dm365/dev-arago
8550 git clone -n git://arago-project.org/git/arago.git
8551 cd arago
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
8555 cd arago-oe-dev
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
8559 cd arago-bitbake
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
8569 . arago/setenv
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
8582 Config Uboot {{{
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
8589 bootm 80700000
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
8598 saveenv
8601 setenv boot_console 'console=ttyS0,115200'
8604 setenv loads_echo=1
8605 setenv baudrate 115200
8606 setenv bootdelay 3
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
8615 setenv netdev eth0
8616 setenv use_dhcp off
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'
8620 saveenv
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
8628 saveenv
8629 boot
8634 Watch> Redesign Vibrator {{{
8635     21apr2010
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 {{{
8641     27jan2010
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
8649 CHGCURRS bit 11
8650 CHGDETS  bit 6
8651 USB4V4S  bit 16
8653 Watch> newest USB detection {{{
8654     07feb2010
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
8662 descriptor.
8663 from drivers/usb/gadget/file_storage.c standard_setup_req()
8664 case USB_DT_DEVICE:
8666 Watch> format ubifs partitions {{{
8667     14feb2010
8668 umount /mnt/appfs
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 {{{
8677     21dec2009
8678 cd expat-2.0.1
8679 CC=arm-none-linux-gnueabi-gcc ./configure --host=arm --prefix=${IVIRTUS_PRJ_ROOTFS}
8680 make && make install
8682 cd dbus-1.2.1
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
8686 cd bluez-libs-3.36
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
8690 cd bluez-utils-3.36
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
8694 Watch> Testing {{{
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
8705 2. Power management
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
8710             save mode. 
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.
8714 3. Configurability:
8715     Purpose: ability to configure the parameters that changes the system behavior
8716 4. Upgrade
8717     Purpose: ability to upgrade the full system.
8718 5. Video recording
8719     Purpose: ability to make 2 video recordings at least 20 and 10 minutes long.
8720 6. Audio recording
8721     Purpose: ability to make audio recording.
8722 7. Snapshot
8723     Purpose: ability to make still pictures
8724 8. Changes of the version
8726 Watch> Boot analyzes {{{
8727     14jan2010
8728 from redboot/hal/arm/mx27/ads/current/include/hal_platform_setup.h
8730 .macro _platform_setup1
8734 Boot the sting3g {{{
8735     08mar2010
8737 --- Check sources
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]
8743 --- Building
8745 ibuild.sh bootloader
8746 ibuild.sh kernel
8747 ibuild.sh modules
8748 cd <dvsdk>
8749 make
8750 make install
8752 ibuild.sh live-arm
8753 ibuild.sh dm365_live
8754 ibuild.sh ffmpeg
8755 ibuild.sh app
8756 ibuild.sh rootfs
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
8763 -- U-boot env (evm)
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'
8773 --- Flash
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)
8778                         address                     block
8779     
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
8798 --- 3G
8799 Should be same company SIM in modem and computer.
8801 --- Install Sting3G through serial
8802 on host:
8803 cp /opt/mv_pro_5.0/dvsdk_2_10_01_18/PSP_02_10_00_14/bin/ramdisk.gz /tftpboot/
8805 on host:
8806 create ~/.kermrc w/ follow
8807 set line /dev/ttyUSB0
8808 set speed 115200
8809 set carrier-watch off
8810 set handshake none
8811 set flow-control none
8812 robust
8813 set file type bin
8814 set file name lit
8815 set rec pack 1000
8816 set send pack 1000
8817 set window 5
8819 run: kermit -c
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'
8824 saveenv
8825 --- burning kernel
8826 loadb 0x80700000
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
8833 --- burning ramdisk
8834 loadb 0x82000000
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
8844 boot
8846 --- Burn rootfs
8847 Prepare SD card w/ rootfs ???
8848 Insert card
8849 mkdir /mnt/mmc
8850 mkdir /mnt/tmp
8851 mount /dev/mmcblk0p1 /mnt/mmc
8852 mount -t yaffs2 /dev/mtdblock4 /mnt/tmp
8853 cd /mnt/tmp
8854 tar xf /mnt/mmc/rootfs-sting3g.tar
8855 cd /
8856 umount /mnt/tmp
8857 umount /mnt/mmc
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"
8875 erase rootfs3
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 {{{
8892 Contacts {{{
8893 Moshe (proj mngr)
8894     09-7403045(246)
8895     054-4221691
8896 Ran (sw team lead)
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)
8918 struct io_req
8919 struct hc_dma
8920 struct sdiodrv_host
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);
8930 //debug
8931 void dump_sdio_regs(uint16 op);
8932 --- card.h (host.h)
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);
8937 --- os.h
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);
8947 --- omap-defs.h
8948 --- omap-dma.h
8949 struct io_req;
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/...)
8959 --- osal.h
8960 #include <linux/kernel.h>
8961 #include <linux/module.h>
8962 #include <linux/interrupt.h>
8963 #include <asm/io.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,
8985              uint8 *val);
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()
9014     |_> tasklet_kill()
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) {{{
9022     |-> kmalloc
9023     |-> memset
9024     |-> initDevice() (sdio/Src/os.c)
9025     |   |-> memset()
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()
9033     |   |-> clk_get()
9034     |   |-> MAP_PHYS_ADDR
9035     |-> sdiodrv_init_host() (sdio/Src/host.c)
9036     |-> request_irq()
9037     |_> osal_schedule_card_poll() }}}
9038 bus_deregister_client()
9039 |_> sdiodrv_deregister() (sdio/Src/os.c)
9040 bus_read_reg_bus_space()
9041 bus_read_reg()
9042 bus_read_mem()
9043 bus_write_reg_bus_space()
9044 bus_write_reg()
9045 bus_write_mem()
9046 bus_abort_reset()
9047 bus_get_card_id()
9048 bus_get_counters()
9049 bus_get_max_trans_size()
9051 --- SDIO driver (from Release_10_06_2009_15_08_52/Src/OS/Linux/Drivers/SDIO/sdio/...)
9052 sdiodrv_init() 
9053 sdiodrv_exit()
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)
9068 |   |-> ...
9069 |   |-> clk_get()
9070 |   |-> clk_enable()
9071 |   |_> set host mmc_base
9072 |-> sdiodrv_init_host()
9075 Live streamer (live555.com) status {{{
9076     20aug2009
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)
9087 Wireless {{{
9088     24dec2009
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
9099 Testing
9100  -----------------------------------------
9101 |           Bootup time (secs)            |
9102 |-----------------------------------------|
9103 | Version\Product |   Watch   |   Lighter |
9104 |-----------------------------------------|
9105 |  1.2x           |           |           |
9106 |  1.25           |    40     |           |
9107 |  1.26           |    40     |     30    |
9108 |_________________________________________|
9110 Theory {{{
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.
9118 Main functionality
9119 1. Audio
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.
9128 4. Logic
9129     It fully programmable via SPI.
9130 5. Misc
9133     64 regs of 24b each
9134     battery changing interface for wall charging and USB charging
9135     10b ADC for battery monioring
9137 --- NAND flash
9138     04nov2009
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
9144 Flash Controller).
9145 The flash has 2KB page
9146 This is done by configuring NFC and waiting for interrupt from flash device.
9149 Post-Processor {{{
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
9162 progressive.
9164     Gated mode:
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
9171 repeats.
9173     Registers:
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 - 
9187 18 (RxFF_INT) - 
9188 17 (EOF_INT) -
9189 16 (SOF_INT) -
9190 15 (F2_INT) -
9191 14 (F1_INT) -
9192 13 (COF_INT) -
9193 1  (ECC_INT) -
9194 0  (DRDY) -
9197 HAB - High Assurance Boot
9198 CSI - CMOS Sensor Interface
9200 Video resolution:
9201 720x480@30fps
9202 720x576@25fps
9206 Boot {{{
9207     21dec2009
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
9215 RedBoot> exec
9216 entry=0xa0008000, target=0xa0008000
9217 Using base address 0x00100000 and length 0x00300000
9220 App code flow {{{
9222 Main
9223 |-> open_ilog()
9224 |-> Init_WirstWatchApp()
9225 |   |-> signal() - set sighandler sigterm_handler() for SIGQUIT,SIGINT,SIGTERM,SIGQUIT,SIGKILL
9226 |   |-> Device_Init()
9227 |   |_> OS_TaskCreate() - create task SystemMonitorTask 
9228 |-> if m_forever - sleep(1)
9229 |-> Device_Term()
9230 |_> close_ilog()
9232 Device_Init() {{{
9233 |-> InitLock()
9234 |-> OS_GetClock()
9235 |-> OS_FifoInit()
9236 |-> ...
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()
9244 |   |-> ...
9245 |   |->
9246 |-> Device_GetPluginState() - check if USB connected and more
9247 |   |-> Lock()
9248 |   |-> at 1st time - 
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
9251 |   |   Read 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()
9266 |-> create RPC task
9267 |-> create Event task
9268 |-> create Kbd task
9269 |-> OS_AllocSemaphore()
9270 |-> OS_AllocSignal()
9271 |-> create Vibrator task
9272 |-> Device_DoVibration()
9273 |_> create Debug task
9275 RPCtask {{{
9276 -------
9277 |-> set thread name to iRpcTask
9278 |_> while not finished
9279     |-> Socket_UDPServer(port is 10332) (ffmpeg/ffmpeg.c)
9280     |   |-> socket()
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
9292     |   |-> cmd ...
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
9301     |   |-> cmd ...
9302     |   |-> cmd ...
9303     |   |_? mode==RPCCMD_MODE_REPLAY
9304     |       |_> RPCSend() (wristwatch/devicehandler.c)
9305     |           |-> Lock()
9306     |           |-> Socket_SendTo() (ffmpeg/ffmpeg.c) - port 10333, addr 0
9307     |           |   |_> sendto()
9308     |           |-> sleep for 1ms
9309     |           |_> Unlock()
9310     |_> Socket_Close() == close()
9312 EventTask {{{
9313 ---------
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
9321 |           |-> ...
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")
9336 |           |-> ...
9337 |           |-> OPEVENT_USB
9338 |           |   |-> Device_GetPluginState()
9339 |           |   |-> Device_DoUSBPlugin() (wristwatch/devicehandler.c)
9340 |           |   |_? if state
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)
9349 |           |   |   |   |->
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
9356 |_> OS_FifoDelete()
9358 KbdTask (wristwatch/devicehandler.c) {{{
9359 -------
9360 |-> set name iKbdTask
9361 |_> while !m_KbdTaskFinish
9362     |-> keep previous state of Kbd
9363     |-> if state == 0
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
9369     |   |_> KbdState1()
9370     |       |-> set pollflag to 1
9371     |       |-> ioctl WRISTCMD_READ_KEY
9372     |       |-> get event time
9373     |       |-> set keystate
9374     |       |-? keystate not changed
9375     |       |   |-? keystate is 0
9376     |       |       |_> set state = 0
9377     |       |   |_> return
9378     |       |-> set KeyTrack state = 3, KeyTrack handlekdbflag = 0 
9379     |       |-> set KeyTrack keystate = keystate | (old_keystate << 2)
9380     |       |-> ...
9381     |       |-> ...
9382     |       |-> KbdTrackHandler()
9383     |       |   |-> GetState()
9384     |       |   |-> if state == StateMode_Idle
9385     |       |   |   |-> ...
9386     |       |   |   |-> Device_SendEvent OPEVENT_SELECT_SNAPSHOT_RECORD
9387     |       |   |   |-> Device_SendEvent OPEVENT_SELECT_AUDIO_RECORD
9388     |       |   |   |-> Device_SendEvent OPEVENT_SELECT_MOVIE_RECORD
9389     |       |   |   |-> ...
9390     |       |   |-> if state == StateMode_Record
9391     |       |   |   |->
9392     |       |   |-> if state == StateMode_USB
9393     |       |   |   |->
9394     |       |   |_> if state == StateMode_Streaming
9395     |       |   |   |->
9396     |       |-> ...
9397     |-> if state == 2
9398     |   |_> KbdState2()
9399     |       |-> ...
9400     |-> if state == 3
9401     |   |-> set poll flag to 1
9402     |   |-> ioctl WRISTCMD_READ_KEY
9403     |   |-> set eventtime
9404     |   |_> if state != 0 - sleep for 50ms
9405     |->
9406     |->
9407     |->
9409 VibratorTask {{{
9410 ------------
9411 VibratorTask() (wristwatch/devicehandler.c)
9412 |-> set thread name to iVibratorTask
9416 SystemMonitorTask (wristwatch/wristwatchapp.c) {{{
9417 -----------------
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
9427 |       |-? if connected
9428 |       |   |->
9429 |       |-> GetState()
9430 |       |-> if StateMode_USB
9431 |       |   |-> ...
9432 |       |-> if StateMode_Idle
9433 |       |   |-> ...
9434 |       |   |_> ...
9435 |       |-> Device_GetButteryInfo() (wristwatch/devicehandler.c) - get battery status
9436 |       |   |-> Lock()
9437 |       |   |-> ioctl (WRISTCMD_GET_CURRENT)
9438 |       |   |-> set status
9439 |       |   |-> set mvolts
9440 |       |   |_> Unlock()
9441 |       |-> if BTRY_OK
9442 |       |   |_? status < notify_percent
9443 |       |       |-> OS_GetSystemTime()
9444 |       |       |-> Device_SendEvent(OPEVENT_BUTTERY_LOW)
9445 |       |       |_> set m_ButteryLowState = BTRY_LOW
9446 |       |-> if BTRY_LOW
9447 |       |   |-> ...
9448 |       |   |_> ...
9449 |       |-> ...
9450 |       |->
9453 RecordTask (wristwatch/devicehandler.c) {{{
9454 |-> time()
9455 |-> GetpartitionInfo()
9456 |-> ...
9457 |-> create unique file
9463 ffmpeg {{{
9464     16may2010
9467 Device configuration {{{
9469 Device_Init()
9470 |-> ...
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
9483 |   |   |   |-> 
9484 |   |   |   |->
9485 |   |   |   |->
9486 |   |   |_> sync_inifile() - copy /mnt/appfs/system.ini to /mnt/vfat/param/system.ini
9487 |   |-> set_syslog_on/off()
9488 |   |_> set_redboot_version()
9489 |-> ...
9491 Device_DoUSBPlugin() - while USB disconnect
9492 |-> ...
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()
9498 |   |   |-> ...
9499 |   |-> read_params() - upd values of m_config from /mnt/vfat/param.ini
9500 |   |   |-> 
9501 |   |   |->
9502 |   |   |->
9503 |   |   |->
9504 |   |   |-> ...
9505 |   |_? if restore defaults
9506 |       restore_default_params()
9507 |       Device_ReadConfig()
9508 |-> ...
9513 PMIC (mc13783) registers {{{
9515    |Reg 0 |Reg 1 |Reg 2   |      |Reg 15
9516    |intr  |intr m|intr sen|      |
9517 ----------------------------------------
9518 0  |      |      |        |      |      |
9519 1  |      |      |        |      |      |
9520 2  |      |      |        |      |      |
9521 3  |      |      |        |      |      |
9522 ----------------------------------------
9523 4  |      |      |        |      |      |
9524 5  |      |      |        |      |      |
9525 6  |      |      |CHGDETS |      |      |
9526 7  |      |      |        |      |      |
9527 ----------------------------------------
9528 8  |      |      |        |      |      |
9529 9  |      |      |        |      |      |
9530 10 |      |      |CCCVS   |      |      |
9531 11 |      |      |CHGCURRS|      |      |
9532 ----------------------------------------
9533 12 |      |      |        |      |  -   |
9534 13 |      |      |        |      |  -   |
9535 14 |      |      |        |      |  -   |
9536 15 |      |      |        |      |  -   |
9537 ----------------------------------------
9538 16 |      |      |USB4V4S |      |  -   |
9539 17 |      |      |USB2V0S |      |  -   |
9540 18 |      |      |USB0V8S |      |  -   |
9541 19 |      |      |IDFLOATS|      |  -   |
9542 ---------------------------------------
9543 20 |      |      |        |      |  -   |
9544 21 |      |      |        |      |  -   |
9545 22 |      |      |        |      |  -   |
9546 23 |UDMI  |      |UDMS    |      |  -   |
9550 reg 0  |
9551 reg 1  |
9552 reg 2  |
9553 reg 15 |----|----|----|0000|0011|0010| 0x000032
9558 Battery status table {{{
9559     18jan2010
9560 4.20v  =   798
9561 4.18v  =   787
9562 4.15v  =   777
9563 4.10v  =   750
9564 4.05v  =   727
9565 4.00v  =   700
9566 3.90v  =   663
9567 3.85v  =   639
9568 3.80v  =   610
9569 3.70v  =   569
9570 3.65v  =   546
9571 3.60v  =   524
9572 3.55v  =   502
9573 3.50v  =   482
9574 3.45v  =   455
9575 3.40v  =   430
9576 3.35v  =   407
9578 Range in units          and in Volts
9579     798 - 407 = 391     4.2 - 3.35 = 0.85
9581  50% = 602.5 = 3.775v
9582  40% = 563.4 = 3.69v
9583  30% =       = 3.605v
9584  20% =       = 3.52v
9585  15% =       = 3.478v
9586  10% =       = 3.435v
9587   5% =       = 3.39v
9591 Architecture {{{
9592     02may2010
9594     -----------
9595     | KbdTask |
9596     -----------
9597         |
9598         | Device_SendEvent()
9599         | write
9600         |
9601         |    --------------
9602          --> | Event Fifo |
9603              --------------
9607 Install linux-2.6.28 ltib imx27 on Ubuntu 9.10 {{{
9608     24feb2010
9610 ??? sudo apt-get install bison libncurses5-dev build-essential rpm tcl8.5 libghc8-zlib-dev cscope
9612 rm -rf ~/.ccache
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
9620 install patch: 
9621     cd ltib
9622     patch -t 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'
9627 ./ltib
9630 --- address mapping
9632 Flash 0xd8000000
9633 RAM   0xa0000000
9635             usb                 -------
9636            _|_|_               |   *A  |-Sensor
9637           / 12  \=> A          |       |
9638          |       |             |       |
9639          |9    3 |             |       |
9640          |       |             |*R  *V |
9641    StBy<= \__6__/=> V          |_______|
9642              |                    | |
9643            Sensor                 usb
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  |
9651 Still pic |   A s |       |
9652 Sleep     | A + V |  USB  | rebooting
9654 Vibration
9655 ---------
9656 1. StartRec, PowerUp = 1s, Go2Sleep=0.5s=StartSnapshot
9657 2. StopSnapshot=0.5
9658 3. StopRec=0.5s
9659 4. DiskSpace, RecFail, PowerDown = 0.5s
9660 5. BatteryLow
9662 --- StartUp script
9663 /etc/rc.d/rc.local
9665 --- Config kernel params to set console
9666 from Redboot prompt
9667 fconfig
9668 fis load ramdisk
9669 fis load linux
9670 exec -c "root=/dev/ram rw ramdisk_size=40000 initrd=0xa2000000,25440256 init=linuxrc console=ttymxc0,115200"
9672 Burn redboot w/ JTAG {{{
9673     27oct2009
9674 Connect JTAG to the board
9675 Get Redboot prompt on target and run:
9676     nand erase -f 0x0 -l 0x40000 -o
9677 Reboot the target
9678 Run JLink app on Windows and get prompt.
9679 Run follow: {{{
9680   // Reset
9681   r
9682   speed 1000
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
9717   // DDR 4x16Mx16 x 2
9718   // Row Address = 14
9719   // Col Address = 10
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
9736   w1 0xA0000033,0x00
9737   w1 0xA1000000,0x00
9738   // ESDCTL0: Normal Mode
9739   // Row Address  = 13
9740   // Col Address  = 10
9741   // Data width   = 32-bit
9742   // Refresh Rate = 8192/64ms 
9743   // Burst Length = 8
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
9756   setpc   0xa0000000
9757   go
9759 Get Redboot prompt and run
9760     factive nand
9761 Get Redboot prompt and run
9762     romupdate
9765 ltib {{{
9766     from http://www.bitshrine.org/autodocs/LtibFaq.html
9768 ltib --help
9770 --- Run interactive config
9771 ltib -c 
9773 --- Get list of installed packages
9774 ltib --mode listpkgs
9776 --- Create ramdisk
9777 ltib -D
9779 --- Start platform config w/o continue to build it after
9780 ltib -m config
9782 --- Get shell ready to build from ltib
9783 ltib -m shell
9785 --- To list the installed packages
9786  ./ltib -m listpkgs | grep ' y '
9788 --- Configure the kernel
9789 ltib --configure
9790 Check option: Configure the kernel
9792 --- Rebuild only kernel
9793 ltib -p kernel -m scbuild
9797 Build kernel
9798 setwatch
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
9803 Upgrade {{{
9804 plugin USB
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)
9808 plug out USB cable
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
9811 RedBoot> help exec
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>]
9816 RedBoot>
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:
9820 burn redboot
9821 ============
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
9836 --- Set local ip
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
9847 Bootstrep {{{
9848 --- Update ramdisk
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
9854 3) factive nand
9855 4) fis create -f 0x380000 -r 0x2000000 -l 0xA00000 -e 0x2000000 -b 0x0240000 ramdisk
9856 5) romupdate
9857 6) Power Off
9859 --- Update kernel
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
9865 3) factive nand
9866 4) fis create -f 0x80000 -r 0x100000 -l 0x300000 -e 0x100000 -b 0x0040000 linux
9867 5) romupdate
9868 6) Power Off
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
9874 3) power off/on
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
9878 5) factive nand
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
9882 9) romupdate
9883 10) Power Off
9885 --- Vanila card
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
9890 3) factive nand
9891 4) fis init
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
9894 7) romupdate
9895 8) fconfig
9896 On "Run script at boot:" - insert "true", enter
9897 fis load ramdisk
9898 fis load linux
9899 exec
9901 On "Boot script timeout:" - insert "1", enter
9902 On "Use BOOTP for network configuration:" - insert "false"
9903 Push ENTER until 
9904 "Update RedBoot non-volatile configuration - continue (y/n)?" - "y"
9906 10)Power Off
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 
9929 Then type: p
9930 Then: 1
9931 Then type: <enter>
9932 Then type: <enter>
9933 Then type: t
9934 Then type: b
9935 Then type: w 
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:
9944 burn redboot
9945 ============
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
9960 --- Set local ip
9961 ip_address -l 192.168.1.133
9962 ubide   
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
9980 appfs:          ()
9981 ======
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 
9987 #mkdir /mnt/appfs
9988 mount -t ubifs ubi0:appfs /mnt/appfs
9993 usrfs:          ()
9994 ======
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
10002 (for 2 GB flash)
10003         dd if=/dev/zero of=/mnt/usrfs/fat32 bs=1M count=1700
10004 (or)
10005         dd if=/dev/zero of=/mnt/usrfs/fat32 bs=1M count=800
10007 (for 2 GB flash)
10008         fdisk -C 27200  -H 16 -S 8 /mnt/usrfs/fat32
10009 (or)
10010         fdisk -C 12800  -H 16 -S 8 /mnt/usrfs/fat32
10012 In fdisk you need to type: n 
10013 Then type: p
10014 Then: 1
10015 Then type: <enter>
10016 Then type: <enter>
10017 Then type: t
10018 Then type: b
10019 Then type: w 
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
10032 3. factive nand
10033 4. fis init
10034 5. romupdate
10035 6. fconfig
10036 On "Run script at boot:" - insert "true", enter
10037 fis load ramdisk
10038 fis load linux
10039 exec
10041 On "Boot script timeout:" - insert "1", enter
10042 On "Use BOOTP for network configuration:" - insert "false"
10043 Push ENTER until 
10044 "Update RedBoot non-volatile configuration - continue (y/n)?" - "y"
10046 7. Power off
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
10058 burn redboot
10059 ============
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 {{{
10066     20aug2009
10068 Current state: evl board works, saving media file on flash
10070 Open issues:
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
10079 Closed issues:
10080 1. Save video (h264) in file (avi container)
10081 2. Save audio (mp2) in file (avi container)
10082 3. 
10084 1. EVM boot sequence from MMC
10085 2. Playback during recording
10086 3. To fix audio output
10087 4. To use EVM RC
10088 5. A/V sync problem during streaming & recording> to change recording to TS file.
10091 -------------------------------------------------------------------------------
10092 ----------------------------------- Harmonic-----------------------------------
10093 -------------------------------------------------------------------------------
10095 001. MasterClock - FrontEnd feature {{{
10096     03may2009
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.
10102 Solution:
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()
10105 to re-init a port.
10108 002. Acquisition mode - FrontEnd feature {{{
10109     03may2009
10110     
10112 003. Input Frequency Range - FrontEnd feature {{{
10113     27apr2009
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
10127     LO_type=Ku_band
10128     LO_freq=
10132 004. Drift compensation - FrontEnd feature {{{
10133     27apr2009
10135 Add ability to compensate 
10138 005. Frequency scanning {{{
10139     03may2009
10140 from IRD2900 {{{
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 {{{
10147     19may2009
10148     Start to de-jitter w/o PCR
10149 Current code flow {{{
10150     19may2009
10152 --- StartUp
10153 FeEcc3100Tuner::PowerUpInitParam()
10154 |-> ...
10155 |-> Set port sym rate
10156 |   |-> CalcBitRateFromSR()
10157 |-> Set port modulation
10158 |   |-> CalcBitRateFromSR()
10159 |-> Set port stream ID
10160 |   |-> CalcBitRateFromSR()
10161 |-> ...
10162 |-> Get dejitter revision (2nd byte)
10163 |-> if rev==0x03, set FeDVBS2FPGA03_DDS=1, otherwise FeDVBS2FPGA03_DDS=0
10165 --- Running
10166 CFePortSKYPHY::CheckPort()
10167 |-> CFePortSKYPHY::Optimize_lock()
10168 |   |-> ...
10169 |   |-> CalcBitRateFromPCR() - when staying in lock, every 100ms
10170 |   |   
10171 |   |-> ...
10172 |   |-> ...
10173 |-> get_ReceiverStatus()
10174 |   |-> ...
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
10182 --- Set parameters
10183 |-> Set param
10184 |-> RestartLockOptimize()
10185     \_> CalcBitRateFromSR() - calc bitrate from sym rate
10186         |-> see below
10188 CalcBitRateFromSR() code flow {{{
10189     gets; RS_value, modulation, FastOutputRate, boolean
10190 |-> calc output bit rate from 
10191 |-? FastOutputRate
10192 |   Enable_DDS() - disable DDS
10193 |   SetBitRate2_DDS()
10194 |   |->
10195 |   Enable_DDS() - enable DDS
10196 |_> SetBitRate2_ECC()
10197     |->
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.
10207 Solution:
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
10216 --- General {{{
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 ???
10231     6. A (efs-26) 
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
10238         28.1 change MODCOD
10239         28.2 change pilots
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
10253 D       default = on
10254 d       44.4 B Keep the result offset in db?
10255 *   5. A (efs-45) Acquisition mode
10256 D       default = timing
10257 D       45.2 Wide search - +-25% of symbol rate
10258     6. A (efs-46) Freq scan
10259         46.1 A Scan & Lock
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
10281 --- Status {{{
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
10288         C/N
10289         Eb/No
10290         Link margin
10291         BER
10292         PER
10293         freq
10294         offset
10295         spectral inv
10296         modulation
10297         FEC
10298         pilots
10299         frame size
10301 --- Alarms {{{
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) {{{
10319     18may2009
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 {{{
10333     01jun2009
10335 w/o Scanning, only Acquisition
10337 1. Limited (Scan&Lock) scanning
10340 009. Get params per parameter {{{
10341     21jun2009
10342 Ability to get each config param by separate call from CLI.
10343 Demand of EMS.
10345 010. To define FrontEnd web interface parameters {{{
10346     24jun2009
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 {{{
10372     29jun2009
10373         QPSK  | 8PSK  | 16APSK
10374 ----------------------|----------
10375 1/2     x s   |       | 
10376 2/3     x s   | x     | x 
10377 3/4     x s   | x     | x
10378 5/6     x s   | x     | x
10379 7/8     x s   |       | 
10380 1/4     x     |       | 
10381 1/3     x     |       | 
10382 2/5     x     |       | 
10383 3/5     x     | x     | 
10384 4/5     x     |       | x
10385 8/9     x     | x     | x
10386 9/10    x     | x     | x
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 {{{
10392     15jul2009
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 {{{
10403     16jul2009
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 {{{
10413     16jul2009
10414 Run irpd.elf and take pid of FePriThread
10415 run on the target:
10416 gdbserver 192.168.0.1:7000 --attach 1059
10417 where 192.168.0.1 is addr to accept from and 7000 is port
10418 run on pc:
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 {{{
10425     26jul2009
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
10452 02aug2009
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
10463 Using profiler {{{
10464     28jul2009
10465 gprof, callgrind, oprofile
10467 gprof - not support multithreaded application
10469 Full irpd - 54460kB
10470 No FE     - 52400kB
10472 Telnet client problems {{{
10473     02aug2009
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:
10478 DEFAULT
10479     set echo off
10480     mode character
10484 dvbs2 testing {{{
10485     26may2009
10487 Startup output {{{
10488     16jun2009
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                                                                                        
10495 param: 1                                                                                                                                     
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
10498 ound                                                                                                                                         
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
10529 ep = 003425ED
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
10588 13493.579057                                                                                                                                 
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 {{{
10593     16jun2009
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
10601     3. Change 
10603 Frequency scanning & Acquisition mode {{{
10605 Acq mode range gives +/- 25% of sym rate to freq
10606 Example:
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 |
10622          |       |     |      |     |       |     |      |     |
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 |
10635          |       |     |      |     |       |     |      |     |
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 |
10648          |       |     |      |     |       |     |      |     |
10649 Locking  |       |     |      |     |       |     |      |     |
10650  Range   |  no   | no  |  no  | no  |  no   | no  |  no  |  no |
10651 --------- -------------------------- --------------------------
10652 Expected results: range 
10655 Freq Scan entire band {{{
10656     05jul2009
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
10686 cfi_chip_setup
10687 cfi_probe_chip
10690 4xDVBS2 (Ayecka) {{{
10692 P:\RnD\IRD\Avi\DVBS2\Ayecka\
10696 -------------------------------------------------------------------------------
10697 ----------------------------------- Scopus ------------------------------------
10698 -------------------------------------------------------------------------------
10700 001. PSI table parser and generator {{{
10701     20may2007
10702 Build libdvbpsi
10703 svn checkout svn://svn.videolan.org/libdvbpsi/trunk 25may2007
10704 cd 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
10714 8. Modularity
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
10787 D - 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 {{{
10801     06jun2007
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
10827 dev/sw/app/app.mak
10828 dev/sw/scripts/irpapp.mak
10829 dev/sw/scripts/irplib.mak
10830 dev/sw/cli/cli.mak
10831 dev/sw/cfgmgr/cfgmgr.mak
10832 dev/sw/db/db.mak
10833 dev/sw/common/common.mak
10834 dev/sw/osutils/osutils.mak
10835 dev/sw/ts_processor/ts_processor.mak
10836 dev/sw/mux/mux.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 {{{
10845     02jul2007
10846 Current flow:
10847 kernelapps - webserver, openrdate, snmpd, ftp
10849 Changed files
10850 add p4-env.src, log.sh, string.sh
10851 irpsys.sh, env-pro-ppc-405
10852 released 04jul2007
10854 004. IRP application start up process {{{
10855         16sep2007
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
10869 - ASI (in and out)
10870 - GBE
10871 - FE
10872 - CI
10875 5. Application modules init (AMI) {{{
10877 List of the app modules
10879 Main Control modules
10880 - Launcher
10881 - Configuration manager
10882 - Hardware manager
10883 - Dynamic Data manager
10884 - Database manager
10885 - Event manager
10886 Security modules
10887 - License authentication module
10888 - User permissions module
10889 Datapath (data processing) modules
10890 - Transport Stream (TS) processor
10891 - FrontEnd manager
10892 - Descryption manager
10893 - Table parser
10894 Management modules
10895 - CLI
10896 - SNMP
10897 - EMS
10898 - Front Panel
10900 SNMP-like db {{{
10901     18oct
10903 Documents:
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
10911     
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
10924      SEP         OCT                     NOV
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{{{
10935     08nov2007
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.
10943 struct ver_info {
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)
10959 Better solution.
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.
10963 solution {{{
10964 struct ver_info {
10965     char *description;
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
10991 cli-engine
10992 }}} 
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 {{{
11000     01jan2008
11001 1. List of hw devices for recognition
11003 AHWC - actual hw config (found by HwMan)
11004 EHWC - expected hw config (written in Db)
11006 Detachable:
11007     Frontend
11008     Option card (Fe, Decr, ASI, etc.)
11010 Fixed:
11011     ASI (4+2)
11012     CIMAX+CAM (2)
11013     Ethernet mng (2)
11014     Serial (con) (1)
11015     GPIO (1)
11016     GBE (2)
11018 2. Recognition policies
11020     The AHWC comming from idprom and EHWC from current db status.
11022                     NoLic     Lic
11023 fixed       A < E   scratch   scratch
11024             A > E   scratch   scratch
11025 detach      A < E   block cfg block cfg
11026             A > E   ignore    ignore
11028 status: 10dec2008
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 {{{
11038     20nov2007
11039 Question:
11040 --- CAM parameter defines which ES supported?
11042 Assumptions:
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
11061 and time.
11062 Application Info
11063 CA Info
11067 CAM state should be provided:
11068     NONE        - CAM missing
11069     IN_RESET    - CAM after reset but still not ready
11070     OK          - OK
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.
11086 Implementation
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
11100 Used db tables {{{
11101 1+  DecrDrvMap table (non-persistent)
11102         (slot_indx, adapter, ca_dev, slot_nbr)
11103     To add follow API: Clear, Add, Get, GetNext
11105 2   PMT
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)
11117         (slot_idx, sys_id)
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).
11127         (slot_idx, status)
11128     This is non-persistent table, describes status per CAM device. 
11129     Filled by DecrMngr.
11131 Add CLI cmd {{{
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
11137 workplan
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 {{{
11170     12feb2007
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()
11178 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....
11191     |   |   |-> 
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
11197 kernel crash {{{
11198 /root>Oops: kernel access of bad area, sig: 11 [#1]
11199 PREEMPT 
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
11204 Last syscall: -1 
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]
11211 Call trace:
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
11227 Call trace:
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
11236  [00000002] 0x2
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 {{{
11254     19feb2008
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 ----------------------------------------------------|
11268 GW              | 10.2.0.4        |                 |
11269 10.2.0.1        | 10.2.0.2        | 192.168.0.1     |
11270 -----------------------------------------------------
11272 013. Hardware monitoring {{{
11273     09mar2008
11277 014. IRP upgrade - design {{{
11278     08jan2008
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
11289 EMS.
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  |
11296   |          |          |       |        |      |        |     |
11297    ------------------------------------------------------------
11298   |    150   |   2625   |  535  |  1285  | 8777 | ~5000  |35000|
11299   |          |          |       |        |      |        |     |
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
11315 upgradeable.
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 
11334 lack.
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).
11344 firmware.image
11345 kernel.image
11346 rootfs.image
11347 cfgfs.image
11348 emsfs.image
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
11370         card
11372     IRP w/ 2    1.1.1   1.2.3   1.3.4   1.9.0   1.5.2   1.6.3
11373         cards
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     |--------------------------------------------------------------------|
11411                                 5400 |        
11413                        |                     UPGRADABLE                  |
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     |------------------|-------------------------------------------------|
11420                        |                                   32000   |     |
11422 9.  Choosing how to upgrade?
11424     A. 2 equal systems
11426  |            |    Upg   |   Upg    |
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
11448     Dynamic addressing
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 
11464 new one. 
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 
11509 system.
11511     Hardware revison
11512     Device serial number
11513     License
11514     User options
11515     Configuration flags
11516     Upgrade flags
11518     IRP bootup procedure
11520     The upgrade process have certain influence on the subject. 
11522 A   Upgrade flags
11524     FFU - Force Firmware Upgrade
11526 B   Open questions
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
11540         b. Decoder:
11541         c.
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?
11545         b. Decoder:
11546         c.
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 {{{
11558     17mar2008
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
11576     Virtex burn
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 {{{
11587     01apr2008
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 
11606 tarball:
11607 tar cvf upgrade.tar virtex.bin u-boot.srec pMulti
11610 018. Boot image on front panel {{{
11611     13apr2008
11612 1. Implement front panel driver in uboot
11614 front panel driver {{{
11616 files: 
11617     frntPnlDrvc.c
11618     frntpnlmod.mod.c
11619     frntHwInt.c
11620     frntLcdUtil.c
11623 019. Add new partition for EMS {{{
11624     18may2008
11625 Add follows
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 {{{
11633     finished 21may2008
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) {{{
11647     27may2008
11648     Story 691 {{{
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:
11655 -- presence
11656 -- hw_revision
11657 -- serial number
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.
11667 write 0x73 3 0xdf
11668 read  0x73 1 val
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 
11675 and 22 - top.
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
11683 Opens:
11684 1. Ability to read presence bit. Waiting for Sharon. Virtex from 28may2008.
11685 2. 
11687 Status:
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 {{{
11694     22jun2008
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 {{{
11705     22may2008
11707 Intro {{{
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.
11722 Check locking.
11723 Carrier lock
11725 Have 2 source codes:
11726 Source code - the original LG code
11727 33046039_sfotreset - working code from DITOCOM
11729 Theory
11730 The 8VSB is RF modulation used for ATSC.
11734 Open questions:
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)
11761     |   |
11762     |   |_> LgdtInitDelay()
11763     |       |-> LgdtCheckRegi(0x0422)       // Init: delay auto off
11764     |       |-> LgdtAlterRegi(0x0422)       //           =
11765     |       |-> LgdtCheckRegi(0x0423)       // Setting 0x0423
11766     |       |_> LgdtAlterRegi(0x0423)       //           =
11767     |
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) //            =
11792         |   |-> 
11793         |   |->
11794         |   |->
11795         |_> LgdtResetFAT()
11798 MenuStatusCheck() // main.cpp
11799 |-> ... {{{
11800 |-> LgdtIsLockSync()
11801 |-> LgdtIsLockCR()
11802 |-> LgdtCheckPacketErr() // LGDT3304API_CHECK.cpp
11803 |   |-> LgdtCheckRegi(0x050C, data)
11804 |   |-> ndata << 8
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
11812 |       |-> ndata << 16
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
11838 |->RunPLL()
11839 |->Run3304()
11840 |_> set timer
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
11849 |-> Sleep(20)                                                   //     =
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) //    =
11883 |   |-> 
11884 |   |-> 
11885 |   |-> 
11886 |-> RegSetOneRegister(0x0002, RegGetOneRegister(0x0002)&0xFE)   // reset FAT
11887 |-> Sleep(20)                                                   //     =
11888 |-> RegSetOneRegister(0x0002, RegGetOneRegister(0x0002)|0x01)   //     =
11890 CLGDT3304Dlg::OnTimer   // LGDT3304Dlg.cpp
11891 |-> lock_check()
11892 |   |-> lgdt3304Carriercheck()
11893 |   |-> lgdt3304inlockcheck()
11894 |   |-> lgdt3304Errorcheck()
11895 |   |-> lgdt3304trlockcheck()
11896 |   |-> lgdt3304_SignalStatus()
11897 |   |-> 
11898 |   |->
11899 |   |->
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 
11908 board.
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).
11911 LEDs: 
11912 when i2 expander config to MIM 1 (reg 0x2 val 0xfc) there are LES:
11913 LED2 - on, yellow
11914 LED3 - on, green
11915 when i2 expander config to MIM 2 (reg 0x2 val 0xfd) there are LES:
11916 LED2 - off
11917 LED3 - on, green
11918 when i2 expander config to MIM 3 (reg 0x2 val 0xfe) there are LES:
11919 LED2 - on, yellow
11920 LED3 - off
11921 when i2 expander config to MIM 4 (reg 0x2 val 0xff) there are LES:
11922 LED2 - off
11923 LED3 - off
11926 8VSB
11927 ATSC - 
11928 DTV - Digital TV
11930 8VSB Reception feature
11932 Intro
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 {{{
11939     17aug2008
11940 story 1227
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.
11950 Solution:
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'
11958 and `emerg'.
11961 025. Additional control for 8VSB {{{
11962     07sep2008
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
11969     done 09sep2008
11971 026. Upgrade of mainboard Spartan + common upgrade changes {{{
11972     10sep2008
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 {{{
11982     18sep2008
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
11986 XEmac_Initialize()
11987 irpResetPhy()
11988 |-> XEmac_PhyReset
11989 |                   Autonegotiation
11990 |-> XEmac_PhyRead 
11991 |-> XEmac_PhyWrite
11992 |                   Statua
11994 from kernel
11995 xemac_probe()   (from drivers/net/xilinx_emac/adapter.c)
11996 |-> ...
11997 |-> XEmac_CfgInitialize()
11998 |   |-> ...
11999 |   |-> XEmac_Reset()
12000 |-> ...
12001 |-> dm9161Init()
12002 |   |-> ADDED follows
12003 |   |   printk(KERN_INFO "PHY RESET\r\n");
12004 |   |   XEmac_PhyReset(&lpIn->Emac);
12005 |   |   mdelay(3000);
12008 028. Ability to set Ofek env with number of options {{{
12009     18sep2008
12010 Added to greader as command line option "--ofek_append"
12012 029. Load IRP w/ 8 inputs {{{
12013     07oct2008
12014 Gets Spartan aa27 and Virtex 8-10-2-1 from 27oct2008
12016 Issues:
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 {{{
12025     29oct2008
12026 Here, reset which forces the Spartan to reread Virtex code from flash after
12027 reboot.
12028 The cold reset could be done if to write 0x4567 to address 0x9020000e.
12029 Solution:
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
12042 --- Changes
12043         Firmware
12044 new spartan.bin-B029
12045         Apps
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
12052         Kernel
12053 //irp/montavista/devrocket2.0/dev/irp-bsp.1/drivers/mtd/maps/mtd405.c#8
12054         U-Boot
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 {{{
12072     12nov2008
12073 Solution:
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.
12080 17nov2008
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 {{{
12087     20nov2008
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:
12094 --- read addr
12095 md 0x9020000c
12096 --- disable wd (switch 11 bit on)
12097 mw 0x90200006 0xf3ffabcd
12098 --- enable wd (switch 11 bit on)
12099 mw 0x90200006 0xfbffabcd
12100 --- feed wd
12101 mw 0x9020002a 0x1
12103 Solution:
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
12111 Flows:
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.
12120 Changed files:
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 {{{
12136     10dec2008
12138 Create network manager controls all 4 IRPs network devices from PHY to socket
12139 level.
12141 New files placed at net_mngr
12144 035. Merge of HwMngr and UnitMngr {{{
12145     10dec2008
12146     All HwMngr apis moved to UnitMngr, except management port and phy control -
12147 moved to NetMngr.
12148 Decided (Akiva 11dec2008) not to use queue and messaging of UnitMngr.
12152 Frontend to support DVBS_STM card {{{
12153     05jun2007 23dec2007 15sep2008 16nov2008
12155     FE recognition
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.
12166 i2c addrs:
12167 0x08    LNB
12168 0x60    Tuner
12169 0x68    Demod
12171 --- STB6000 {{{
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
12177 i2c addr 0x60
12178 registers:
12179     There are 11 regs rw (sub-addr 0x01 - 0x0b). Another 3 ro regs (0x00, 0x0c,
12180 0x0d).
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
12197 reg LD
12198     if LSB bit os 1 - PLL locked, otherwise not locked
12200 reg VCO
12203 --- STV0288 {{{
12204 from "288 datasheet.pdf"
12205 STV0288 has analog to digital converter, QPSK demodulator, forward error
12206 correction (FEC).
12208 --- LNB21P {{{
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.
12220 from IRD2900 {{{
12221 FrontEnd flows {{{
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())
12225         Select input port
12226         Hardware reset
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())
12239             ...
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.
12248 -------- }}}
12250 DVBS_STM write to tuner
12251 open i2c bus file
12252 enable i2c to tuner
12253 write
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
12269 build/usrAppInit.c
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)
12283 |   |   |   {{{
12284 |   |   |-> get FrontEnd app init params (FrontEndAppInit_S)
12285 |   |   |-> reset MAIN_RESET
12286 |   |   |-> FrontEndDrvInit(FeType_E, FrontEndGenericDrv) (drv_ird/frnt_end/fe_drv.cpp)
12287 |   |   |   |   {{{
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)
12292 |   |   |   |   }}}
12293 |   |   |-> FeEcc3100Tuner::FeEcc3100Tuner() (app_fe/ecc3100/fe_ecc3100_tuner.cpp)
12294 |   |   |   |   {{{
12295 |   |   |   |-> FeEcc3100Tuner::PowerUpInitParam() (app_fe/ecc3100/fe_ecc3100_tuner.cpp)
12296 |   |   |   |   |   {{{
12297 |   |   |   |   |-? FeNIMSAT2Tuner::PowerUpInitParam() (app_fe/stqpsk/fe_nimsat2_high.cpp)
12298 |   |   |   |   |   |-> ... 
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)
12318 |   |   |   |   |   |-> ...
12319 |   |   |   |   |
12320 |   |   |   |   |
12321 |   |   |   |   |   }}}
12322 |   |   |   |-> FeNIMSAT2Tuner::FeNIMSAT2Tuner() (app_fe/stqpsk/fe_nimsat2_high.cpp)
12323 |   |   |   |   |   {{{
12324 |   |   |   |   |-> FeNIMSAT2Tuner::PowerUpInitParam()
12325 |   |   |   |   |-> ...
12326 |   |   |   |       }}}
12327 |   |   |   |_> save status (FrontEndRunTimeStatus_S)
12328 |   |   |       rsber, signal level n signal corel level
12329 |   |   |       }}}
12330 |   |   |_> create FE LNB app (app_fe/lnb/lnb_app.cpp)
12331 |   |   |   FrontEndGenericLnb::FrontEndGenericLnb() 
12332 |   |   |   |-> ...
12333 |   |   |   }}}
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)
12339 |   |  | {{{
12340 |   |  |-> get FrontEnd App init params - rtdbiGetFrontEndAppInitParam()
12341 |   |  |-> FrontEndDrvInit(FeType_E, FrontEndGenericDrv) (drv_ird/frnt_end/fe_drv.cpp)
12342 |   |  |   |   {{{
12343 |   |  |   |-> new_FeSTQpskDrv() (fe_stqpsk_drv.cpp)
12344 |   |  |   |   |_> FeSTQpskDrv::FeSTQpskDrv() (fe_stqpsk_drv.cpp)
12345 |   |  |   |       |_> FeSTQpskDrv::PowerUpInit() - do nothing
12346 |   |  |   |_> ... }}}
12347 |   |  |-> FeNIMSAT2Tuner::FeNIMSAT2Tuner() (fe_nimsat2_high.cpp)
12348 |   |  |   |   {{{
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
12354 |   |  |   |   
12355 |   |  |   |_> FeNIMSAT2Tuner::PowerUpInitParam() (fe_nimsat2_high.cpp)
12356 |   |  |       |-> rtdbiGetSatelliteAppRunTimeParam()
12357 |   |  |       |-> lock
12358 |   |  |       |-> hwReadXlnx1()
12359 |   |  |       |-> hwWriteXlnx1() - set input port
12360 |   |  |       |-> intUnlock()
12361 |   |  |       |-> CFeGenericModule::Reset
12362 |   |  |       |   |   {{{
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)
12372 |   |  |       |   |   {{{
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)
12391 |   |  |       |       }}}
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
12402 |   |  |       }}}
12403 |   |  |_> FrontEndGenericLnb::FrontEndGenericLnb() (app_fe/lnb/lnb_app.cpp)
12404 |   |      |   {{{
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 }}}
12409 |   |    }}}
12410 |   |_> CMsgDispatcherApplet::Attach() (msg_dispatcher.cpp)
12411 |       |_> see common flows
12412 |_> taskSpawn()
12413     |   |-> FrontEndTaskCarrier() (fe_main.cpp)
12414     |-> CModuleBIT_FE::CModuleBIT_FE() (fe_main.cpp)
12415     |_> CFeTunerSTQpskModule::FePeriodicTaskHndlr() (fe_stqpsk_module.cpp)
12416         |   {{{
12417         |-> self suspend
12418         |-> task delay for 50ms
12419         |-> FeNIMSAT2Tuner::ifExecLnbCmnd() (fe_nimsat2_high.cpp)
12420         |   |   {{{
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)
12432         |   |   {{{
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.
12438         |       |-> open()
12439         |       |-> ioctl()
12440         |       |-> ioctl()
12441         |       |-> write()
12442         |       |_> close() }}}
12443         |-> task delay for 50ms
12444         |-> busyloop - take sem
12445         |-> FeNIMSAT2Tuner::ifOptimFeLockPeriodicProc() (fe_nimsat2_high.cpp)
12446         |   |   {{{
12447         |   |-> FeNIMSAT2Tuner::Optimize_lock() (fe_nimsat2_low.cpp)
12448         |   |   |-> ...
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)
12455         |   |   |-> ...
12456         |   |   |-> ...
12457         |   |_> FeNIMSAT2Tuner::Frequency_search() (fe_nimsat2_low.cpp)
12458         |       |_> ... }}}
12459         |_> release sem }}}
12460     |_> CFeTunerEcc3100Module::FePeriodicTaskHndlr() (app_fe/ecc3100/fe_ecc3100_module.cpp)
12461         |   {{{
12462         |-> self suspend
12463         |-> delay 1 sec
12464         |-> FeEcc3100Tuner::ifExecLnbCmnd()
12465         |-> FrontEndGenericLnb::ifExecLnbCmnd()
12466         |-> delay 100msec
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()
12471         |   |-> else
12472         |   |--> Optimize_lock()
12473         |   |--> get_ReceiverStatus()
12474         |   |--> Frequency_search()
12475         |_> release sem }}} 
12477 ExecMngrTask() (app_sys/exec_mngr/execmo.cpp)
12478 |   {{{
12479 |-> ...
12480 |->>msgQReceive()
12481 |_>>pMessagePars()==RunTimeProcess()
12482     |-> ...
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()
12488     |   |   |   DVBS_STM
12489     |   |   |   | {{{
12490         |       |       |   CFeTunerSTQpskModule::mtSetFrequency() (app_fe/stqpsk/fe_stqpsk_module.cpp)
12491     |   |   |   |   {{{
12492     |   |       |       |-> CFEGenericTuner::ifSetStreamSourceDisable()
12493     |   |       |       |   |_> execmGenerateNewSystemEvent(eEventFrontEndStreamStatusChanged)
12494     |   |       |       |               (app_fe/fe_tuner.cpp)
12495         |       |       |       |-> FeNIMSAT2Tuner::ifSetFeFrequency()
12496     |   |   |   |   |   {{{
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)
12502     |   |   |       |   {{{
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()
12512     |   |   |   |   {{{
12513     |   |   |   |_> ... }}}
12514     |   |       |       CFeTunerSTQpskModule::mtSetFecRate()
12515     |   |   |   |   {{{
12516     |   |   |   |-> CFEGenericTuner::ifSetStreamSourceDisable()
12517     |   |   |   |-> FeNIMSAT2Tuner::ifSetFeFecRate()
12518     |   |   |   |_> FeNIMSAT2Tuner::ifRestartLockOptimize(eRestartAll) }}}
12519     |   |       |       CFeTunerSTQpskModule::mtSetSpectralInvers()
12520     |   |   |   |   {{{
12521     |   |   |   |_> ... }}}
12522     |   |       |       CFeTunerSTQpskModule::mtSetInputPort()
12523     |   |   |   |   {{{
12524     |   |   |   |_> ... }}}
12525     |   |       |       CFeTunerSTQpskModule::mtSetFreqScan()
12526     |   |   |   |   {{{
12527     |   |   |   |_> ... }}}
12528     |   |       |       CFeTunerSTQpskModule::mtSetLnbPolar()
12529     |   |   |   |   {{{
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()
12539     |   |   |   |   {{{
12540     |   |   |   |_> ... }}}
12541     |   |       |       CFeTunerSTQpskModule::mtSetDiSeqCProtocol()
12542     |   |   |   |   {{{
12543     |   |   |   |_> ifSetLnbDiSEqCInterfaceType() }}}
12544     |   |   |   }}}
12545     |   |   |   DVBS2_ECC
12546     |   |   |   |   {{{
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
12563     |   |   |   |_> ... }}}
12564         |       |       |_> semGive
12565         }}}
12567 --- Common flows
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()
12578 |   
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)
12593 |   
12594 |      eSetTunerLnbPolar, CSetLnbPolarHandler::CSetLnbPolarHandler()
12595 |      |_> CFeTunerSTQpskModule::mtSetLnbPolar()
12596 |      eSetTunerLnbBand, CSetLnbBandHandler::CSetLnbBandHandler()
12597 |      |_> CFeTunerSTQpskModule::mtSetLnbBand()
12598 |      eSetTunerLnbDiSeqCProtocol, CSetDiSeqCProtocolHandler::CSetDiSeqCProtocolHandler()
12599 |      |_> CFeTunerSTQpskModule::mtSetDiSeqCProtocol()
12600 |       }}}
12602 Calculate Lband freq
12605 applications/  {{{
12606     fe_main.cpp {{{
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()
12615         }}}
12616     fe_tuner.cpp {{{
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
12638         }}}
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()
12654         }}}
12655     msg_dispatcher.cpp {{{
12656                 CMsgDispatcherApplet::CMsgDispatcherApplet()
12657                 CMsgDispatcherApplet::AppletProcFunc()
12658                 CMsgDispatcherApplet::Attach()
12659                 CMsgDispatcherApplet::Detach() - do nothing
12660                 CMsgDispatcherApplet::Notify()
12661         }}}
12662     app_fe/
12663                 include/
12664                         fe_if_p.h {{{
12665                                 GenericDiSeqC (diseqc_gen_app.cpp)
12666                                         GenericDiSeqC()
12667                                         ~GenericDiSeqC()
12668                                         ifExecDiSeqCCmnd()
12669                                         ifSetDiSeqCInterfaceType()
12670                                 FrontEndGenericLnb (lnb_app.cpp)
12671                                         FrontEndGenericLnb()
12672                                         ifExecLnbPowerUp()
12673                                         ifExecLnbCmnd()
12674                                         ifExecLnbDiSeqCCmnd()
12675                                         ifSetLnbDiSEqCInterfaceType()
12676                                         GetCurrentDiSeqCObjPtr()
12677                                         friend DiSEqCTask() (diseqc_task_app.cpp)
12678                                 CFEGenericTuner
12679                                     PowerUpInitParam()
12680                                         request_WrOptimize()
12681                                         request_SetOptimize()
12682                                         request_StopOptimize()
12683                                         ifSetStreamSourceEnable()
12684                                         ifSetStreamSourceDisable()
12685                                         ifRestartLockOptimize()
12686                                         ifRunFeStreamControlProc()
12687                                         ifStopFeStreamControlProc()
12688                                         ifOptimFeLockPeriodicProc()
12689                                         ifSetFeFrequency()
12690                                         ifSetFeFrequency()
12691                                         ifSetFeSymRate()
12692                                         ifSetFeFecRate()
12693                                         ifSetFeSpectrInvType()
12694                                         ifSetFeInputPort()
12695                                         ifExecLnbCmnd()
12696                                         ifSetFeFrequencyScan()
12697                                         ifSetFeModulationType()
12698                                         ifSetFeRollOffMode()
12699                                         ifSetFePilots()
12700                                         ifSetFeOutputStreamID()
12701                                         ifSetFeQamType()
12702                                 }}}
12703                         diseqc_p.h {{{
12704                                 DiSeqC1 > GenericDiSeqC (diseqc1_app.cpp)
12705                                 DiSeqC2 > DiSeqC1 (diseqc2_app.cpp)
12706                                 }}}
12707                         device_observer.h {{{
12708                                 CObserver
12709                                 }}}
12710                         fe_main_p.h {{{
12711                                 CModuleBIT_FE : CModuleBIT
12712                                         CModuleBIT_FE() (fe_main.cpp)
12713                                         ~CModuleBIT_FE()
12714                                         ModuleRepair()
12715                                         ModuleErrPolicy()
12716                                         getModuleName()
12717                                         ModuleCheckStatus() (fe_main.cpp)
12718                                         SetTaskState()
12719                                 CFeGenericModule
12720                                         CFeGenericModule()
12721                                         FePeriodicTaskHndlr()
12722                                         Open()=0
12723                                         Close()=0
12724                                         Reset()=0
12725                                 }}}
12726                         fe_tuner_p.h {{{
12727                                 CFeTunerModule : CFeGenericModule
12728                                         CFeTunerModule()
12729                                         Update()=0
12730                                         mtSetFrequency()=0
12731                                         mtSetSymbolRate()=0
12732                                         mtSetFecRate()=0
12733                                         mtSetSpectralInvers()=0
12734                                         mtSetInputPort()=0
12735                                         mtSetFreqScan()=0
12736                                         mtSetModulation()
12737                                         mtSetRollOff()
12738                                 }}}
12739                         fe_stqpsk_p.h {{{
12740                                 FeNIMSAT2Tuner
12741                                 CFeTunerSTQpskModule : CFeTunerModule
12742                                         CFeTunerSTQpskModule()
12743                                         virtual ~CFeTunerSTQpskModule()
12744                                         Update()
12745                                         FePeriodicTaskHndlr()
12746                                         Open
12747                                         Close
12748                                         mtSetFrequency
12749                                         mtSetSymbolRate
12750                                         mtSetFecRate
12751                                         mtSetSpectralInvers
12752                                         mtSetInputPort
12753                                         mtSetFreqScan
12754                                         mtSetLnbPolar
12755                                         mtSetLnbBand
12756                                         mtSetDiSeqCProtocol
12757                                 }}}
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()
12765                                 +       AppletGetName()
12766                                 +       Notify()
12767                                 +       Attach()
12768                                 +       Detach()
12769                                 }}}
12770             stqpsk/
12771                         fe_nimsat2_p.h {{{
12772                                 only macros
12773                         }}}
12774                         fe_stqpsk_creator.cpp {{{
12775                                 FrontEndCreator_STQpsk()
12776                                 }}}
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()
12793                                 }}}
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
12808                         }}}
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()
12849                         }}}
12850                 lnb/
12851                         lnb_app.cpp {{{
12852                                 FrontEndGenericLnb::FrontEndGenericLnb()
12853                                 FrontEndGenericLnb::ifExecLnbPowerUp()
12854                                 FrontEndGenericLnb::ifExecLnbCmnd()
12855                                 FrontEndGenericLnb::ifExecLnbDiSeqCCmnd()
12856                                 FrontEndGenericLnb::ifSetLnbDiSEqCInterfaceType()
12857                                 FrontEndGenericLnb::GetCurrentDiSeqCObjPtr()
12858                                 }}}
12859                         diseqc_gen_app.cpp {{{
12860                             GenericDiSeqC::GenericDiSeqC()
12861                                 GenericDiSeqC::~GenericDiSeqC()
12862                                 GenericDiSeqC::ifExecDiSeqCCmnd()
12863                                 GenericDiSeqC::ifSetDiSeqCInterfaceType()
12864                                 }}}
12865                         diseqc_task_app.cpp {{{
12866                             DiSEqCTask()
12867                                 lnbSendMsg2DiSeqCTask()
12868                                 lnbParseMsg2DiSeqCTask() - empty
12869                                 CreateDiSeqCProc() - call to it commented at FrontEndGenericLnb()
12870                                 }}}
12871                         diseqc1_app.cpp {{{
12872                             DiSeqC1::DiSeqC1() - empty 
12873                                 DiSeqC1::~DiSeqC1() - empty 
12874                                 DiSeqC1::ifExecDiSeqCCmnd()
12875                                 DiSeqC1::ifSetDiSeqCInterfaceType() - empty
12876                                 }}}
12877                         diseqc2_app.cpp {{{
12878                             DiSeqC2::DiSeqC2() - empty
12879                                 DiSeqC2::~DiSeqC2() - empty
12880                                 DiSeqC2::ifExecDiSeqCCmnd()
12881                                 DiSeqC2::ifSetDiSeqCInterfaceType() - empty
12882                                 }}}
12883                 public/
12884                         fe_app_x.h {{{
12885                                 FrontEnd (fe_main.cpp)
12886                                         FrontEnd()
12887                                         ~FrontEnd()
12888                                         getInstance()
12889                                 CFeTunerUtil (fe_tuner_util.cpp)
12890                                 -   feRestartTunerNewParam()
12891                                         |_> execmGenerateNewSystemEvent() (from app_sys/exec_mngr/event_util.cpp)
12892                                                 |-> execmFillEventMessageData()
12893                                                 |_> MSG_Q_SEND()
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()
12907                         }}}
12908                         fe_ip_x.h {{{
12909                                 empty
12910                         }}}
12911         drv_ird/
12912                 frnt_end/
12913                         fe_stqpsk_drv.cpp {{{
12914                                 FrontEndGenericDrv* new_FeSTQpskDrv()
12915                                 FeSTQpskDrv::FeSTQpskDrv()
12916                                 FeSTQpskDrv::ifFeDrvControl()
12917                                         eZifS1WriteReg eZifS1ReadStatOnly eZifS1ReadStatWithSubAdrs
12918                                         
12919                                 FeSTQpskDrv::PowerUpInit()
12920                         }}}
12921                 public/
12922                         fe_tuner_x.h {{{
12923                                 FrontEndGenericDrv()
12924                                 ifFeDrvControl()
12925                         }}}
12926                         fe_sqpsk_x.h {{{
12927                                 FeSTQpskDrv : FrontEndGenericDrv
12928                                         FeSTQpskDrv()
12929                                         PowerUpInit() - do nothing
12930                                         ifFeDrvControl()
12931                         }}}
12932                         diseqc.h {{{
12933                         }}}
12934         app_sys/
12935                 rtdb/
12936                         rtdb_fe.cpp {{{
12937                                 rtdbiGetSatelliteAppRunTimeParam()
12938                                 rtdbFeGetSatelliteEntry()
12939                                 ...
12940                         }}}
12942 Parameters to deal w/ {{{
12945         write reg
12946         read reg
12947         power on/off
12948         hi/low band
12949         v/h polarity
12950 Tuner (zifi=zero IF)
12951         write reg
12952         read status
12953 Demodulator
12954         write reg
12955         read reg
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 -       |       |
12967 |               |                           |4200000         |       |
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,        |       |
12972 |               |                           |2 - 3/4,        |       |
12973 |               |                           |3 - 4/5,        |       |
12974 |               |                           |4 - 5/6,        |       |
12975 |               |                           |5 - 6/7,        |       |
12976 |               |                           |6 - 7/8,        |       |
12977 |               |                           |7 - 8/9,        |       |
12978 |               |                           |8 - Auto        |       |
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 –|       |
12984 |               |                           |18V             |       |
12985 |               |                           |2 - Off         |       |
12986 |lnb 22khz      |Use of LNB 22Khz           |0 - Low – 22Khz |Enum   |
12987 |               |                           |off             |       |
12988 |               |                           |1 -  High –     |       |
12989 |               |                           |22Khz on        |       |
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      |       |
12996 |               |                           |ku-band         |       |
12997 |               |                           |4 – numeric     |       |
12998 |               |                           |c-band          |       |
12999 |lnb lo         |Local oscillator frequency.| LNB L.O. Type =|KHz    |
13000 |frequency      |                           |ku-band :       |       |
13001 |               |                           |9000000         |       |
13002 |               |                           |–20000000       |       |
13003 |               |                           |LNB L.O. Type=  |       |
13004 |               |                           |c-band :        |       |
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   |
13021 |               |                           |1 – 35          |       |
13022 |               |                           |2 - auto        |       |
13023 |pilots         |                           |0 – Off         |Enum   |
13024 |               |                           |1 - On          |       |
13025 |port           |Active input port          |1 - 4           |       |
13027 }}} # from IRD2900
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 {{{
13042     19feb2009
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 
13046 (I2Cto8IO)
13047 Card elements: tuner/converter, demodulator, LNB control, I2Cto8IO (only S2)
13049 Initialization {{{
13050     02feb2009
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
13055                     w gpo out_reg 0x4
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.
13070 There are 4 regs.
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)
13083 6 - I - sync
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)
13097 7  6  5  4  3  2  1  0
13098 o  i  i  o  o  o  o  i
13101 Tuner (CE5038) {{{
13103 Has 1 read reg and 12 write regs.
13104 Read reg:
13105      7  6   5   4   3   2   1   0
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
13112     tu1 tu0
13113      0   0 - Vvar inside threshold
13114      0   1 - Vvar above threshold
13115      1   0 - Vvar below threshold
13116      1   1 - not used
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.
13122 While
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)
13127 LD4 (red)       - errors
13129 LD3 (green)     - pl (physical layer)
13130 LD2 (green)     - sync
13131 LD1 (green)     - lock
13134 i2c flows {{{
13135 --- Reset module 2
13136 26 eGPOResetDvbS2
13137 28 eGPORunDvbS2
13138 --- tuner init {{{
13139 14 eZifS2WriteReg
13140    21 eGPOEnI2CZifS2
13141    22 eGPODisI2CZifS2
13142 14 eZifS2WriteReg
13143    21 eGPOEnI2CZifS2
13144    22 eGPODisI2CZifS2
13145 14 eZifS2WriteReg
13146    21 eGPOEnI2CZifS2
13147    22 eGPODisI2CZifS2 }}}
13148 --- dvbs2 power up
13149 23 eGPOEnI2CDVBS2
13150 --- Load LUTs
13151 3  eWriteLongReg
13152 3  eWriteLongReg
13155 CFePortSKYPHY::SetPortFreq {{{
13156 | |-CFeTunerCE5038::set_Frequency()
13157     14 eZifS2WriteReg
13158       21 eGPOEnI2CZifS2
13159       22 eGPODisI2CZifS2
13160     14 eZifS2WriteReg
13161       21 eGPOEnI2CZifS2
13162       22 eGPODisI2CZifS2
13163     15 eZifS2ReadStatOnly
13164       21 eGPOEnI2CZifS2
13165       22 eGPODisI2CZifS2
13166 |-CFePortSKYPHY::SetPortSymRate()
13167   |-ecc3100_set_symbolrate()
13168     5  eWriteLongRegEnGPO
13169       23 eGPOEnI2CDVBS2
13170       24 eGPODisI2CDVBS2
13171 #   6  eReadLongRegEnGPO
13172       23 eGPOEnI2CDVBS2
13173       24 eGPODisI2CDVBS2
13174     5  eWriteLongRegEnGPO
13175       23 eGPOEnI2CDVBS2
13176       24 eGPODisI2CDVBS2
13177     5  eWriteLongRegEnGPO
13178       23 eGPOEnI2CDVBS2
13179       24 eGPODisI2CDVBS2
13180     5  eWriteLongRegEnGPO
13181       23 eGPOEnI2CDVBS2
13182       24 eGPODisI2CDVBS2
13183     5  eWriteLongRegEnGPO
13184       23 eGPOEnI2CDVBS2
13185       24 eGPODisI2CDVBS2
13186     |-CFeTunerCE5038::set_TunerBandwidth()
13187       14 eZifS2WriteReg
13188         21 eGPOEnI2CZifS2
13189         22 eGPODisI2CZifS2
13190       14 eZifS2WriteReg
13191         21 eGPOEnI2CZifS2
13192         22 eGPODisI2CZifS2
13193       14 eZifS2WriteReg
13194         21 eGPOEnI2CZifS2
13195         22 eGPODisI2CZifS2
13196   |-CalcBitRateFromSR()
13197     |-SetBitRate2_ECC()
13198      ?6  eReadLongRegEnGPO
13199      ?  23 eGPOEnI2CDVBS2
13200      ?  24 eGPODisI2CDVBS2
13201       5  eWriteLongRegEnGPO
13202         23 eGPOEnI2CDVBS2
13203         24 eGPODisI2CDVBS2
13204 |-CFePortSKYPHY::SetPortSpectrInv
13205 # 6  eReadLongRegEnGPO
13206     23 eGPOEnI2CDVBS2
13207     24 eGPODisI2CDVBS2
13208 # 6  eReadLongRegEnGPO
13209     23 eGPOEnI2CDVBS2
13210     24 eGPODisI2CDVBS2
13211 # 6  eReadLongRegEnGPO
13212     23 eGPOEnI2CDVBS2
13213     24 eGPODisI2CDVBS2
13214 |-CFePortSKYPHY::SetPortRollOff
13215 # 6  eReadLongRegEnGPO
13216     23 eGPOEnI2CDVBS2
13217     24 eGPODisI2CDVBS2
13218   5  eReadLongRegEnGPO
13219     23 eGPOEnI2CDVBS2
13220     24 eGPODisI2CDVBS2 }}}
13221 }}}  
13222 Dejjiter {{{
13223     16mar2009
13225 Theory {{{
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)
13231             |       |
13232 --wr_row--> |       |
13233             |       |
13234             |       |
13235 <--rd_row-- |       |
13236             |       |
13237              -------
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 
13245 Algorithm
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
13257             |       |
13258             |       |
13259             |       |
13260             |       |
13261             |       |
13262             | row   | 4095
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
13275             --- StartUp
13276             -----------
13277 FeEcc3100Tuner::PowerUpInitParam()
13278 |-> ...
13279 |-> Set port sym rate
13280 |   |-> CalcBitRateFromSR()
13281 |-> Set port modulation
13282 |   |-> CalcBitRateFromSR()
13283 |-> Set port stream ID
13284 |   |-> CalcBitRateFromSR()
13285 |-> ...
13286 |-> Get dejitter revision (2nd byte)
13287 |-> if rev==0x03, set FeDVBS2FPGA03_DDS=1, otherwise FeDVBS2FPGA03_DDS=0
13289             --- RunTime
13290             -----------
13291 Optimize_lock()
13292 |-> Check ECC if locked.
13293 |-> from unlock to lock: Check MPEG packet type config
13294 |   |->
13295 |   |->
13296 |   |->
13297 |   |->
13298 |   |-> OPTLock_Delay = SKYPHY_ASIC_MONITOR_SML_PERIOD (20ms)
13299 |-> from lock to unlock:
13300 |   |-> ...
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()
13307     |_> ...
13310 get_ReceiverStatus()
13311 |-> ...
13312 |-> (8) if locked, update bit rate according to receiver params
13313 |   |-> CalcBitRateFromSignalStatus()
13315             --- Set parameters
13316             ------------------
13317 |-> Set param
13318 |-> RestartLockOptimize()
13319     \_> CalcBitRateFromSR() - calc bitrate from sym rate
13320         |-> see below
13322             --- Internals
13323             -------------
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
13346 Optimize_lock {{{
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()
13354 OPT_AlgoState
13355 OPT_AlgoRUN
13356 TunerFreq_SEARCH
13357 accurateOutputRate
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.
13369     If PL not synced 
13370         If OPT_AlgoState==0 || Acquisition_mode==0
13371             pl_unsync_process() - ?
13372         set OPTLock_Delay = SKYPHY_ASIC_MONITOR_BIG_PERIOD
13373         inc OPT_AlgoState
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
13384         If ISSY,
13385             Read BB_HDR_STAT1
13386             ...
13387             update mpeg_type_config with ISSY_SHORT or ISSY_LONG
13388         Config MPEG packet type (write to MPEG_TYPE_CONFIG)
13389         Set ISI
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
13399     If stay in Lock
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
13403     If Unlock
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 {{{
13416     09mar2009
13417 --- Common
13418 port                - port nbr
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
13424 Pilots              - on/off
13425 RollOff             - 20%, 25%, 35%, auto
13426 --- LNB
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
13433 --- DVBS2 only
13434 mode            - 
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 
13441 compilation path).
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
13462    or gxk@softier.com
13463 }}}2
13464 --- II --- Windows machine {{{2
13466 1. Hardware
13467    a. Hardware to collect
13468       DM642 card, 
13469       Power supply for DM642, 
13470       Emulator, 
13471       JTAG cable,
13472       Serial cable
13473       PCI Bridge card
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
13477       port on DM642
13478    e. Connect power supply to DM642
13479    
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
13505    a. Run CCS2
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
13509       Linux machine.
13510    d. Install and start TerraTerm application
13511    e. Config it by choosing Setup>Serial port and setup options:
13512       baud rate = 19200
13513       data = 8 bit
13514       parity = none
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.
13518 }}}2
13519 --- III --- Linux machine {{{2
13521 1. Users to create
13522    a. create user in linux-s machine
13524 2. Get tools
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
13528           <user>@<ip>:<path>
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'
13537 3. Create Image 
13538    a. add to .tcshrc or .bashrc at home dir
13539       setenv CVSROOT :pserver:<user>@linux-s:/cvs
13540       or
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'
13560    i. Call 'make dep'
13561    j. Call 'make'
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
13564       machine.
13565 }}}2
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
13582 edit Makefile
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 \
13593 -nostdinc \
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
13600 }}}2
13602 sigpending {{{2
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
13621 }}}2
13624 Changes in uclinux/linux-2.4.x/include/linux/stddef.h {{{
13626 malloc.h
13628 !!!THOSE CHANGES error uclinux compilation!!!
13631 #ifndef _SIZE_T
13632 #define _SIZE_T          
13633 typedef unsigned long size_t;
13634 #endif
13636 explanation:
13637 Compiler ti search size_t in uclinux/lib/libc/include/stddef.h
13640 # undef  ptrdiff_t
13641 # define ptrdiff_t       int
13643 explanation:
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
13650 are equals.
13655 004 - LTP project {{{1
13657 A - need changes for porting
13658 B - compilation problem/not implemented yet
13659 C - compiled
13660 D - C, but failed
13661 E - C + success
13662 F - D + evaluated
13663 G - E + integrated in test framework
13665 installation {{{2
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.
13672 Makefile
13674 |->testcases install {{{3
13675 |   |
13676 |   |->create 'bin' dir for further links
13677 |   |
13678 |   |->command install    
13679 |   |                     
13680 |   |->kernel install     
13681 |   |   |
13682 |   |   |->fs install
13683 |   |   |
13684 |   |   |->io install
13685 |   |   |
13686 |   |   |->ipc install
13687 |   |   |
13688 |   |   |->mem install
13689 |   |   |   |
13690 |   |   |   |->mem
13691 |   |   |   |   |
13692 |   |   |   |   |_>create links from local binaries to ../../../bin/
13693 |   |   |   |
13694 |   |   |   |->mmapstress
13695 |   |   |   |
13696 |   |   |   |->mtest01
13697 |   |   |   |
13698 |   |   |   |->mtest05
13699 |   |   |   |
13700 |   |   |   |->mtest06
13701 |   |   |   |
13702 |   |   |   |->mtest07
13703 |   |   |   |
13704 |   |   |   |->page
13705 |   |   |   |
13706 |   |   |   |->shmt
13707 |   |   |   |
13708 |   |   |   |_>vmtests
13709 |   |   |
13710 |   |   |->pty install
13711 |   |   |
13712 |   |   |->sched install
13713 |   |   |
13714 |   |   |_>syscalls install
13715 |   |                     
13716 |   |->misc install       
13717 |   |                     
13718 |   |_>network install
13719 |}}}3
13720 |->tools install {{{3
13721 |   |
13722 |   |->apicmds install
13723 |   |   |
13724 |   |   |_>create links in ../testcases/bin/ for follows binaries
13725 |   |      tst_brk tst_brkm tst_res tst_resm tst_exit tst_flush tst_brkloop
13726 |   |      tst_brkloopm
13727 |   |
13728 |   |->genload install
13729 |   |   |
13730 |   |   |_>create link for 'stress' like ../testcases/bin/genload
13731 |   |
13732 |   |->netpipe-2.4 install
13733 |   |
13734 |   |->netpipe-2.4-ipv6 install
13735 |   |
13736 |   |_>create link for 'gethost' in ../testcases/bin/
13737 |}}}3
13738 |_> run IDcheck.sh {{{3
13739     |
13740     |-> creates if needed users: nobody, bin, daemon and groups: nobody, bin,
13741         deamon, users, sys
13742     |_> checks if executed by root
13744  }}}3
13746 }}}2
13748 Running {{{2
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'
13757 networktests.sh
13758 diskio.sh
13760 }}}2
13762 sbrk,brk {{{2
13764  |->get_high_address() from ./lib/get_high_address.c {{{3
13765  |  |
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 
13797  |  }}}3
13798  |->usc_global_setup_hook() from lib/parse_opts.c, which is {{{3
13799  |  macro TEST_PAUSE from include/usctest.h
13800  |  |
13801  |  |->get STD_start_break original sbreak size
13802  |  |  if exist env vars USC_TP_SBRK and USC_LP_SBRK
13803  |  |
13804  |  |_>call 'sbrk(STD_TP_sbrk)' if exists env var USC_TP_SBRK
13805  |  }}}3
13806  |->usc_test_looping() from lib/parse_opts.c, which is {{{3
13807  |  macro TEST_LOOPING from include/usctest.h
13808  |  |
13809  |  |_>if STD_LP_sbrk and Debug, so call 'sbrk(STD_LP_sbrk)'
13810  |     Debug set if env var USC_DEBUG or USC_VERBOSE
13811  |  }}}3
13812  |->
13814 Conclusion:
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()
13822 }}}2
13824 fork problem
13825 540 files, 422 in syscalls
13827 Testcases {{{2
13829 FS - {{{3
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.
13841                 }}}3
13842 MM - {{{3
13844 In libmm/mm_core_apis.c mm_core_test02() use fork() ???
13846 mem mmapstress mtest01 mtest05 mtest06 mtest07 page shmt vmtests
13848 mem +
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
13855 mmapstress +
13856 |->mmapstress01 - (fork) stresses mmaps; forks number of children, all of whom
13857 |  mmap the
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.
13865 mtest01 +
13866 |_>mtest01 - (fork) mallocs memory <chunksize> at a time until malloc fails.
13868 mtest05 +
13869 |_>mmstress - (brk,fork,thread) Performs General Stress with Race conditions
13871 mtest06 +
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).
13881 mtest07 +
13882 |->mallocstress - (thread) Stresses the VMM and C library by spawning N threads
13883 |                 which malloc blocks of increasing size until malloc returns
13884 |                 NULL.
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.
13890 page +
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.
13895 |_>page02 - (fork)
13897 shmt +
13898 |->shmt02
13899 |->shmt03
13900 |->shmt04 - (fork)
13901 |->shmt05
13902 |->shmt06 - (fork)
13903 |->shmt07 - (fork)
13904 |->shmt08
13905 |->shmt09 - (brk for FAIL)
13906 |_>shmt10 - (fork)
13908 vmtests +
13909 |->data_space - (fork)
13911 |_>stack_space - (fork)
13913 }}}3
13914 SCH - {{{3
13916 clisrv - Read contents of data file. Write each line to socket, then read
13917                  line back from socket and write to standard output.
13918 hyperthreading
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.
13924         ht_interrupt
13925 process_stress - Stresses the process management kernel code.
13926         fork???
13927 pthreads
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
13931                 to parent.
13932 sched_stress -
13933         sched_tc0
13934         sched_tc1
13935         sched_tc2
13936         sched_tc3
13937 tool
13939 }}}3
13941 }}}2
13943 }}}1
13944 005 - System calls tests {{{1
13945 Porting LTP kernel system calls 669 tests.
13946   A {{{2
13947 a abort01 - fork
13948 e accept01
13949 e access01
13950 d access02
13951 d access03
13952 d access04
13953 d access05
13954 e acct01
13955 e acct02
13956 b adjtimex01 - #9
13957 b adjtimex02 - #9
13958 c alarm01
13959 c alarm02
13960 c alarm03 - fork
13961 c alarm04
13962 c alarm05
13963 e alarm06
13964 c alarm07 - fork }}}2
13965   B {{{2
13966 d bind01 - 
13967 d brk01 - }}}2
13968   C {{{2
13969 b capget01 - #7
13970 b capget02 - #7
13971 b capset01 - #7
13972 b capset02 - #7
13973 e chdir01
13974 e chdir02
13975 a chdir03 - fork
13976 d chdir04
13977 b chmod01 - #10
13978 b chmod02 - #10
13979 b chmod03 - #10
13980 b chmod04 - #10
13981 b chmod05 - #10
13982 b chmod06 - #10
13983 b chmod07 - #10
13984 e chown01
13985 e chown02
13986 d chown03
13987 d chown04
13988 e chown05
13989 d chroot01
13990 a chroot02 - fork
13991 d chroot03
13992 e chroot04
13993 d clone01
13994 d clone02
13995 e clone03
13996 d clone04
13997 e clone05
13998 d clone06
13999 e close01
14000 e close02
14001 e close08
14002 b confstr01 - #10
14003 a connect01 - fork
14004 d creat01
14005 e creat03
14006 a creat04 - fork
14007 d creat05
14008 d creat06
14009 a creat07 - fork
14010 d creat08
14011 e creat09 }}}2
14012   D {{{2
14013 e dup01
14014 e dup02
14015 e dup03
14016 e dup04
14017 e dup05
14018 e dup06
14019 e dup07
14020 e dup201
14021 e dup202
14022 e dup203
14023 e dup204
14024 e dup205 }}}2
14025   E {{{2
14026 a execl01 - fork
14027 a execle01 - fork
14028 a execlp01 - fork
14029 a execv01 - fork
14030 a execve01 - fork
14031 a execve02 - fork
14032 d execve03
14033 d execve04
14034 a execve05 - fork
14035 a execve06 - fork
14036 a execvp01 - fork
14037 a exit01 - fork
14038 a exit02 - fork }}}2
14039   F {{{2
14040 e fchdir01
14041 e fchdir02
14042 a fchdir03 - fork
14043 b fchmod01 - #10
14044 b fchmod02 - #10
14045 b fchmod03 - #10
14046 b fchmod04 - #10
14047 b fchmod05 - #10
14048 b fchmod06 - #10
14049 b fchmod07 - #10
14050 e fchown01
14051 e fchown02
14052 d fchown03
14053 d fchown04
14054 e fchown05
14055 a fcntl01 - fork
14056 a fcntl02 - fork
14057 a fcntl03 - fork
14058 a fcntl04 - fork
14059 a fcntl05 - fork
14060 a fcntl06 - fork
14061 a fcntl07 - fork
14062 a fcntl07 - fork
14063 a fcntl08 - fork
14064 a fcntl09 - fork
14065 a fcntl10 - fork
14066 a fcntl11 - fork
14067 a fcntl12 - fork
14068 a fcntl13 - fork
14069 a fcntl14 - fork
14070 a fcntl15 - fork
14071 a fcntl16 - fork
14072 a fcntl17 - fork
14073 a fcntl18 - fork
14074 a fcntl19 - fork
14075 a fcntl20 - fork
14076 a fcntl21 - fork
14077 a fcntl22 - fork
14078 a fdatasync01 - fork
14079 a fdatasync02 - fork
14080 a flock01 - fork
14081 a flock02 - fork
14082 a flock03 - fork
14083 a flock04 - fork
14084 a flock05 - fork
14085 a flock06 - fork
14086 b fmtmsg01 - #12
14087 a fork01 - fork
14088 a fork02 - fork
14089 a fork03 - fork
14090 a fork04 - fork
14091 a fork05 - fork
14092 a fork06 - fork
14093 a fork07 - fork
14094 a fork08 - fork
14095 a fork09 - fork
14096 a fork10 - fork
14097 a fork11 - fork
14098 a fork12 - fork
14099 e fpathconf01
14100 e fstat01
14101 d fstat02
14102 e fstat03
14103 d fstat04
14104 a fstat05 - fork
14105 e fstatfs01
14106 d fstatfs02
14107 e fsync01
14108 e fsync02
14109 e fsync03
14110 e ftruncate01
14111 e ftruncate02
14112 e ftruncate03
14113 a ftruncate04 - fork
14114   }}}2
14115   G {{{2
14116 d getcwd01
14117 d getcwd02
14118 a getcwd03 - #10
14119 a getdents01 - x86
14120 a getdents02 - x86
14121 a getdents03 - x86
14122 a getdents04 - x86
14123 e getdomainname01
14124 e getegid01
14125 e geteuid01
14126 e getgid01
14127 d getgid02
14128 d getgid03
14129 d getgroups01
14130 e getgroups02
14131 d getgroups03
14132 e getgroups04
14133 d gethostid01
14134 e gethostname01
14135 e getitimer01
14136 d getitimer02
14137 e getitimer03
14138 d getpeername01
14139 a getpgid01 - fork
14140 a getpgid02 - #10
14141 e getpgrp01
14142 e getpid01
14143 a getpid02 - fork
14144 e getppid01
14145 a getppid02 - fork
14146 e getpriority01
14147 e getpriority02
14148 e getresgid01
14149 d getresgid02
14150 a getresgid03 - #10
14151 e getresuid01
14152 d getresuid02
14153 d getresuid03
14154 e getrlimit01
14155 d getrlimit02
14156 e getrusage01
14157 d getrusage02
14158 a getsid01 - fork
14159 a getsid02 - thread
14160 d getsockname01
14161 d getsockopt01
14162 d gettimeofday01
14163 d gettimeofday02
14164 e getuid01
14165 d getuid02
14166 d getuid03 }}}2
14167   I {{{2
14168 a ioctl01 - fork
14169 d ioctl02
14170 d ioperm01
14171 d ioperm02
14172 d iopl01
14173 d iopl02
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
14188   ipc/msgctl06 - ok
14189   ipc/msgctl07 - ok
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
14220   ipc/shmat01 - ok
14221   ipc/shmat02 - ok
14222   ipc/shmat03 - ok
14223   ipc/shmdt01 - link error
14224   ipc/shmdt02 - ok
14225   ipc/shmctl01 - link error
14226   ipc/shmctl02 - link error
14227   ipc/shmctl03 - link error
14228   ipc/shmctl04 - link error }}}2
14229   K {{{2
14230 a kill01 - fork
14231 a kill02 - fork
14232 a kill03 - fork
14233 a kill04 - fork
14234 a kill05 - fork
14235 a kill06 - fork
14236 a kill07 - fork
14237 a kill08 - fork
14238 a kill09 - fork
14239 a kill10 - fork
14240 a kill11 - fork
14241 a kill12 - fork }}}2
14242   L {{{2
14243 e lchown01
14244 d lchown02
14245 e link02
14246 e link03
14247 d link04
14248 e link05
14249 e link06
14250 e link07
14251 e listen01
14252 a llseek01 - #10
14253 a llseek02 - #10
14254 e lseek01
14255 e lseek02
14256 e lseek03
14257 e lseek04
14258 e lseek05
14259 e lseek06
14260 e lseek07
14261 e lseek08
14262 e lseek09
14263 e lseek10
14264 e lstat01
14265 d lstat02
14266 d lstat03 }}}2
14267   M {{{2
14268   mallopt
14269 b memcmp01 - #17
14270 b memcpy01 - #17
14271 b memset01 - #17
14272   mkdir01
14273 b mkdir02 - fork
14274   mkdir03
14275 b mkdir04 - fork
14276   mkdir05
14277   mkdir08
14278 b mkdir09 - fork
14279   mknod01
14280   mknod02
14281   mknod03
14282   mknod04
14283   mknod05
14284   mknod06
14285   mknod07
14286   mknod08
14287   mknod09
14288 b mlock01 - #18
14289 b mlock02 - #18
14290 b mlockall01 - #19
14291 b mlockall02 - #19
14292   mmap001
14293   mmap01
14294   mmap02
14295 b mmap03 - #21
14296   mmap04
14297 b mmap05 - #21
14298   mmap06
14299   mmap07
14300   mmap08
14301   mmap09
14302   modify_ldt01
14303 a modify_ldt02 - fork
14304 b mount01 - #10
14305 b mount02 - #10, fork
14306 b mount03 - #10
14307 b mount04 - #10
14308   mprotect01
14309   mprotect02 - fork
14310   mprotect03 - fork
14311   mremap01
14312   mremap02
14313   mremap03
14314 b mremap04 - #22
14315   msync01
14316   msync02
14317   msync03
14318   msync04
14319   msync05
14320 b munlock01 - #18
14321 b munlock02 - #18
14322 b munlockall01 - #19
14323 b munlockall02 - #19
14324   munmap01
14325   munmap02
14326   munmap03 }}}2
14327   N {{{2
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
14332 b nftw01 - #20
14333   nice01
14334   nice02
14335   nice03
14336   nice04
14337   nice05 }}}2
14338   O {{{2
14339   open01
14340   open02
14341   open03
14342   open04
14343 a open05 - fork
14344   open06
14345   open07
14346   open08
14347   open09
14348   open10 }}}2
14349   P {{{2
14350   pathconf01
14351   pause02
14352   pause03
14353 b personality01 - #24
14354 b personality02 - #24
14355 e pipe01
14356 a pipe02 - fork
14357 e pipe03
14358 a pipe04 - fork
14359 d pipe05
14360 e pipe06
14361 e pipe07
14362 d pipe08
14363 a pipe09 - fork
14364 a pipe10 - fork
14365 a pipe11 - fork
14366   poll01
14367 b prctl01 - #25
14368 b prctl02 - #25
14369   pread01
14370   pread02
14371   pread03
14372 b profil01 - #10
14373   ptrace01
14374   ptrace02
14375   ptrace03
14376   pwrite01
14377   pwrite02 - #26
14378   pwrite03
14379   pwrite04  }}}2
14380   R {{{2
14381 a readdir01 - fork
14382   readdir02
14383   readlink01
14384   readlink02
14385   readlink03
14386   readlink04
14387 b read01 - comp err
14388   read02
14389   read03
14390   read04
14391   readv01
14392   readv02
14393   readv03
14394   reboot01
14395   reboot02
14396 a recv01 - fork
14397 a recvfrom01 - fork
14398 a recvmsg01 - fork
14399   rename01
14400   rename02
14401   rename03
14402   rename04
14403   rename05
14404   rename06
14405   rename07
14406   rename08
14407 a rename09 - fork
14408   rename10
14409 a rename12 - fork
14410 a rename14 - fork
14411   rename13
14412   rmdir01
14413   rmdir02
14414 a rmdir03 - fork
14415   rmdir04
14416   rmdir05  }}}2
14417   S {{{2
14418   sbrk01 - sbrk
14419   sched_getparam01
14420   sched_getparam02
14421   sched_getparam03
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
14431   sched_setparam01
14432   sched_setparam02
14433   sched_setparam04
14434 a sched_setparam03 - fork
14435 a sched_setparam05 - fork
14436   sched_setscheduler01
14437 a sched_setscheduler02 - fork
14438   sched_yield01
14439   select01
14440   select02
14441   select03
14442 a sendfile02 - fork
14443   sendfile03
14444 a send01 - fork
14445 a sendmsg01 - fork
14446 a sendto01 - fork
14447   setdomainname01
14448   setdomainname02
14449   setdomainname03
14450   setegid01
14451   setfsgid01
14452   setfsuid01
14453   setgid01
14454   setgid02
14455   setgid03
14456   setgroups01
14457   setgroups02
14458   setgroups03
14459 a setgroups04 - sbrk
14460   sethostname01
14461   sethostname02
14462   sethostname03
14463   setitimer01
14464   setitimer02
14465   setitimer03
14466 a setpgid01 - fork
14467   setpgid02
14468 a setpgid03 - fork
14469 a setpgrp01 - fork
14470 a setpgrp02 - fork
14471   setpriority01
14472   setpriority02
14473   setpriority03
14474 a setpriority04 - thread
14475   setpriority05
14476   setregid01
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
14486   setreuid01
14487 a setreuid02 - fork
14488 a setreuid03 - fork
14489 a setreuid04 - fork
14490 a setreuid05 - fork
14491   setreuid06
14492   setrlimit01 - fork, comp err
14493   setrlimit02 - #27
14494   setrlimit03 - #27
14495 a setsid01 - fork
14496   setsockopt01
14497 a settimeofday01 - fork
14498 a settimeofday02 - fork
14499   setuid01
14500   setuid02
14501   setuid03
14502 a sigaction01 - thread
14503   sigaction02
14504   sigaltstack01
14505 a sighold02 - fork
14506 a signal01 - fork
14507   signal02
14508   signal03
14509   signal04
14510   signal05
14511   sigpending02
14512   sigprocmask01
14513 a sigrelse01 - fork
14514   sigsuspend01
14515   socketcall01 - compilation error
14516   socketcall02 - compilation error                
14517   socketcall03 - compilation error               
14518   socketcall04 - compilation error              
14519   socket01
14520   socketpair01
14521   sockioctl01   
14522 e statfs01
14523 d statfs02
14524 e statfs03
14525   stat01
14526   stat02
14527   stat03
14528   stat05
14529   stat06
14530   stime01
14531   stime02
14532 b string01 - #17
14533   swapoff01
14534   swapoff02
14535   swapon01
14536   swapon02 - fork
14537   symlink02 - link err
14538   symlink03 - fork
14539   symlink04 - fork
14540   symlink05 - fork
14541   sync01
14542 b syscall01 - #17
14543   sysconf01
14544   sysctl01 - compilation error
14545   sysctl03 - fork, compilation error
14546   sysctl04 - compilation error
14547   sysctl05 - compilation error
14548   sysfs01
14549   sysfs02
14550   sysfs03
14551   sysfs04
14552   sysfs05
14553   sysfs06
14554   sysinfo01
14555   sysinfo02
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
14566   syslog11 - fork
14567   syslog12 - fork
14568   syslogtst }}}2
14569   T {{{2
14570   time01
14571   time02
14572   times01
14573   times02 - fork
14574   times03 - fork
14575   truncate01 - fork
14576   truncate02 - fork
14577   truncate03 - fork
14578   truncate04 - fork }}}2
14579   U {{{2
14580   ulimit01 - #28
14581   umask01
14582   umask02 - fork
14583   umask03 - fork
14584   umount01
14585   umount02
14586   umount03 - fork
14587   umount04 - fork
14588   uname01
14589   uname02
14590   uname03
14591   unlink05
14592   unlink06
14593   unlink07
14594   unlink08
14595   ustat01 - #30
14596   ustat02 - #30
14597   utime01
14598   utime04
14599   utime05
14600   utime02
14601   utime03
14602   utime06 }}}2
14603  V {{{2
14604   vfork01
14605   vfork02
14606   vhangup01 - fork
14607   vhangup02 - fork }}}2
14608   W {{{2
14609   wait401 - fork
14610   wait402 - fork
14611   wait02 - fork
14612   waitpid01 - fork
14613   waitpid02 - fork
14614   waitpid03 - fork
14615   waitpid04 - fork
14616   waitpid05 - fork
14617   waitpid06 - fork
14618   waitpid07 - fork
14619   waitpid08 - fork
14620   waitpid09 - fork
14621   waitpid10 - fork
14622   waitpid11 - fork
14623   waitpid12 - fork
14624   waitpid13 - fork
14625   write01
14626   write02 - fork
14627   write03 - fork
14628   write04 - fork
14629   write05 - fork
14630   writev01 - fork
14631   writev02 - fork
14632   writev03 - fork
14633   wirtev04
14634   writev05 - fork }}}2
14636 Common {{{2
14637   abort
14638   acct
14639   capget
14640   capset
14641   confstr
14642   fmtmsg
14643   gethostid
14644   gethostname
14645   getrlimit
14646   getrusage
14647   ioctl
14648   profil
14649   ptrace
14650   reboot
14651   sethostname
14652   setrlimit
14653   swapoff
14654   swapon
14655   syscall
14656   sysctl
14657   sysinfo
14658   syslog
14659   ulimit
14660   uname
14661   vhangup
14662 }}}2
14664 FileSystem {{{2
14665   access
14666   asyncio
14667   chdir
14668   chmod
14669   chown
14670   chroot
14671   close
14672   creat
14673   dup
14674   dup2
14675   fchdir
14676   fchmod
14677   fchown
14678   fcntl
14679   fdatasync
14680   flock
14681   fpathconf
14682   fstat
14683   fstatfs
14684   fsync
14685   ftruncate
14686   getcwd
14687   getdents
14688   lchown
14689   link
14690   llseek
14691   lseek
14692   lstat
14693   mkdir
14694   mknod
14695   mount
14696   nftw
14697   open
14698   pathconf
14699   pipe
14700   pread
14701   pwrite
14702   readdir
14703   readlink
14704   read
14705   readv
14706   rename
14707   rmdir
14708   sendfile
14709   statfs
14710   stat
14711   symlink
14712   sync
14713   sysfs
14714   truncate
14715   umount
14716   unlink
14717   ustat
14718   utime
14719   write
14720   writev
14721 }}}2
14723 Timing {{{2
14724   adjtimex
14725   alarm - compiled
14726   getitimer - compiled
14727   gettimeofday - compiled
14728   nanosleep - compiled
14729   setitimer - compiled
14730   settimeofday - compiled
14731   stime - compiled
14732   tim - compiled
14733   times
14734   
14735 }}}2
14737 InterprocesCommunication {{{2
14738   shmget
14739   msgget
14740   msgctl
14741   msgrcv
14742   msgsnd
14743   semget
14744   semctl
14745   semop
14746   shmat
14747   shmdt
14748   shmctl
14749 }}}2
14751 Memory {{{2
14752   brk
14753   memcpy
14754   memset
14755   mlock
14756   mlockall
14757   mmap
14758   modify_ldt
14759   mprotect
14760   mremap
14761   msync
14762   munlock
14763   munlockall
14764   munmap
14765   recv
14766   recvfrom
14767   sbrk
14768 }}}2
14770 Network {{{2
14771   accept
14772   bind
14773   connect
14774   getpeername
14775   getsockname
14776   getsockopt
14777   listen
14778   select
14779   send
14780   sendmsg
14781   sendto
14782   setsockopt
14783   socketcall
14784   socket
14785   socketpair
14786   sockioctl
14787 }}}2
14789 Process {{{2
14790   clone
14791   execl
14792   execle
14793   execlp
14794   execv
14795   execve
14796   exit
14797   fork
14798   getegid
14799   geteuid
14800   getgid
14801   getgroups
14802   getpgid
14803   getpgrp
14804   getpid
14805   getppid
14806   getresgid
14807   getresid
14808   getsid
14809   getuid
14810   ioperm
14811   iopl
14812   nice
14813   personality
14814   prctl
14815   setegid
14816   setfsgid
14817   setgid
14818   setgroups
14819   setpgid
14820   setpgrp
14821   setregid
14822   setresgid
14823   setresuid
14824   setreuid
14825   setsid
14826   setuid
14827   vfork
14828   wait4
14829   wait
14830   waitpid
14831 }}}2
14833 Sched {{{2
14834   getpriority
14835   sched_getparam
14836   sched_get_priority_max
14837   sched_get_priority_min
14838   sched_getscheduler
14839   sched_rr_get_interval
14840   sched_setparam
14841   sched_setscheduler
14842   sched_yield
14843   setpriority
14844 }}}2
14846 Signals {{{2
14847   kill
14848   pause
14849   sigaction
14850   sigaltstack
14851   sighold
14852   signal
14853   sigpending
14854   sigprocmask
14855   sigrelse
14856   sigsuspend
14858 }}}2
14860 Fork problem {{{2
14861 abort/abort01.c                         common
14862 creat/creat07.c                         fs
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
14874 fcntl/fcntl07.c                         fs
14875 fcntl/fcntl07B.c                        fs
14876 fcntl/fcntl11.c                         fs
14877 fcntl/fcntl12.c                         fs
14878 fcntl/fcntl18.c                         fs
14879 fcntl/fcntl19.c                         fs
14880 fcntl/fcntl20.c                         fs
14881 fcntl/fcntl21.c                         fs
14882 fcntl/fcntl22.c                         fs
14883 flock/flock03.c                         fs
14884 flock/flock04.c                         fs
14885 flock/flock05.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
14908 open/open05.c                           fs
14909 pause/pause02.c                         signal
14910 pause/pause03.c                         signal
14911 pipe/pipe02.c                           fs
14912 pipe/pipe09.c                           fs
14913 pipe/pipe04.c                           fs
14914 pipe/pipe10.c                           fs
14915 poll/poll01.c                           net
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
14921 }}}2
14922 }}}1
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
14927 data bits
14928 parity (odd,even,none)
14929 stop bit
14931 crtsdts - hardware flow control
14932 ixon - software flow control
14934 }}}1
14935 007 - BusyBox project {{{1
14937 current version 0.60.4
14939 Supported applets:
14941 basename        x
14942 cat                     x
14943 chmod           cp
14944 cmp                     x
14945 cp                      x
14946 cut                     x
14947 date
14948 dd                      x
14950 dirname         x
14951 dmesg
14953 echo            x
14955 expr
14956 find            x
14957 free
14958 getopt
14959 grep            x
14960 gzip/gunzip     x
14961 halt
14962 head            uuencode
14963 hostname
14964 ifconfig
14965 kill
14966 killall
14967 ls                      false,which
14968 mkdir           x
14969 more
14970 mount
14971 msh                     x
14972 mv                      x
14973 nslookup
14974 ping
14975 printf
14977 pwd                     x
14978 reboot
14979 reset
14980 rm                      x
14981 rmdir           x
14982 route
14983 sash
14984 sed                     x
14985 sleep
14986 sort
14987 sync
14988 tail
14989 tar                     x
14990 test            many tests
14991 touch           x
14992 umount
14993 uname
14994 uniq
14995 uptime
14997 watchdog
14998 wc                      x
14999 wget            x
15000 xargs
15001 zcat            bunzip2
15003 Taking testsuites from version 1.00-pre5
15005 }}}1
15006 008 - Scheduling tests {{{1
15008 Theory {{{2
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
15014 fairness - 
15015 goodness - 
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)
15028 }}}2
15030 Status {{{2
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
15039 4. ./use2 D N M
15042 }}}2
15043 }}}1
15044 009 - Breathru {{{1
15046 Definition:
15047 Functionality and POSIX tests for general_iso group
15049 Status:
15050 Till 22feb2004 get 2 deliveries.
15053 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
15061 6. 
15063 22feb2004
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.
15072 }}}1
15073 010 - Tools {{{1
15075 CVS: there are 3 modules: gcc-3_2-gcc2c gcc2c-wrapper gcc2c_scripts
15077 Main flow:
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.
15086 1. Wrapper {{{2
15088 build {{{3
15089 run 'gcc2c_scripts/make-wrapper.sh'
15090 changed follows:
15091         gcc2c_scripts/make-wrapper.sh
15092         gcc2c-wrapper/gcc2c-compiler-wrapper.cpp (only warnings):
15093 }}}3
15094 code {{{3
15096 env vars:
15098 GCC2C_
15099         WRAPPER_TEMPDIR
15100         LOGFILE
15101         NO_CONVERTER_INVOCATION
15102         ABORT_EXIT
15103         PASSTHRU_GCC_OPTIMIZE_OPTIONS_TO_CONVERTER
15104         WRAPPER_SAVETEMPS
15106 GCC2C_CONVERTER_
15107         ROOT
15108         OPTIONS
15110 Second stage:
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
15124 Algo
15126 Exit w/ error if
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
15137 }}}3
15139 }}}2
15140 2. Converter {{{2
15142 gcc2c_scripts/build-gcc2c.sh (changed)
15143         GCC2C_SOURCE_HOME
15144         GCC2C_GCC_VANILLA_LOCATION
15145         GCC2C_PREFIX
15146         |_>build-gcc2c-command.sh
15147                 |-> configure
15148                 |-> make
15149                 |_> make install
15150 }}}2
15151 3. Run testsuite {{{2
15152 For gcc:
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:
15163 cd ~/gcc2c-build
15166 4. Prepare tools release {{{2
15167 gcc2c_scripts/make-gcc2c-release.sh
15168 }}}2
15170 }}}1
15171 011 - Sankhya {{{1
15173 cd ~/prjs/stam
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
15188 }}}1
15189 012 - Burning {{{1
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,
15194 ut_minizip.exe
15195         Also put in the same dir: linux.out and romfs.img
15196         Run gzip_linux.bat
15197         Configure program_flash.cfg The example follows:
15198         "
15199         rootdir = C:\burnlinux\evm642_v104\
15200         BOOTLOADER = boot_evm642_loadlinux.bin
15201         FPGA = osd_fpga_rev4.bin
15202         LINUX = linux.out.gz
15203         ROMFS = romfs.img
15204         "
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.
15208 }}}2
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.
15217 }}}2
15219 }}}1
15220 013 - USB tests {{{1
15221         28jun2004.
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
15228 active usb hub.
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.
15240 * Plugging test.
15241 Plugg in. Make atomic test. Unplugg.
15243 * Survival test.
15244 Make sure device recognized by system.
15245 Mount device.
15246 Make read and write test. Unplugg device in the middle of read/write.
15247 Plugg in device.
15248 Umount device.
15250 * Survival movie test.
15251 Same as survival test just run movie instead of `read/write test'.
15253 * Atomic test.
15254 Make sure device recognized by system.
15255 Mount device.
15256 Make read and write test.
15257 Unmount device.
15259 * Movie test.
15260 Same as atomic, but instead of `read and write' test, just run player to
15261 see movie on display.
15263 }}}1
15264 014 - Microwindows {{{1
15265         30jun2004
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
15275         06feb2005
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'
15280 - fix -
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
15286 - fix -
15287 problem: change install dir
15288 solution: in file Makefile.rules
15289 }}}2
15290 How to build for MediaLinux {{{2
15291 Basic `Y' configuration:
15292 THREADSAFE
15293 MICROWIN
15294 NANOX
15295 MICROWINDEMO
15296 NANOXDEMO
15297 NANOWM
15298 HAVE_FILEIO
15299 HAVE_BMP_SUPPORT
15300 HAVE_FNT_SUPPORT
15301 ERASEMOVE
15302 UPDATEREGIONS
15303 FRAMEBUFFER
15304 NOMOUSE
15305 LIRCKBD
15307 export GCC2C_NO_CONVERTER_INVOCATION=1
15308 make all
15310 final changes:
15311 Arch.rules
15312 include/mwtypes.h
15313 include/nano-X.h
15314 nanox/nxtransform.c
15315 nanox/Makefile
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 
15328 demos/Makefile
15329 demos/nanox/launcher.c
15330 linux/fb.h
15332 status: 15feb2005
15333 deleted demos: nbreak vnc
15335 run problem with:
15336 nxeyes,tux
15338 drivers/scr_fb.c line 307
15339         the munmap() problem. currently commented.
15341 }}}2
15343 }}}1
15344 015 - Replace linux funcs by TI {{{1
15346 Given list of 208 funcs from TI's lib rts6400.lib which gives good performance
15347 for video.
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
15353  abs.obj                libc
15354  absd.obj               liblddk
15355  absf.obj               liblddk
15356  acos.obj               libm
15357  acosf.obj              libm    
15358  acosh.obj              libm    
15359  acoshf.obj             libm    
15360  acot.obj               libm
15361  acot2.obj              libm    
15362  acot2f.obj             libm    
15363  acotf.obj              libm    
15364  acoth.obj              libm    
15365  acothf.obj             libm    
15366  addd.obj               liblddk
15367  addf.obj               liblddk
15368  array.obj              ?       
15369  asin.obj               libm
15370  asinf.obj              libm    
15371  asinh.obj              libm    
15372  asinhf.obj             libm    
15373  atan.obj               libm
15374  atan2.obj              libm    
15375  atan2f.obj             libm    
15376  atanf.obj              libm    
15377  atanh.obj              libm    
15378  atanhf.obj             libm    
15379  atof.obj               libc
15380  atoi.obj               libc
15381  atol.obj               libc
15382  bsearch.obj            libc
15383  ceil.obj               libm
15384  ceilf.obj              libm    
15385  clearerr.obj           libc    canceled, due to usage of FILE
15386  cmpd.obj               liblddk
15387  cmpf.obj               liblddk
15388  cos.obj                libm
15389  cosf.obj               libm
15390  cosh.obj               libm
15391  coshf.obj              libm    
15392  cot.obj                libm
15393  cotf.obj               libm
15394  coth.obj               libm
15395  cothf.obj              libm    
15396  ctime_.obj             ? (ctime_r in libc)     canceled        
15397  ctype.obj              ?       
15398  cvtdf.obj              liblddk 
15399  cvtfd.obj              liblddk 
15400  defs.obj               ?
15401  del_af.obj                     liblddk 
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 
15407  div.obj                libc
15408  divd.obj               liblddk
15409  divf.obj               liblddk
15410  divi.obj               liblddk
15411  divu.obj               liblddk
15412  dtos.obj               ?
15413  ecvt.obj               ?
15414  exp.obj                libm
15415  exp10.obj              libm    
15416  exp10f.obj             libm    
15417  exp2.obj               libm
15418  exp2f.obj              libm    
15419  expf.obj               libm
15420  fabs.obj               libm
15421  fabsf.obj              libm    
15422  fcvt.obj               liblddk
15423  fixdb.obj              liblddk 
15424  fixdc.obj              liblddk 
15425  fixdi.obj              liblddk 
15426  fixdli.obj             liblddk 
15427  fixdsi.obj             liblddk 
15428  fixdu.obj              liblddk 
15429  fixdul.obj             liblddk 
15430  fixdus.obj             liblddk 
15431  fixfb.obj              liblddk 
15432  fixfc.obj              liblddk 
15433  fixfi.obj              liblddk
15434  fixfli.obj             liblddk
15435  fixfsi.obj             liblddk
15436  fixfu.obj              liblddk
15437  fixful.obj             liblddk
15438  fixfus.obj             liblddk
15439  floor.obj              libm
15440  floorf.obj             libm
15441  fltbd.obj              liblddk
15442  fltbf.obj              liblddk
15443  fltcd.obj              liblddk
15444  fltcf.obj              liblddk
15445  fltid.obj              liblddk
15446  fltif.obj              liblddk
15447  fltlid.obj             liblddk
15448  fltlif.obj             liblddk
15449  fltsid.obj             ?
15450  fltsif.obj             liblddk
15451  fltud.obj              liblddk
15452  fltuf.obj              liblddk
15453  fltuld.obj             liblddk
15454  fltulf.obj             liblddk
15455  fltusd.obj             liblddk
15456  fltusf.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
15463  gsmfuncs.obj           ?
15464  gsmvars.obj            ?
15465  imath40.obj            liblddk 
15466  isalnum.obj            libc    
15467  isalpha.obj            libc    
15468  isascii.obj            libc    
15469  iscntrl.obj            libc    
15470  isdigit.obj            libc    
15471  isgraph.obj            libc    
15472  islower.obj            libc    
15473  isprint.obj            libc    
15474  ispunct.obj            libc    
15475  isspace.obj            libc    
15476  isupper.obj            libc    
15477  isxdigit.obj           libc    
15478  ldexp.obj              libm    
15479  ldexpf.obj             libm    
15480  log.obj                libm
15481  log10.obj              libm    
15482  log10f.obj             libm    
15483  log2.obj               libm
15484  log2f.obj              libm    
15485  logf.obj               libm
15486  ltoa.obj               ?
15487  memccpy.obj    libc    
15488  memchr.obj             libc    
15489  memcmp.obj             libc    
15490  memcpy62.obj   ?       
15491  memcpy64.obj   libc (already)  
15492  memmov.obj             ? (memmove - libc)      
15493  memset.obj             libc
15494  mktime.obj             libc
15495  modf.obj               libm
15496  modff.obj              libm    
15497  mpyd.obj               liblddk
15498  mpyf.obj               liblddk
15499  negd.obj               liblddk
15500  negf.obj               liblddk
15501  new_af.obj             liblddk 
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 
15507  pow.obj                libm
15508  powf.obj               libm
15509  powi.obj               libm
15510  powif.obj              libm    
15511  qsort.obj              libc    
15512  remi.obj               liblddk
15513  remu.obj               liblddk
15514  renormd.obj    liblddk 
15515  renormf.obj    liblddk 
15516  round.obj              libm    
15517  roundf.obj             libm    
15518  rsqrt.obj              libm    
15519  rsqrtf.obj             libm    
15520  sin.obj                libm
15521  sinf.obj               libm
15522  sinh.obj               libm
15523  sinhf.obj              libm    
15524  sinit.obj              ?       
15525  sqrt.obj               libm
15526  sqrtf.obj              libm    
15527  strcat.obj             libc    
15528  strchr.obj             libc    
15529  strcmp.obj             libc
15530  strcoll.obj    ?
15531  strcpy.obj             libc
15532  strcspn.obj    libc
15533  strerror.obj   libc
15534  strlen.obj             libc
15535  strncat.obj    libc
15536  strncmp.obj    libc
15537  strncpy.obj    libc
15538  strpbrk.obj    libc
15539  strrchr.obj    libc
15540  strspn.obj             libc
15541  strstr.obj             libc
15542  strtod.obj             libc
15543  strtok.obj             libc
15544  strtol.obj             libc
15545  strtold.obj    libc    
15546  strtoul.obj    libc    
15547  strxfrm.obj    ?       
15548  subd.obj               liblddk
15549  subf.obj               liblddk
15550  tan.obj                libm
15551  tanf.obj               libm
15552  tanh.obj               libm
15553  tanhf.obj              libm    
15554  tmzone.obj             ?       
15555  toascii.obj    libc    
15556  tolower.obj    libc    
15557  toupper.obj    libc    
15558  trgmsg.obj             ?       
15559  trunc.obj              libm    
15560  truncf.obj             libm    
15561 }}}2
15563 The list of 15 new functions added to liblddk{{{2
15564  array.obj
15565  ctype.obj
15566  defs.obj
15567  dtos.obj
15568  ecvt.obj
15569  fltsid.obj
15570  gsmfuncs.obj
15571  gsmvars.obj
15572  ltoa.obj
15573  memcpy62.obj
15574  sinit.obj
15575  strcoll.obj
15576  strxfrm.obj
15577  tmzone.obj
15578  trgmsg.obj
15579 }}}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
15586  div.obj        libc    no      
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"
15602  memmov.obj     libc    no      
15603  memset.obj     libc    yes     
15604  mktime.obj     libc            
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      
15628 }}}2
15630 subset #1 {{{2
15631  memccpy.obj    libc    no      
15632  memchr.obj     libc    ?       "inline, so have to decide"
15633  memcmp.obj     libc    ?       "inline, so have to decide"
15634  memmov.obj     libc    no      
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"
15655 }}}2
15656 subset #2 {{{2
15657  memccpy.obj    libc    no      
15658  memchr.obj     libc    ?       "inline, so have to decide"
15659  memcmp.obj     libc    ?       "inline, so have to decide"
15660  memmov.obj     libc    no      
15661  memset.obj     libc    yes     
15662 }}}2
15664 Results:
15665 Replace memset() in libc
15666 Add 15 TI's functions to liblddk
15668 }}}1
15669 016 - ANT {{{1
15671 Ant build environment {{{2
15673 cd <ant-src>/builds/dm642-xgcui
15674 Makefile
15675 |--> ../.(layers,layers-target)./src/rules/build-auto.txt {{{3
15676 |    |- BUILD_OS
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
15682 |    |- BUILD_TARGET
15683 |    |_ BUILD_LTI                       }}}3
15685 |--> ../../src/rules/target-gcc.txt {{{3
15686 |    |- MY_OS
15687 |    |- CC, DEPEND_CC, MAKELIB, LINK, LINK_OUT
15688 |    |- LINK_FN
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
15700 |    |
15701 |    |- SPRITES, SWAPPED, RESOURCES, MESSAGES, FIX_RESOURCES, FIX_MESSAGES
15702 |    |- FIX_SPRITES RESOURCE_PATH
15703 |    |
15704 |    |- <rules>
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 '...'
15711 |    |
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
15722 |   
15723 |--> ../../src/browser/commonsrc/make.txt
15725 |--> ../../src/plugins/player/make.txt
15727 |- RESOURCE_MASTER
15728 |--> ../../src/fe_generic_glass/make.txt
15730 |- ALL_OBJECTS
15731 |--> ../../src/rules/post.txt
15732 |- MODULES, OBJECTS, LIB_NAMES, MY_LIBS
15733 |- <rules> $(BIN_DIR)/ssleay.$(LIB_EXT), $(BIN_DIR)/https.$(LIB_EXT)
15735 |_ <targets>
15736         $(RUN):     $(PREREQS) $(OBJECTS) $(MY_LIBS) $(DLLS)
15737                 $(CC) 
15738                 $(LINK)
15739 }}}2
15741 LTI layer {{{2
15743 driver.h from xwin
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>
15751 XtAppContext app
15753 driver.c from xwin
15755 main
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
15764 |-> XtSetArg()
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
15773 |   |-> XtDisplay()
15774 |   |-> DefaultVisualOfScreen()
15775 |   |-> XtScreen()                                                                      
15776 |   |-> ImageByteOrder()                                                        
15777 |   |-> init_8bpp()                                                                     driver.c
15778 |   |   |-> DefaultColormapOfScreen()
15779 |   |   |-> my_alloc_colour()                                           driver.c
15780 |   |   |   |-> XAllocColor()
15781 |   |   |   |-> ...
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()
15806     |-> XtAppPending()
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
15814 }}}2
15816 X functions from layers/xwin {{{2
15818 XAllocColor (Display, Colormap, XColor) 
15819 XQueryColor (Display, Colormap, XColor)
15820 DefaultColormapOfScreen (Screen)
15821 XtDisplay (Widget)
15822 DefaultVisualOfScreen (Screen)
15823 XtScreen (Widget)
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)
15830 XtWindow (Widget)
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)
15837 XtRemoveInput
15838 XtAppAddInput
15839 XCreatePixmap
15840 XCreatePixmapCursor
15841 XDefineCursor
15842 XtNoticeSignal
15843 XtAppPending
15844 XtAppProcessEvent
15845 XtSetArg
15846 XtAppInitialize
15847 XtCreateManagedWidget
15848 XtAddEventHandler
15849 XtRealizeWidget
15850 XtAppAddSignal
15851 XtAppAddTimeOut
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
15856 }}}2
15859 Change `Xlib' on `nx11' in `src/rules/target-gcc.txt'
15861 ANT size.
15862 Have 2 heap allocations, which allocated 6MB each, by default. Could be manage
15863 with `--heapsize 2m --flexsize 2m'
15865 `--url www.av.com'
15867 Make resources.
15868 cd <ant>/src
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
15875 Cmd options:
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
15882 CJK {{{2
15883 16dec2004 22may2005
15885 }}}2
15887 Plugins {{{2
15889 Enable plugins.
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()'
15897 Add plugin PL1.
15898 at fe_generic/frontend.c add inside of `FLAVOUR_PLUGINS':
15899 `#if PL1_PLUGIN
15900      pl1_plugin_register()
15901  #endif '
15903 Function to implement:
15904 play                    x
15905 stop                    x
15906 pause                   x
15907 exit|close              x
15908 move2back               x
15909 move2front              x
15910 fullscreen              x
15911 setwindow
15912 getState
15913 setframe                x
15914 playbyframe
15915 setsound
15916 txtctrl
15917 send dmx ioctl
15919 }}}2
15921 Fix refresh {{{2
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
15927 bmp.c
15928 mlx.c mlx.h
15929 driver.c
15931 }}}2
15933 ANT window resize {{{2
15934         18jan2005
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
15942 of full size.
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
15945 -------------
15946 main() (from src/layers/ml/driver.c)
15947 |->mlx_init_size() (from builds/ml/mlx/mlx.c)
15948 |  |->bmp_init()
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()
15955 |->mlx_init()
15956 |  |_>fb_init()
15957 |     |-> ...
15958 |     |->bmp_load_dummy() // open dmx region with H&W initialized in 
15959 |        // mlx_init_size()
15960 |     |_> ...
15962 |->call_bmp_disable()
15963 |->layers_recorder_init()
15964 |->...
15965 |->create_image() (from src/layers/ml/driver.c)
15966 |  |-> ...
15967 |  |-> // print "Opening screen..."
15968 |  |-> ...
15969 |  |_> ...
15971 |->...
15973 }}}3
15975 META tags side
15976 --------------
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
15988 -------------
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)
15995 |  |-> ...
15996 |  |->backend_check_meta()
15997 |  |-> ...
15998 |  |-> 
15999 |  |-> ...
16000 |  |_>
16002 |->...
16004 }}}3
16006 final changes: {{{3
16007 builds/ml/Makefile
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
16014 release notes:
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)
16020 }}}3
16021 }}}2
16023 Build on 2.6 {{{2
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
16033 status 10mar2005
16034 1. Unresolved symbols: pow,ceil,log,floor,fmod ( not exists in libm )
16035 2. Unresolved syms: __cinit, __pinit (crti.o)
16037 }}}2
16039 ANT font manager usage {{{2
16040 16mar2005
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
16051 webfont_select()
16052 webfont_discard()
16054 TODO:
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 ???)
16059 }}}2
16061 ARCHITECTURE {{{2
16062 ------------
16063 main() (from src/layers/ml/driver.c)
16064 |->mlx_init_size() (from builds/ml/mlx/mlx.c)
16065 |  |->bmp_init()
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)
16075 |     |->irw_init()
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)
16079 |     |
16080 |     |_>bmp_r_ptr()
16082 |->call_bmp_disable()
16083 |->layers_recorder_init()
16084 |->...
16085 |->create_image() (from src/layers/ml/driver.c)
16086 |  |-> ...
16087 |  |-> // print "Opening screen..."
16088 |  |-> ...
16089 |  |_> ...
16091 |->init_debug()
16092 |->useropts_memdump_disabled()
16093 |->layers_dbglist()
16094 |->dbg_indent()
16095 |->mlx_init_AddInput()
16096 |->do_initialise()
16097 |->layers_recorder_replaying()
16098 |->event_loop()
16099 | |->...
16100 | |->underlay_update()
16101 | |  |_>layers_win_update() (from src/layers/fb/thewimp.c)
16102 | |     |-?layers_recorder_event()
16103 | |     |->layers_win_validate_all()  30us
16104 | |     |  |->
16105 | |     |  |_>
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()
16120 | |
16121 | |->call_bmp_enable()
16122 | |_>...
16123 |_>mlx_term()
16124 }}}2
16126 }}}1
16127 017 - ZLIB {{{1
16128         31oct2004
16129 version 1.2.1
16130 own makefile. have to change UCLINUX_PATH.
16131 without converter.
16132 }}}1
16133 018 - PNG {{{
16134         19oct2004
16136 Using my makefiles.
16137 make clean all install
16140 019 - JPG {{{1
16141         19oct2004
16143         make clean all install
16144 }}}1
16145 020 - SDL {{{
16146         09aug2004 www.libsdl.org
16148 SDL configuration {{{2
16149 x86: {{{3
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
16151 make
16152 sudo make install
16154 cd SDL-1.2.7/test
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
16159 make
16160 }}}3
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*
16165 Changing configure
16166 Add target medialinux case
16167 Changing src/main/Makefile.in
16168 ARFLAGS=ur
16170 setenv CONFIG_SITE ~/prjs/SDL/mySDL/config.site
16171 (w/o sound)
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
16174 (w/ sound)
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
16177 BUILDING
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 }
16188 }}}3
16189 tms320c6 w/o conv {{{3
16190         setenv GCC2C_NO_CONVERTER_INVOCATION 1
16191 Change libtool.
16192         Add follows 
16193         # gxk 19aug2004 add GCC2C_NO_CONVERTER_INVOCATION=1
16194         new_command="GCC2C_NO_CONVERTER_INVOCATION=1 $command"
16195         in line 1090
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
16201 make
16202 pushd test && make clean all install-gxk && popd
16203 }}}3
16204 Tests {{{3
16205 cp Makefile & config.status  from linux-based SDL tests and change it.
16206 Create 23 tests. Status table:
16207                                                         02sep2004
16208                 checkkeys               -       
16209                 graywin                 -
16210                 testalpha               -+
16211                 testbitmap              -+
16212                 testcpuinfo             +
16213                 testerror               +
16214                 testgamma               -+
16215                 testhread               +
16216                 testkeys                -
16217                 testlock                +
16218                 testoverlay             +
16219                 testoverlay2    -+
16220                 testpalette             -+
16221                 testsem                 +
16222                 testsprite              -
16223                 testtimer               +
16224                 testtypes               +
16225                 testver                 +
16226                 testvidinfo             +
16227                 testwin                 -+
16228                 testwm                  -+
16229                 threadwin               -+
16230 }}}3
16231 }}}2
16233 SDL_image {{{2
16235 The configure way {{{3
16236 Adding follows in config.sub:
16237         evm642 | vm1 | vm2*)
16238                 basic_machine=tms320c6
16239                 os=-medialinux
16240                 ;;
16242         -medialinux*)
16243         os=-medialinux
16244         ;;
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 $@
16257 install-Programs:
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; \
16262       fi; \
16263     done
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.'
16271 AR="AR"
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
16277 }}}3
16279 gxk makefiles: make clean all install
16280 }}}2
16282 SDL_mixer {{{2
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
16292                 os=-medialinux
16293                 ;;
16295         -medialinux*)
16296         os=-medialinux
16297         ;;
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)
16308     @rm -f playwave
16309     $(LIBTOOL) --mode=link $(CCLD) $(LDFLAGS) $(playwave_LDFLAGS) $(playwave_OBJECTS) $(playwave_LDADD) $(LIBS) -o $@
16310 playmus: $(playmus_OBJECTS) $(playmus_DEPENDENCIES)
16311     @rm -f playmus
16312     $(LIBTOOL) --mode=link $(CCLD) $(LDFLAGS) $(playmus_LDFLAGS) $(playmus_OBJECTS) $(playmus_LDADD) $(LIBS) -o $@
16313 install-Programs:
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; \
16318       fi; \
16319     done
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
16333 w/o converter
16334 ????
16336 }}}3
16337 make clean
16338 make
16339 make install
16341 Linux x86
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
16344 }}}2
16346 SDL_net {{{2
16347 gxk makefiles: make conv=1 clean all install
16349 }}}2
16351 Games {{{2
16353 Marc send 7 games till 13sep2004:
16355 rtts - NO - C++
16356 pacwars2 - NO - C++
16357 maelstrom - NO - C++
16358 phobia - NO - 90MB
16359 kobodeluxe - YES
16360 xpired - non attractive
16362 net-bubble{{{3
16364 make clean net-bubble install
16366 main()
16367 |-> display_InitSDL()
16368 |-> network_Init()
16369 |-> utils_InitRandom()
16370 |-> chargement_LoadGameData()
16371 |-> Intro()
16372 |-> pix_InitAnimPix()
16374 |-> while(quit_game==0)
16375 |->  SDL_ShowCursor(1)
16376 |->  MainMenu()
16377 |        |-> switch(etat_menu)
16378 |        |       1 (main menu)
16379 |        |
16380 |        |
16381 |        |
16382 |        |
16383 |        |
16384 |        |
16385 |        |
16386 |        |
16387 |        |
16388 |->  SDL_ShowCursor(0)
16389 |->  if (quit_game!=1)
16390 |->    opponent_type = ...
16391 |->    PlayGame()
16393 |-> network_TcpClose()
16394 |-> chargement_UnLoadGameData()
16395 |-> network_Shutdown()
16396 |_> SDL_DestroyMutex()
16398 }}}3
16399 atakks{{{3
16400 make clean all install
16402 }}}3
16403 vectoroids {{{3
16404 The game defined to run is vectoroids needed also SDL_image library, which is
16405 separate project from SDL.
16407 w/o SOUND
16408 make clean DATA_PREFIX=../data/ nosound && make install
16409 w/ SOUND
16410 make clean && make DATA_PREFIX=../data/ all && make install
16412 }}}3
16413 MirrorMagic {{{3
16414 setenv GCC2C_NO_CONVERTER_INVOCATION 1
16415 setenv GCC2C_SECOND_STAGE_CCS_COMPILER_EXTRA_OPTIONS "-pds77 -pds238"
16416 make clean sdl install
16418 main
16419 |-> ...
16420 |-> OpenAll() (src/init.c)
16421         |-> InitProgramInfo()
16422         |-> InitPlayerInfo()
16423         |-> InitCounter()
16424         |-> InitSound()
16425         |-> InitRND(NEW_RANDOMIZE)
16426         |-> InitVideoDisplay()
16427         |-> InitVideoBuffer()
16428         |-> InitColor()
16429         |-> InitEventFilter(FilterMouseMotionEvents)
16430         |-> InitGfx()
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()
16445         |_> DrawMainMenu()
16447 }}}3
16448 abombniball {{{3
16449 cd <abombniball>/src
16450 make clean all install
16452 docs {{{4
16453 Abombniball - Version 0.2b (C) 2001
16455 Playing
16456 -------
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
16462 nasty things.
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.
16467   Blue Tile
16468   Green Tile
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
16474                they vanish.
16476   Blue Arrow - Rude fellows. Shove you in whatever direction the arrow
16477                is pointing.
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.
16489 Controls
16490 --------
16491   Left             - Move left
16492   Right            - Move right
16493   Up               - Move up
16494   Down             - Move down
16495   OK                       - Jump
16496   Off                      - Escape
16498 }}}4
16500 }}}3
16502 }}}2
16504 Architecture {{{2
16506 common {{{3
16508 start search from test called <sdl>/test/testbitmap.c
16510 main()
16511 |-> SDL_Init() src/SDL.c
16512 |   |-? pth_init()
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()
16530 |   |   |       |       |-> ...
16531 |   |   |       |       |-> getenv("SDL_FBACCEL")       // check if disable hw acceleration
16532 |   |   |       |       |-> atoi()
16533 |   |   |       |       |-> mmap()
16534 |   |   |       |       |-? SDL_SetError(), FB_VideoQuit()
16535 |   |   |       |       |-> ioctl(, FBIOGET_VSCREENINFO,) //get current screen depth
16536 |   |   |       |       |-> FB_SavePalette()    // save hw palette if needed
16537 |   |   |       |       |-> ...
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[][]
16543 |       |       |       |       |
16544 |   |   |       |       |_> FB_OpenMouse() src/video/fbcon/SDL_fbevents.c
16545 |   |   |       |
16546 |   |   |       |-? SDL_VideoQuit()
16547 |   |   |       |-> SDL_CreateRGBSurface()
16548 |   |   |       |-? SDL_VideoQuit()
16549 |   |   |       |
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
16557 |   |   |       |       |       |       |
16558 |   |   |       |       |       |       |-> KVAL()
16559 |   |   |       |       |       |       |...
16560 |   |   |       |       |       |
16561 |   |   |       |       |       |-> SDL_EnableKeyRepeat()
16562 |   |   |       |       |       |_> fill keynames[]
16563 |   |   |       |       |
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
16568 |   |   |       |       |       |
16569 |   |   |       |       |       |-> memset()
16570 |   |   |       |       |       |-# SDL_CreateMutex()
16571 |   |   |       |       |       |->
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();
16588 |   |   |       |       |
16589 |   |   |       |       |__? SDL_StopEventLoop()
16590 |   |   |       |
16591 |   |   |       |--? SDL_VideoQuit()
16592 |   |   |       |_> SDL_CursorInit()
16593 |   |   |               |-? SDL_CreateCursor()
16594 |   |   |               |-? SDL_SetCursor()
16595 |   |   |               |_> SDL_CreateMutex()
16596 |   |   |
16597 |   |   |-# SDL_AudioInit()
16598 |   |   |-# SDL_TimerInit()
16599 |   |   |-# SDL_JoystickInit()
16600 |   |   |_# SDL_CDROMInit()
16601 |   |
16602 |   |_? SDL_InstallParachute()
16604 |-> SDL_SetVideoMode()
16605 |       |-? SDL_Init()
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()
16619 |       |       |-> ...
16620 |       |       |-> SDL_FillRect()
16621 |       |       |       |-> ...
16622 |       |       |       |-> SDL_UnlockSurface()
16623 |       |       |       |       |-> ...
16624 |       |       |       |       |-> FB_UnlockHWSurface()
16625 |       |       |       |       |       |-> ...
16626 |       |       |       |       |       |-> SDL_mutexV()
16627 |       |       |
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()
16636 |       |_> ...
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)
16641 |       |       |       |-> select()
16642 |       |       |       |-> handle_keyboard() src/video/fbcon/SDL_fbevents.c
16643 |       |       |       |       |-> read()
16644 |       |       |       |       |-> TranslateKey()
16645 |       |       |       |       |-? SDL_GetModState()
16646 |       |       |       |       |-? switch_vt()
16647 |       |       |       |       |_? SDL_PrivateKeyboard() (src/events/SDL_keyboard.c)
16648 |       |       |       |               |-> SDL_PushEvent() (src/events/SDL_keyboard.c)
16649 |       |       |       |
16650 |       |       |       |_> handle_mouse() src/video/fbcon/SDL_fbevents.c
16651 |       |       |       |       |-> SDL_PrivateMouseMotion()
16652 |       |       |       |       |-> SDL_GetMouseState()
16653 |       |       |       |       |_> SDL_PrivateMouseButton() src/events/SDL_mouse.c
16654 |       |       |
16655 |       |       |_> SDL_CheckKeyRepeat()
16656 |       |
16657 |       |_> SDL_PeepEvents()
16659 |_> SDL_FreeSurface()
16660 }}}3
16662 Keyboard {{{3
16663         13oct2004
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)
16681 |       |-> read(fd)
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
16688 |               |-> create event
16689 |               |_> SDL_PushEvent()
16690 |                       |-> SDL_PeepEvents() (src/events/SDL_events.c)
16691 |_> handle_mouse()
16693 SDL_GetKeyState() (src/events/SDL_keyboard.c)
16694 |_> returns SDL_KeyState
16696 }}}3
16698 graphics {{{3
16700 SDL_VideoInit() (src/video/SDL_video.c)
16701 |-> FB_VideoInit() (src/video/SDL_fbvideo.c)
16705 }}}3
16707 }}}2
16709 Status {{{
16710 20sep2004 
16711 SDL project
16712 1. Problems
16713         a. The wrong colors for BMP files (particulary for BMP file in vectoroids game) - ?
16714         b. Ability to build SDL without converter - week
16716 2. Additions
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,
16722 follows:
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)
16729 Supported formats:
16730 ----------------- 
16731 graphics: BMP,PNG,JPG,PCX
16732 audio: WAVE
16733 libraries: SDL, SDL_image, SDL_mixer, SDL_net, libpng, libjpeg, zlib
16734 games: net-bubble, abombniball
16738 How to build?
16739 ------------
16740 cd <path to SDL>
16741 comp2
16742 . /usr/local/tools/env.src
16743 export CONFIG_SITE="/home/gxk/prjs/apps/SDL/config.site"
16744 make clean all install
16747 021 - LIRC {{{
16749 Arch:
16750 daemons/lircd.c
16751 main
16752 |-> ...
16753 |_> loop()
16754         |-> waitfordata()
16755         |-> hw.rec_func = default_rec() (daemons/hw_default.c)
16756         |       |-> ...
16757         |       |-> rec_mode is LIRC_MODE_MODE2
16758         |       |-> clear_rec_buffer() (daemons/receive.c)
16759         |       |       |-> //reading int in buffer of type `struct rbuf'
16760         |       |       |-> ...
16761         |       |       |-> hw.readdata = default_readdata() (daemons/hw_default.c)
16762         |       |       |_> ...
16763         |       |-> decode_all() (daemons/ir_remote.c)
16764         |       |       |-> ...
16765         |       |       |-> hw.decode_func = default_decode() (daemons/hw_default.c)
16767 RBUF_SIZE 256
16768 struct rbuf {
16769     lirc_t data[RBUF_SIZE];
16770     ir_code decoded;
16771     int rptr;
16772     int wptr;
16773     int too_long;
16774     int is_biphase;
16775     lirc_t pendingp;
16776     lirc_t pendings;
16777     lirc_t sum;
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
16784 which contains:
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
16792 --- config.sub ---
16794   Add at line 452 follows:
16795     "evm642 | vm1 | vm2*)
16796         basic_machine=tms320c6
16797         os=-medialinux
16798         ;;"
16799   Add at line 1133 follows:
16800     "-medialinux*)
16801         os=-medialinux
16802         ;;"
16805 --- configure ---
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
16810 In configure.in:
16811 Comments follows:
16812 daemon=""
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])
16818   fi
16821 Add follows:
16822 if test "$driver" = "sony839"; then
16823   lirc_driver="none"
16824   hw_module="hw_default.o receive.o transmit.o serial.o"
16825   HW_DEFAULT="hw_default"
16826   lircd_conf="sony/839.cfg"
16828 In aclocal.m4:
16829 Change line 589:
16830 $SHELL -c "export GCC2C_SECOND_STAGE_CCS_COMPILER_EXTRA_OPTIONS=-ppd ; ./depcomp $depcc -c conftest.c -o conftest.o" >/dev/null 2>&1 &&
16831 }}}3
16833 Line 2284:
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
16839 Line 9909:
16840 if test "$driver" = "sony839"; then
16841   lirc_driver="none"
16842   hw_module="hw_default.o receive.o transmit.o serial.o"
16843   HW_DEFAULT="hw_default"
16844   lircd_conf="sony/839.cfg"
16848 --- depcomp ---
16850 add follows option
16851 cl6x)
16852    tmpdepfile=`echo "$object" | sed -e 's/.o$/.pp/'` 
16853       "$@"
16854   stat=$?
16855   if test $stat -eq 0; then :
16856   else
16857     rm -f "$tmpdepfile"
16858     exit $stat
16859   fi
16860   mv "$tmpdepfile" "$depfile"
16861   ;;
16863 --- Makefile.in ---
16865 Changes in directories daemons, tools, doc:
16866         sbindir = @bindir@
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 $@
16874 --- ltmain.sh ---
16876 Change line 560:
16877       new_command="GCC2C_NO_CONVERTER_INVOCATION=1 $command"
16878       $show "$new_command"
16879       if $run eval "$new_command"; then :
16881 }}}2
16883 Configure {{{2
16885 w/ converter: {{{3
16886 the RIGHTone:
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
16891 }}}3
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
16901 }}}4
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
16908 }}}3
16909 }}}2
16911 make
16912 make install
16914 Problems:
16915 1. When building can't see dependencies files
16917 External fixes:
16918 warning 174
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'
16924 022 - PERL {{{1
16925         02nov2004
16927 simple-way configuration {{{2
16929 Run `sh Configure' and answer follows: {{{3
16932 none
16933 none                            os name
16934 1                                       os version
16935 n                                       SOCKS
16936 y                                       PerlIO
16937 y                                       threading
16939 none                            lib search path
16940 none                            file ext for shared lib
16941 n                                       long double
16942 none                            optional libraries
16943 none                            optimizer/debugger flag
16944 none                            cc flags
16945 none                            ld flags
16946 n                                       64 bit int
16947 n                                       max 64 bit support
16948 i686-                           arch
16949 /opt/tms320c6           install prefix
16950 <default>
16951 <default>
16952 <default>
16953 none                            username for security test
16954 n                                       secure setuid
16955 n                                       setuid/setgid emulation
16956 n                                       wrap malloc
16957 n                                       use the malloc that comes with perl5
16958 /opt/tms320c6           install prefix for add-on nmodules
16959 <default>
16960 <default>
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
16967 none
16969 n                                       use nm to extrace C symbols
16970 n                                       dynamic loading
16971 <default>
16972 <default>
16973 <default>
16974 <default>
16976 <default>                       domain name
16977 <default>                       e-mail address
16978 <default>                       admin e-mail address
16980 <default>
16981 <default>
16982 <default>
16983 none                            site-specific html pages should be installed
16984 none                            site-specific library html pages
16985 <default>
16986 <default>
16987 <default>
16988 n                                       fast stdio
16989 n                                       large files
16990 n                                       gethostname
16992 y                                       vfork
16994 drand48
16995 gid_t
16996 /usr/bin/less
16997 /usr/bin/byacc
16998 none                            extensions do you wish to include
16999 }}}3
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'
17004 ccsymbols=''
17005 cppccsymbols=''
17006 cppflags=''
17007 cpprun='tms320c6-coff-gcc -E'
17008 cppstdin='tms320c6-coff-gcc -E'
17009 cppsymbols=''
17010 d_tm_tm_gmtoff='undef'
17011 d_tm_tm_zone='undef'
17012 d_tzname='undef'
17013 d_gnulibc='undef'
17014 d_getspnam='undef'
17015 d_isnan='undef'
17016 full_ar='tms320c6-coff-ar'
17017 glibpth=''
17018 i_shadow='undef'
17019 i64size='4'
17020 ld='tms320c6-coff-ld'
17021 ldflags='-z -ar -x'
17022 ldlibpthname=''
17023 locincpth=''
17024 loclibpth=''
17025 longdblsize='8'
17026 longlongsize='4'
17027 nm='tms320c6-coff-nm'
17028 timeincl=''
17029 u64size='4'
17030 }}}3
17032 Comments in makefile: {{{3
17033 wince.h
17034 nwutils.c
17035 }}}3
17037 Building {{{3
17038 If config.sh changes:
17039 To update scripts do `Configure -S'
17040 Dependencies `make depend'
17041 `make'
17042 }}}3
17044 Fixes {{{3
17046 1. commented 2 fields tm_zone and tm_gmtoff in struct tm from time.h
17047    we r not supporting time zones.
17048    solution:
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
17058    solution:
17059    change config.sh to undef shadow and getspnam
17061 3. ARFLAGS in main makefile is `rcu'
17062    solution: Temporary
17063    mainly changed.
17065 4. Target w/o rules in main makefile: nwutil.h
17066    solution: Temporary
17067    mainly changed.
17069 5. Target w/o rules in main makefile: wince.h
17070    solution: Temporary
17071    mainly changed.
17073 6. Building of miniperl (main makefile) using CC instead of LD.
17074    solution: Temporary
17075    mainly changed.
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.
17081 }}}3
17083 }}}2
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"
17089 }}}3
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
17093 Canceled:
17094 Access to stdio stream array - try iob, __iob, __sF nothing.
17095 How much NV preserve UVs.
17097 }}}2
17099 new simple-way configuration {{{2
17101 Run `Configure' from <perl> dir w/ follows answers:
17102 answers {{{3
17103 n                                       to see the instructions
17104 none                            policy file
17105 none                            linux
17106 <default>                       os version
17107 n                                       SOCKS
17108 y                                       PerlIO
17109 y                                       threading
17110 y                                       ithreads
17112 none                            lib search path
17113 none                            file ext for shared lib
17114 n                                       long double
17115 none                            optional libraries
17116 none                            optimizer/debugger flag
17117 -D_REENTRANT            cc flags
17118 none                            ld flags
17119 n                                       64 bit int
17120 n                                       max 64 bit support
17121 <default>                       arch
17122 /opt/tms320c6           install prefix
17123 <default>
17124 <default>
17125 <default>
17126 none                            username for security test
17127 n                                       secure setuid
17128 n                                       setuid/setgid emulation
17129 y                                       wrap malloc
17130 y                                       use the malloc that comes with perl5
17131 /opt/tms320c6           install prefix for add-on nmodules
17132 <default>
17133 <default>
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
17143 n                                       dynamic loading
17144 <default>
17145 <default>
17146 <default>
17147 <default>
17149 <default>                       domain name
17150 <default>                       e-mail address
17151 <default>                       admin e-mail address
17153 <default>                       what to put after `#!' to startup perl
17154 <default>
17155 <default>
17156 none                            site-specific html pages should be installed
17157 none                            site-specific library html pages
17158 <default>
17159 <default>
17160 <default>
17161 none                            fast stdio
17162 none                            large files
17163 n                                       gethostname
17165 y                                       vfork
17167 drand48
17168 gid_t
17169 /usr/bin/less
17170 /usr/bin/byacc
17171 }}}3
17173 Changes in makedepend.SH
17174 line 230 add: `grep [^wince] |'
17176 Changes in perl.c
17177 delete lines 79 -82
17179 cp config.sh Cross/config.sh-tms320c6-coff
17180 cd Cross
17182 Do follows changes in it generate_config_sh
17183 Changes {{{3
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'
17185 ccsymbols=''
17186 cppccsymbols=''
17187 cppflags='-D_REENTRANT'
17188 cppsymbols=''
17189 d_getspnam='undef'
17190 d_getspnam_r='undef'
17191 d_gnulibc='undef'
17192 d_isnan='undef'
17193 d_tm_tm_gmtoff='undef'
17194 d_tm_tm_zone='undef'
17195 d_tzname='undef'
17196 full_ar='tms320c6-coff-ar'
17197 glibpth=''
17198 i32type='__SOFTIER_LONG__'
17199 i64size=''
17200 i64type=''
17201 i_shadow='undef'
17202 ld='tms320c6-coff-ld'
17203 ldflags='-z -ar -x'
17204 ldlibpthname=''
17205 libc='/home/gxk/prjs/uClinux-dist/uClibc/lib/libc.a'
17206 locincpth=''
17207 loclibpth=''
17208 longdblsize=''
17209 longlongsize=''
17210 osname='medialinux'
17211 nm='tms320c6-coff-nm'
17212 timeincl=''
17213 u32type='unsigned __SOFTIER_LONG__'
17214 u64size=''
17215 u64type=''
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'
17223 }}}3
17225 Comments in makefile: {{{3
17226 wince.h
17227 nwutils.c
17228 }}}3
17230 Building {{{3
17231 If config.sh changes:
17232 To update scripts do `Configure -S'
17233 Dependencies `make depend'
17234 `make'
17235 }}}3
17237 Fixes {{{3
17239 1. commented 2 fields tm_zone and tm_gmtoff in struct tm from time.h
17240    we r not supporting time zones.
17241    solution:
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
17251    solution:
17252    change config.sh to undef shadow, getspnam and getspnam_r
17254 3. ARFLAGS in main makefile is `rcu'
17255    solution: Temporary
17256    mainly changed.
17258 4. Target w/o rules in main makefile: nwutil.h
17259    solution: Temporary
17260    mainly changed.
17262 5. Target w/o rules in main makefile: wince.h
17263    solution: Temporary
17264    mainly changed.
17266 6. Building of miniperl (main makefile) using CC instead of LD.
17267    solution: Temporary
17268    mainly changed.
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
17276 fdef _TMS320C6
17277     f->filedes = -1;
17278     return 1;
17281 }}}3
17283 }}}2
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
17296 exists in TI 3.
17298 Taking care of `long double':
17299 d_longdbl = define
17300 longdblsize='8'
17301 uselongdouble='define'
17303 Taking care of `long long':
17304 d_longlong = define
17305 i64size='8'
17306 i64type='long long'
17307 longlongsize='8'
17308 u64size='8'
17309 u64type='unsigned long long'
17310 uquadtype='unsigned long long'
17311 quadkind='3'
17312 quadtype='long long'
17314 Taking care of `long':
17315 i32size='4'
17316 i32type='__SOFTIER_LONG__'
17317 ivdformat='"d"'
17318 ivtype='__SOFTIER_LONG__'
17319 ivsize='4'
17320 longsize='4'
17321 randseedtype='__SOFTIER_LONG__'
17322 u32size='4'
17323 u32type='unsigned __SOFTIER_LONG__'
17324 uvXUformat='"X"'
17325 uvoformat='"o"'
17326 uvsize='4'
17327 uvtype='unsigned __SOFTIER_LONG__'
17328 uvuformat='"u"'
17329 uvxformat='"x"'
17332 Problem in compile toke.c
17333 Solution to split it.
17334 }}}2
17336 Project info {{{2
17338 More then 1000 files and lines as follows :
17339 146000 c
17340  68000 h
17341  31000 pl
17342  14000 sh
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] -
17363 large files [y] -
17364 ignore gethostname [n] -
17365 use vfork() [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] -
17372 }}}3
17374 Perl installed (done on linux w/ default config opts){{{3
17376 bin {{{4
17377         a2p
17378         c2ph
17379         cpan
17380         dprofpp
17381         enc2xs
17382         find2perl
17383         h2ph
17384         h2xs
17385         instmodsh
17386         libnetcfg
17387         perl
17388         perl5.8.5
17389         perlbug
17390         perlcc
17391         perldoc
17392         perlivp
17393         piconv
17394         pl2pm
17395         pod2html
17396         pod2latex
17397         pod2man
17398         pod2text
17399         pod2usage
17400         podchecker
17401         podselect
17402         prove
17403         psed
17404         pstruct
17405         s2p
17406         splain
17407         xsubpp
17408 }}}4
17409 lib {{{4
17410         perl5
17411                 5.8.5
17412                 site_perl
17413 }}}4
17414 man {{{4
17415         man1
17416         man3
17417 }}}4
17418 }}}3
17420 How Perl works.
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
17423 interpreting.
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.
17435 --- fork/vfork
17436 vfork
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().
17442 fork
17443 needs further investigation.
17445 --- modules 
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
17454 by CPAN module.
17456 --- threads
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.
17464 ithreads model
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
17467 "child" exists.
17468 !!!This model based on fork().
17470 5005threads model
17471 All data is implicitly shared and access should be explicitly synchronized.
17473 --- shared libperl
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.
17484 --- IO
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/
17490 --- malloc 
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.
17496 }}}2
17498 Questions: {{{2
17499 Open issues
17501 sorted by they influence on project.
17503 DONE
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.
17508         decision:
17509         to take last stable which is perl-5.8.5
17510 2. Do we have to support modules?
17511         decision:
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
17521         use vfork()."
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
17537         APItest                 84                      y                       n
17538         attrs                   9                       y                       n
17539                 set/get attrib of subroutine (depricated).
17540         B                               428
17541                 the perl compiler, changing "backend" of Perl compiler.
17542         ByteLoader              60                      y                       n
17543                 load byte compiled perl code.
17544         Cwd                             18                      y                       n
17545                 get current working directory
17546         Data/Dumper             65                      y                       n
17547                 stringified perl data structures, suitable for both printing and eval.
17548         DB_File                 ?                       n                       n
17549                 Perl5 access to Berkeley DB version 1.x
17550         Devel/DProf             30                      y                       n
17551                 code profiler
17552         Devel/Peek              34                      y                       n
17553                 data debugging tool for the XS programmer
17554         Devel/PPPort    63                      y                       n
17555                 perl/pollution/portability
17556         Digest/MD5              32                      y                       n
17557                 interface to MD5 algo
17558         Encode                  76                      y                       n
17559                 character encoding
17560         Fcntl                   28                      y                       n
17561                 load the C Fcntl.h defines
17562         File/Glob               39                      y                       n
17563         Filter/Util/Call 20                     y                       n
17564         GDBM_File               ?                       n                       n
17565                 Perl5 access to the gdbm library.
17566         I18N/Langinfo   27                      y                       n
17567         IO                              37                      y                       n
17568         IPC/SysV                43                      y                       n
17569         List/Util               118                     y                       n
17570         MIME/Base64             19                      y                       n
17571         NDBM_File
17572                 access to ndbm files
17573         Opcode                  52                      y                       n
17574         ODBM_File               ?                       n                       n
17575                 access to odbm files
17576         PerlIO/encoding 53                      y                       n
17577         PerlIO/scalar   12                      y                       n
17578         PerlIO/via              31                      y                       n
17579         POSIX                   33                      y                       n
17580                 interface to IEEE std 1003.1
17581         re                              38                      y                       n
17582                 Perl pragma to alter regular expression behaviour
17583         SDBM_File               ?                       n                       n       
17584                 access to sdbm files
17585         Socket                  51                      y                       n
17586                 translation of the socket.h file.
17587         Storable                204                     y                       n
17588                 persistence for Perl data structures
17589         Sys/Hostname    10                      y                       n
17590         Sys/Syslog              43                      y                       n
17591         threads                 49                      y                       n
17592         threads/shared  108                     y                       n
17593         Typemap                 173                     y                       n
17594         Time/HiRes              36                      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)
17604         Module needed.
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
17617         a2p
17618         c2ph
17619         cpan
17620         dprofpp
17621         enc2xs
17622         find2perl
17623         h2ph
17624         h2xs
17625         instmodsh
17626         libnetcfg
17627         perl
17628         perl5.8.5
17629         perlbug
17630         perlcc
17631         perldoc
17632         perlivp
17633         piconv
17634         pl2pm
17635         pod2html
17636         pod2latex
17637         pod2man
17638         pod2text
17639         pod2usage
17640         podchecker
17641         podselect
17642         prove
17643         psed
17644         pstruct
17645         s2p
17646         splain
17647         xsubpp
17649 }}}2
17651 Status: {{{2
17652 03nov2004 - 10 objs created
17653 04nov - miniperl created
17654 07nov - trying to fully cross-compile - 30% done
17655 08nov - same
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
17668 }}}2
17670 }}}1
17671 023 - MediaLinux GUI toolkit {{{
17672 MLGT
17674 Exist toolkits:
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
17680 Ruby
17681 Python
17682 Perl
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
17691 kernel
17692 libs
17693 libsoftier.lib
17694 apps
17696 Currently (07dec2004) defined by Ady to rebuild only libs and apps.
17697 Prepare new tools. {{{2
17698 *Install old tools.
17699 *Add new tools.
17700 cd /usr/local/tools/wine-ti-cc/support/dotwine/fake_window
17701 cp -r ./ti ./ti-2
17702 cp -r /misc/share/ccs3_4_lnx ./ti-3
17703 ln -s ti-2 ti
17704 cd <uclinux> and prepare everything
17705 make dep
17706 make linux
17707 pushd /usr/local/tools/wine-ti-cc/support/dotwine/fake_windows ; rm -rf ti ; \
17708         ln -s ti-3 ti ; popd
17709 make lib
17710 }}}2
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.
17728 }}}1
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.
17734 List of servers:
17735   name                  AnsiC   model   CGI             PHP             ver             nbr_lines       URL
17736 AOLserver               y                                                                                                       aolserver.com
17737 Apache                  y                                                                                                       apache.org
17738 Boa                             n                                                                                                       boa.org
17739 micro_httpd             ?                                                                                                       acme.com/software/micro_httpd/
17740 roxen                   pike
17741 thttpd                                                                                                                          acme.com/software/thttpd/
17742 netscape
17743 goahead                 y                               y                               2.1.8   30K                     goahead.com
17746 http streaming
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
17753 026 - Huawei {{{1
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
17764                 games
17765                 movies
17766                 music
17767                 flight info
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.
17787 3. Conclusion.
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).
17793 Questions:
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)
17800 7. RTSP/RTP
17801 8. MPEG4, H264
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)
17810 }}}1
17811 027 - Toolchain w/ CCs 3.1b {{{1
17812         23mar2005
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.
17815 Changes {{{2
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'
17830 }}}2
17831 How to build w/o support for WCHAR?
17832 comp2
17833 env.src
17834 sh mklinks.sh
17835 make xconfig
17836 make dep && make linux
17837 comp31b
17838 env31b.src
17839 make lib
17840 make user
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:
17844         UCLIBC_HAS_WCHAR=y
17845         # UCLIBC_HAS_LOCALE is not set
17847 New objs for libm, new  change of libm/Makefile
17848 cvs update -A
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
17855 }}}1
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
17861 -----------------
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,
17864      ULLONG_MAX
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)
17874 ++   lldiv()
17875 -    printf() (from uClibc/libc/stdio/printf.c)
17876   e. Add striping
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.
17881 final changes:
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
17890 }}}3
17892 libm preparations:  {{{3
17893 -----------------
17894   a. objs to analyze
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()
17901 final changes:
17902 uClibc/libm/ti_objs3/*
17903 uClibc/libm/Makefile
17904 }}}3
17906 Released like by follows commands:
17907 cvs update -A
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
17917 }}}2
17918 2. Add support for wchar                                                  {{{
17920 <get source>
17921 comp2
17922 env.src
17923 sh mklinks.sh
17924 make xconfig and cancel busybox->tail
17925 make dep
17926 make linux
17927 comp3
17928 env_ll.src
17929 change uClibc/.config to add 2 line below or run `make menuconfig' from uClibc:
17930         UCLIBC_HAS_WCHAR=y
17931         # UCLIBC_HAS_LOCALE is not set
17932 make lib
17933 make user
17935 final changes:
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
17945 To get everything:
17946         snmpwalk -c gxk -v 2c 192.168.2.183 .1 > a.txt
17948 iso.org.dod.internet.mgmt.mib-2
17949  1   3   6      1     2     1
17951 iso.org.dod.internet.snmpV2.snmpModules
17952  1   3   6      1      6        3
17954 Call private MIB:
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
17959 Create mib {{{
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
17973 SNMPv2-SMI {{{2
17974         04may2005
17976 iso = 1
17977   org {iso 3}
17978     dod {org 6}
17979       internet {dod 1}
17980         directory {internet 1}
17981         mgmt {internet 2}
17982           mib-2 {mgmt 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
17993 }}}2
17994 SNMPv2-TC {{{2
17995         04may2005
17996         imports from SNMPv2-SMI
17997 }}}2
17998 SNMPv2-MIB {{{2
17999         04may2005
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
18008         sysDescr                        1  ro
18009         sysObjectID                     2  ro
18010         sysUpTime               3  ro
18011         sysContact              4  rw
18012         sysName                         5  rw
18013         sysLocation                     6  rw
18014         sysServices                     7  ro
18015         sysORLastChange     8  ro
18016         sysORTable          9  no acc
18017           sysOREntry                     1  no acc
18018         sysORIndex                              1  no acc
18019             sysORID                                     2  ro
18020             sysORDescr                          3  ro
18021             sysORUpTime                         4  ro
18023 snmp   { mib-2 11 }
18024         snmpInPkts                                      1
18025         snmpOutPkts                                     2  ro
18026         snmpInBadVersions                       3
18027         snmpInBadCommunityNames         4
18028         snmpInBadCommunityUses          5
18029         snmpInASNParseErrs                      6
18030         snmpInTooBigs                           8  ro
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
18041         snmpInTraps                                     19
18042         snmpOutTooBigs                          20
18043         snmpOutNoSuchNames                      21
18044         snmpOutBadValues                        22
18045         snmpOutGenErrs                          24
18046         snmpOutGetRequests                      25 ro
18047         snmpOutGetNexts                         26 ro
18048         snmpOutSetRequests                      27 ro
18049         snmpOutGetResponses                     28 ro
18050         snmpOutTraps                            29 ro
18051         snmpEnableAuthenTraps           30
18052         snmpSilentDrops                         31
18053         snmpProxyDrops                          32
18055 snmpTrap        { snmpMIBObjects 4 }
18056         snmpTrapOID                                     1
18057         snmpTrapEnterprise                      3
18059 snmpTraps       { snmpMIBObjects 5 }
18060         ...
18062 snmpMIBConformance { snmpMIB 2 }  1.3.6.1.6.3.1.2
18063         snmpMIBCompliances              1
18064         snmpMIBGroups                   2
18065           snmpSetGroup                                          5
18066           systemGroup                                           6  
18067           snmpBasicNotificationsGroup           7
18068           snmpGroup                                                     8
18069           snmpCommunityGroup                            9
18070           snmpObsoleteGroup                                     10
18071           snmpWarmStartNotificationGroup        11
18072           snmpNotificationGroup                         12
18073 }}}2
18074 HOST-RESOURCES-MIB {{{2
18075         04may2005
18077 import from: SNMPv2-SMI SNMPv2-TC SNMPv2-CONF IF-MIB
18079 hostResourcesMibModule { hrMIBAdminInfo 1 }
18081 host    { mib-2 25 }
18082         hrSystem                        { host 1 }
18083         hrStorage                       { host 2 }
18084         hrDevice                        { host 3 }
18085         hrSWRun                         { host 4 }
18086         hrSWRunPerf                     { host 5 }
18087         hrSWInstalled           { host 6 }
18088         hrMIBAdminInfo          { host 7 }
18089         ...
18090 }}}2
18091 Architecture {{{2
18092 agent/snmpd.c
18093 main()
18095 |-> init_mib_modules() (agent/mib_modules.c)
18096 |   |
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() 
18103 |   |
18104 |->...
18106 }}}2
18107 Errors {{{3
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:
18110 s/b 4)'
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
18113 same file.
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:
18124 dumph_send:               Value
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)
18129 snmp_build()
18130 |->_snmp_build()
18131 |  |
18132 |  |->snmp_pdu_realloc_rbuild()
18133 |  |  |
18134 |  |  |->snmp_realloc_rbuild_var_op() (snmplib/snmp.c)
18135 |  |  |  |
18136 |  |  |  |->asn_realloc_rbuild_int() (snmplib/asn1.c)
18138 }}}3
18140 MRTG {{{2
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 &
18148 }}}2
18149 Checking :
18150 snmpd/Makefile
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
18158         15may2005
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:
18166 get 110 16 
18167 . /usr/local/tools/env31b.src
18168 sh mklinks.sh
18169 make xconfig
18170 make dep && make linux
18171 cd uClibc
18172 make menuconfig
18173 cd ..
18174 make lib && make user
18176 }}}1
18177 031 - Locales {{{1
18178         29may2005
18179 TODO:
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
18189 make pregen
18190 make lib
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'
18204 Changed files:
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
18209 Added files:
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
18215 c8tables.h
18216 gen_collate
18217 gen_ldc
18218 gen_locale
18219 gen_wc8bit
18220 gen_wctype
18221 locale_collate.h
18222 locale_data.c
18223 locale_tables.h
18224 lt_defines.h
18225 wctables.h
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
18237 ./uClibc/Makefile
18238 ./uClibc/extra/Configs/Config.in
18241 Funcs to check
18242 setlocale()             (uClibc/misc/locale/locale.c)
18243 localeconv()    (uClibc/misc/locale/locale.c)
18244 nl_langinfo()   (uClibc/misc/locale/locale.c)
18246 btowc()
18247 wctob()
18249 }}}1
18250 032 - Ping behaviour {{{1
18251         05jun2005
18253 The problem: When run ping second time it's only print 1 message.
18255 2 ways to check:
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.
18260 16jun2005
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 ..
18265 }}}1
18266 033 - toolchain fix 19jul2005 {{{1
18268 List #1 {{{2
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
18288                 Convert int to...
18289 _fltid                          fltid.obj                                                               libsoftier
18290 _fltif                          fltif.obj                                                               libsoftier
18291 _fltud                          fltud.obj                                                               libsoftier
18292 _fltuf                          fltuf.obj                                                               libsoftier
18293                 Convert long to...
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
18303                 Sign funcs
18304 _absd                           absd.obj                                                                libsoftier
18305 _absf                           absf.obj                                                                libsoftier
18306 _labs                           abs.obj                                                                 libc
18307 _llabs                          abs.obj                                                                 libc
18308 _negd                           negd.obj                                                                libsoftier
18309 _negf                           negf.obj                                                                libsoftier
18310 _negll                          negll.obj                                                               libsoftier
18311                 Shift long long
18312 _llshl                          llshift.obj                                                             libm
18313 _llshr                          llshift.obj                                                             libm
18314 _llshru                         llshift.obj                                                             libm
18315                 Funcs w/ double
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
18321                 Funcs w/ float
18322 _addf                           addf.obj
18323 _cmpf                           cmpf.obj                                                                libsoftier
18324 _divf                           divf.obj                                                                libsoftier
18325 _mpyf                           mpyf.obj                                                                libsoftier
18326 _subf                           subf.obj                                                                libsoftier
18327                 Funcs w/ int
18328 _divi                           divi.obj                                                                libsoftier
18329 _remi                           remi.obj                                                                libsoftier
18330 _divu                           divu.obj                                                                libsoftier
18331 _remu                           remu.obj                                                                libsoftier
18332                 Funcs w/ long
18333 _divli                          imath40.obj                                                             libsoftier
18334 _remli                          imath40.obj                                                             libsoftier
18335 _divul                          imath40.obj                                                             libsoftier
18336 _remul                          imath40.obj                                                             libsoftier
18337                 Funcs w/ long long
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):
18345 _lltoa                          lltoa.obj
18347 }}}2
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:
18354 lltoa.obj
18356 Add follows to libsoftier (from STL project):
18357 defs.obj, error.obj
18358 }}}2
18360 Add tms320c6-coff-mk-cramfs to /usr/local/bin
18362 Change tms320c6-coff-strip to /usr/local/bin
18363 }}}1
18364 034 - filesystem {{{1
18365         04jul2005
18367 To create remote fs, based http.
18369 exist projects{{{2
18371 ftpfs {{{3
18372 -----
18373 super_ops ftp_sops
18374         put_inode:              force_delete() - kill unused inodes
18375     delete_inode:       ftp_delete_inode()
18376                                         |-> lock_kernel()
18377                                         |-> clear_inode()
18378                                         |_> unlock_kernel()
18379     put_super:          ftp_put_super()
18380                                         |-> ftp_disconnect()
18381                                         |-> ftp_cache_empty()
18382                                         |_> kfree()
18383     statfs:                     ftp_statfs() - update file attr params
18384 file_ops ftp_dir_operations
18385         read:           generic_read_dir()
18386         readdir:        ftp_readdir()
18387                                 |->
18388                                 |->
18389                                 |_>
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()
18395         mkdir:      ftp_mkdir()
18396         rmdir:      ftp_rmdir()
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()
18415 structs {{{4
18417 ftp_fattr {{{5
18418     unsigned long   f_ino;
18419     umode_t     f_mode;
18420     nlink_t     f_nlink;
18421     uid_t       f_uid;
18422     gid_t       f_gid;
18423     kdev_t      f_rdev;
18424     off_t       f_size;
18425     time_t      f_atime;
18426     time_t      f_mtime;
18427     time_t      f_ctime;
18428     unsigned long   f_blksize;
18429     unsigned long   f_blocks;
18430 }}}5
18432 ftp_mount_data {{{5
18433     int version;
18434     int force_own;
18435     int active;
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];
18442 }}}5
18444 ftp_sb_info {{{5
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;
18453 }}}5
18455 }}}4
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
18462 |-> ftp_connect()
18463 |   |-> create socket
18464 |   |-> connect
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
18480 |-> ftp_iget()
18481 |   |-> new_inode()
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)
18488 |-> d_alloc_root()
18489 |_? iput() - drop usage count of inode. if 0 so destroyed.
18490 }}}4
18491 ftp_file_readpage() {{{4
18492 |-> get_page()
18493 |-> page_address()
18494 |-> ftp_read() till PAGE_SIZE
18495 |   |-> ftp_lock()
18496 |   |-> ftp_getname()
18497 |   |-> prepare RETR cmd
18498 |   |-> ftp_execute_open()
18499 |   |- 
18500 |   |-> 
18501 |   |-> 
18504 }}}4
18505 ftp_create() {{{4
18506 |-> ftp_get_name() - create full path name
18507 |-> ftp_proc_create()
18508 |   |-> prepare STOR cmd
18509 |   |-> ftp_lock()
18510 |   |-> ftp_execute_open()
18511 |   |   |-> ftp_execute_open_actv()
18512 |   |   |-> ftp_execute_open_pasv()
18513 |   |-> ftp_close_data()
18514 |   |_> ftp_unlock()
18515 |_> ftp_cache_invalidate()
18516 }}}4
18518 }}}3
18519 cramfs {{{3
18520 ------
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()
18530 }}}3
18531 httpfs-0.1 {{{3
18532 ----------
18533 super_ops my_super_ops
18534         put_super       my_put_super()
18535         statfs          my_statfs()
18536         read_inode      my_read_inode()
18537         put_inode       my_put_inode()
18538 file_ops my_path_file_ops
18539         open            my_path_open()
18540                                 --------------
18541                                 |->http_read()
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()
18554 }}}3
18555 }}}2
18557 Design{{{2
18559 GET - retrvs data with meta-data
18560 HEAD - retrvs only meta-data
18561 PUT - stores data
18563 Apache changes in /etc/httpd/conf/httpd.conf :
18564 KeepAlive On
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()
18583         mkdir:      ftp_mkdir()
18584         rmdir:      ftp_rmdir()
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()
18601 status:
18602         11sep2005
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".
18611 }}}1
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
18618 Changes {{{2
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:
18625 Added new macros
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 */
18629 Added new field
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
18635 typedef enum {
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;
18640 Added new var
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 ---
18648 Add new var
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);
18656             break;
18657         case AUDIO_TDM_MODE:
18658         case AUDIO_DIT_MODE:
18659             edmaCfg.opt |= EDMA_FMKS(OPT, ESIZE, 16BIT);
18660             break;
18661         default:
18662             break;
18663     }
18664 Minory change at line 224 of 3d argument from `args' to `(Uint32 *)pargs'
18666 --- linux-2.4.x/kad/sound/pcmdrv.c ---
18667 }}}2
18669 Changed files {{{2
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
18681         ec628_600M_bsl.lib
18682         ec628_720M_bsl.lib
18683         evmdm642_600M_bsl.lib
18684         evmdm642_720M_bsl.lib
18685         gbio_600M_bsl.lib
18686         mdm_600M_bsl.lib
18687         mdm_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)
18694         xds_600M_bsl.lib
18695 }}}2
18697 }}}1
18698 036 - SPDIF {{{1
18699         08aug2005
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).
18705 status
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
18711 1. 
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/
18727 Source code {{{2
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/
18737                 evm642_aic.c
18738                 sound_core.c
18739                 sound_firmware.c
18740 linux-2.4.x/kad/sound/
18741                 c6x1x_edma_mcasp.c
18742                 edma_codec.c
18743                 pcmdrv.c
18744 linux-2.4.x/kad/include/sound/
18745                 pcmdrv.h
18747 Driver init:
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
18770 |  |        |_?
18771 |  |
18772 |  |->DEV_createDevice( dio_Audiocodec )
18773 |  |
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
18778 |  |        |->ATM_setu()
18779 |  |        |->QUE_new()
18780 |  |        |->
18781 |  |        |_>
18782 |  |
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
18798 }}}2
18800 status:
18801 08sep2005
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)
18805 }}}1
18806 FLASH driver for MediaLinux {{{1
18807         22aug2005
18809 done for code from 26nov2005
18810 cvs co -D 2005/10/26 linux-2.6.7
18812 Tasks:
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
18829 instead mtdblock0.
18830 }}}2
18831 Final changes {{{2
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
18860 in init_physmap()
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
18891 state is 0.
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
18895 06nov2005
18896 All sources taken w/ -D 2005/09/26
18897 }}}2
18898 Lack of sysfs support in MTD {{{2
18899         02nov2005
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).
18906 }}}2
18907 Knowledge {{{2
18908 manage jffs2 image {{{3
18909         purpose to change given jffs2 image on machine w/o physical flash.
18910 modprobe -r mtdblock
18911 modprobe -r mtdram
18912 modprobe -r jffs2
18914 modprobe mtdblock
18915 modprobe mtdram total_size=6144,erase_block=128
18916 modprobe jffs2
18918 dd if=<image filename> of=/dev/mtdblock0
18919 mount -t jffs2 /dev/mtdblock0 /mnt
18921 Now possible to change/add/delete files.
18923 umount /mnt
18924 dd if=/dev/mtd0 of=<new image file>
18926 }}}3
18927 Kernel configuration and modules names. {{{3
18928 * - MTD                                                                                                 mtdcore
18929 |-> * debugging
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
18938 |-> - FTL support
18939 |-> - NFTL support
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
18960 |     |_>...
18961 |_> - NAND flash dev driver
18962       |_>...
18963 }}}3
18965 Flows:
18966 mtdcore
18967 |-> init_mtd()
18968 |   |-> create
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
18999 .setblkmode
19001 }}}2
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)
19010 cs3 - ?
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.
19017 }}}3
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.
19022 DM642_FLASH_read()
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
19055 |       |-- read status
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()
19068 }}}2
19070 changes made in user also, to bring up mtd-utils.
19071 cvs -Q diff -upwN > patch
19073 create jffs2 image:
19074 mkdir ./opt
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
19080 }}}1
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:
19085 config/config.in
19086 user/ramimage/Makefile
19087 user/Makefile
19089 create patch: cvs -Q diff -pwuN > patch
19091 }}}1
19092 038 - igmp bug fix in 2.4 {{{1
19093         released 10oct2005
19094         fix in linux-2.4.x/arch/tms320c6/drivers/dm642_emac/dm642_emac_linux.c
19095 }}}1
19096 039 - sdk problems from Vertimatrix {{{1
19097     05feb2006
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
19104 Investigation:
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.
19111 Solution:
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'.
19122 Investigation:
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
19128 __eh_curr_region
19129 __caught_object_address
19130 __catch_clause_number
19131 __exception_caught
19132 __throw
19133 __throw_setup_dtor
19134 __swap_eh_context
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...
19140 Solution:
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.
19156 Solution:
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.
19167 Solution:
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;
19181 status:
19182 09feb2006 finished, email to Ady & Hannit.
19184 }}}1
19185 040 - auto upgrade procedure initial {{{1
19186         08nov2005
19187 Document {{{2
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
19200 where it is not:
19201 1. user will  (pushing button in front of Softier's box)
19202 2. application decides that upgrade
19203                                                                       }}}3
19204 --- 1. System in preliminary status.                                    {{{3
19206         System setup.
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
19244         failure;
19245 STYPE - server type - used to choose which upgrade server to use: 0 - TFTP,
19246         1 - FTP.
19248 Factory settings.
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.
19260                                                                       }}}3
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
19268 reset button.
19269 * If button not pressed or pressed for less then 5sec, proceedes to normal boot
19270   sequence.
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.
19280                                                                 Picture {{{4
19281             --------------------------> RESET/BOOT
19282            ^                                  |   y
19283            |                            < FU==1 > --> UPGRADE <----
19284            |                                  |n         ^         |
19285            |                                  |          |         |
19286            |                            < FUB==1 > ------          |
19287            |                                  |n                   |
19288            |                                  |                    |
19289            |n                        n        |                    |
19290       <success> <-- IPSTB <-- FUB=1 <--- < btn press >             |
19291            |y                  ^              |                    |
19292            |                   |              |y                   |
19293          FUB=0                 |              |                    |
19294            |                   |     /------------------\          |
19295         working system         |     |        |         |          |
19296                                |    <5s      <20s      >20s        |
19297                                |     |        |         |          |
19298                                 -----       FU=1       FU=0        |
19299                                             FUA=0      FUA=1       |
19300                                               |         |          |
19301                                                --------------------
19302                                                                    }}}4 }}}3
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.
19316                                                                 Picture {{{
19317               UPGRADE
19318                  |
19319             load UpgK + UpgFS
19320                  |
19321           y      |
19322         --- < FUA==1 >
19323        |         |n
19324        |         |
19325        |      wait 10s
19326        |  y      |        n
19327         --- < btn press > ---
19328        |                     |
19329        |                     |
19330    MANUAL Upg        ----> AUTO Upg
19331        |            |         |
19332        |            |  n      |
19333        |             ---- < success >
19334        |                      |y
19335         -------> RESET <------
19336                                                                    }}} 
19337 }}}3
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.
19349                                                                 picture {{{4
19350                AUTO
19351                  |           n3
19352              < set network > -------
19353                  |y      n3         |
19354              < connect > -----------|
19355                  |y       n3        |
19356              < download > ----------|
19357                  |y                 |---
19358              < verify integrity > --|   |
19359                  |y                 |   |
19360              < burn flash > --------    |
19361                  |y                     |
19362          < update boot info > ----------|
19363                  |y                     |
19364                FU=0                     |
19365                  |                      |
19366                RESET <------------------
19367                                                                    }}}4 }}}3
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
19387                                                                 picture {{{4
19388                MANUAL
19389                  |                              
19390                  |      y                  3n   
19391              < FUA==1 > ---> < static IP > ---- 
19392                  |n              ^   |y        |
19393                  |           3n  |   |         |
19394              < set network > ----    |         |
19395                  |y                  |         |
19396                  | <-----------------          |
19397                  |                             |
19398                  |        3n                   |
19399              < run http > -------------------->|
19400                  |                             |
19401           / user interaction /                 |
19402                  |        3n                   |
19403              < download > -------------------->|
19404                  |                3n           |
19405              < verify integrity > ------------>|
19406                  |          3n                 |
19407              < burn flash > ------------------>|
19408                  |            3n               |
19409          < update boot info > ---------------->|
19410                  |                             |
19411                  |                             |
19412                 FUA=0                          |
19413                  |                             |
19414                RESET <-------------------------  
19415                                                                  }}}4 }}}3
19416 --- 6. Upgrade parameters API                                         {{{3
19418  - Control flags - 
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
19447 main system.
19448                 How to build upgrade system.
19449 `cd uClinux-dist'
19450 `make xconfig'
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.
19457 `sh mklinks.sh'
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'
19470                 How to upgrade
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 
19480 get help.
19482 Finaly, doing upgrade itself:
19483 `cd /var/upgrade'
19484 `upgrade'
19485                                                       new big picture {{{4
19487  --------------------------> RESET/BOOT <-------------------------------------- 
19488 |                            ----------                                        |
19489 |                                |             y                               |
19490 |                         < FU==1 ||  FUB==1 > ---------------> UPGRADE        |
19491 |                                |n             ^                  |           |
19492 |                                |              |           load UpgK + UpgFS  |
19493 |                                |              |                  |           |
19494 |                                |              |                  |           |
19495 |                                |              |           y      |           |
19496 |                       n        |              |         <-- < FUA==1 >       |
19497 |      IPSTB <-- FUB=1 <--- < btn press >       |        |         |n          |
19498 |  n     |        ^              |              |        |         |           |
19499  <-- <success>    |              |y             |        |      wait 10s       |
19500          |y       |              |              |        |  y      |        n  |
19501          |        |     /------------------\    |        |<-- < btn press > -  |
19502        FUB=0      |     |        |         |    |        |                   | |
19503          |        |    <5s      <20s      >20s  |        |                   | |
19504     working sys   |     |        |         |    |        |                   | |
19505                    -----       FU=1       FU=0  |       /                   /  |
19506                                FUA=0      FUA=1 |      /                   /   |
19507                                  |         |    |     /                   /    |
19508                                   --------------     /                   /     |
19509                                                     /                   /      |
19510                                                    /                   /       |
19511                                                   /                   /        |
19512                                                  /                   /         |
19513      MANUAL Upg <-------------------------------      AUTO Upg <----           |
19514         |                                               |                      |
19515         |                             n                 |        n3            |
19516     < FUA==1 > ---> [ get static IP ] --             < dhcp > --------------   |
19517         |n              ^   |y          |               |                   |  |
19518         |           n3  |   |           |               |y                  |  |
19519     < dhcp > -----------    |           |              /    n               |  |
19520         |y                  |           |     < STYPE==0 > --
19521         |          y        |           |        |y
19522         |<---------- <use non def ip>   | <use non def srvr>
19523         |                   |n          |        |                          |  |
19524         |           y       |      n    |        |                          |  |
19525         |<----------- <use def ip> ---->|        |             n3           |  |
19526         |        n3                     | < use non def srvr > --           |  |
19527     < run http > ---------------------->|        |               |       n3 |  |
19528         |                               |        |      < use def srvr > -->|  |
19529    / user interaction /                 |        |               |y         |  |
19530         |                               |        |<--------------           |->|
19531         |        n3                     |        |     n3                   |  |
19532     < download > ---------------------->|  < connect > -------------------->|  |
19533         |                n3             |        |y                         |  |
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 > ------------>   |
19542         |                               |         |                            |
19543         |                               |   FU=0,FUA=0,FUB=0                   |
19544         |                               |         |                            |
19545         |                               |          --------------------------->|
19546         |                                --------- FU=1,FUA=0 ---------------->|
19547         |                                       and  3 secs blinking           |
19548         |                                                                      |
19549          --------------------------------------------------------------------->
19550                                                                               }}}4
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
19576                                                                       }}}3 }}}2
19577                                                             the old big picture {{{2
19578                                                                                      
19579    --------------------------> RESET/BOOT <------------------------------------------------------------------------
19580   |                            ----------                                                                          |
19581   |                                |             y                                                                 |
19582   |                         < FU==1 ||  FUB==1 > ---------------> UPGRADE                                          |
19583   |                                |n             ^                  |                                             |
19584   |                                |              |           load UpgK + UpgFS                                    |
19585   |                                |              |                  |                                             |
19586   |                                |              |           y      |                                             |
19587   |                                |              |         --- < FUA==1 >                                         |
19588   |                       n        |              |        |         |n                                            |
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
19604                                                          |                           |      |          n3      |   |
19605                                                          |        n3                 |  < burn flash > --------|   |
19606                                                      < run http > -------------------|      |                n3|   |
19607                                                          |                           |  < update boot info > --    |
19608                                                     / user interaction /             |      |                      |
19609                                                          |        n3                 |    FU=0                     |
19610                                                      < download > -------------------|      |                      |
19611                                                          |                n3         |       --------------------->|
19612                                                      < verify integrity > -----------|                             |
19613                                                          |          n3               |                             |
19614                                                      < burn flash > -----------------|-------- FU=1,FUA=0 -------->|
19615                                                          |            n3             |    and 3 secs blinking      |
19616                                                  < update boot info > ---------------                              |
19617                                                          |                                                         |
19618                                                   FUA=0,FU=0,FUB=0                                                 |
19619                                                          |                                                         |
19620                                                           -------------------------------------------------------->
19621                                                                         }}}2
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.
19626 --- boot_prop_t
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
19632 dsp, sdram clocks
19633 cache size
19634 video format
19635 static IP and TFTP server FQDN.
19636 --- upg_prop_t
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.
19650 --- hw_mng_info_t
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.
19654                                                                       }}}2
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).
19658 - Modified
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...
19664 - New
19665 linux-2.4.x/kad/include/bsl/bsl_eeprom.h
19666 }}}2
19667 FAQ {{{2
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)
19677 Kernel size
19678         SDRAM heap              64MB
19679         MTD                                             y
19680         SCSI (needed for USB)   no
19681         Video                                   no
19682         Sound                                   no
19683         Block devs              y
19684         fs                      w/o FAT,VFAT,smbfs,ftpfs,ntfs
19685         input core              no
19686         USB                                             no
19687         IEEE 1394               no
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.
19693 }}}3
19694 2. to define upgFS ? {{{3
19695                                 a      +        b         +     c
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
19700 apps sizes: {{{4
19701 busybox-1.0    1789K
19702 busybox-1.0           bunzip2,cat,cmp,gunzip,
19703 wget            498K
19704 telnetd         152K
19705 top             331K
19706 smb (x3)       2974K
19707 ppp (x8)       1573K
19708 ftp (x2)        507K
19709 inetd           161K
19710 netstat         304K
19711 expand           83K
19712 lirc           1947K
19713 init            213K x
19714 dhcpcd          270k x
19715 boa             514K x
19716 tftp            167K x (fix patch_002)
19718 busybox-1.0: cat,chmod,gunzip,hostname,ifconfig,ln,md5sum,mount,route,tar,tftp
19719         temp: df,ls,sh
19720                                 SIZE = 716K
19721 dhcpcd = 270K
19722 expand =  83K
19723 boa =    514K
19724                                 - 1.5M -
19725 }}}4
19726 }}}3
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
19737 |->...
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() 
19742 }}}3
19743 4. define Factory settings ! {{{3
19744 Currently only ip address and FQDN for TFTP server.
19745 }}}3
19746 5. create 32M ramfs image ! {{{3
19748 can be used only w/ extgernal heap <80MB
19749 tar -v -t -f obj.tar.gz
19750 }}}3
19751 Upgrade application {{{
19753 --- Questions ---
19754 1. How to do reset ?
19755         standart 
19756 2. How to do blinking ?
19757 3. TFTP connection
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'
19760 4. Integrity
19761         Provided by tar/gunzip
19762 5. Validation
19763 6. Burn file on flash
19764         Current monitor have DSP/BIOS application which use BSL lib also.
19766 --- Checklist ---
19767 +0.  Check if reset button pressed
19769 +1.  Check if has IP and DNS resolving
19771 2 . Read static IP from flash
19773 3.  Setup IP
19775 4.  Read TFTP server name from flash
19777 5.  Get file by tftp
19779 6.  Check integrity
19781 7.  Unzip file
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
19794 11. Reset system
19796 +12. Blinking 
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
19806 }}}2
19808     |    Non upgradable part        |           Upgradable  part   |
19810      ---------------------------------------------------------------
19811     | Boot   | Upg    | Upg | Upg   ||        | Root | Alt  | Logo  |
19812     | Loader | Kernel |  FS |  Info || Kernel |  FS  |  FS  | image |
19813     |        |       |      |       ||        |      |      |       |
19814      ---------------------------------------------------------------
19815      ---------------------------------------------------------------
19816     |                       |                  mtd4                 | upg system
19817     |                                                               | 
19818     |                       |  mtd2  |        | mtd0 | mtd4 |       | main system
19819      ---------------------------------------------------------------
19821 Next {{{3
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 
19837 follows cases:
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
19840   uses default ones.
19841 - ...
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.
19871 }}}3
19872 Fixes {{{2
19873 x fix001
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
19912 }}}2
19913 }}}1
19914 041 - add ftp path to FTP upgrade server {{{1
19915     15jan2006
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
19919 application.
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
19932 }}}1
19933 042 - upgrade fixes - user-50 {{{1
19934     30jan2006
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 <-------------------------------------- 
19950 |                            ----------                                        |
19951 |                                |             y                               |
19952 |                         < FU==1 ||  FUB==1 > ---------------> UPGRADE        |
19953 |                                |n             ^                  |           |
19954 |                                |              |           load UpgK + UpgFS  |
19955 |                                |              |                  |           |
19956 |                                |              |                  |           |
19957 |                                |              |           y      |           |
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  |                  |           |
19968                                FUA=0      FUA=1 |                  |           |
19969                                  |         |    |               wait 10s       |
19970                                   --------------         y        |      n     |
19971                                                        --- < btn press > ---   |
19972                                                       |                     |  |
19973                                                      /                     /   |
19974                                                    /                     /     |
19975                                                   /                    /       |
19976      MANUAL Upg <--------------------------------     AUTO Upg <------         |
19977         |                                               |                      |
19978         |    n3                       n                 |        n3            |
19979     < dhcp > -----> [ get static IP ] --             < dhcp > --------------   |
19980         |y                  |y          |               |                   |  |
19981         |                   |           |               |y                  |  |
19982         |                   |           |              /    n               |  |
19983         |                   |           |     < STYPE==0 > --
19984         |          y        |           |        |y
19985         |<---------- <use non def ip>   | <use non def srvr>
19986         |                   |n          |        |                          |  |
19987         |           y       |      n    |        |                          |  |
19988         |<----------- <use def ip> ---->|        |             n3           |  |
19989         |        n3                     | < use non def srvr > --           |  |
19990     < run http > ---------------------->|        |               |       n3 |  |
19991         |                               |        |      < use def srvr > -->|  |
19992    / user interaction /                 |        |               |y         |  |
19993         |                               |        |<--------------           |->|
19994         |        n3                     |        |     n3                   |  |
19995     < download > ---------------------->|  < connect > -------------------->|  |
19996         |                n3             |        |y                         |  |
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 > ------------>   |
20005         |                               |         |                            |
20006         |                               |   FU=0,FUA=0,FUB=0                   |
20007         |                               |         |                            |
20008         |                               |          --------------------------->|
20009         |                                --------- FU=1,FUA=0 ---------------->|
20010         |                                       and  3 secs blinking           |
20011         |                                                                      |
20012          --------------------------------------------------------------------->
20014 User big picture                                                            {{{
20015                                                      upgrade
20016  --------------------------> SYSTEM BOOT <----- + 3 sec blibking --------------
20017 |                            -----------                                       |
20018 |                                |      y                                      |
20019 |                           < UPGRADE > ---------------> load Upg system       |
20020 |                                |n             ^               |              |
20021 |                                |              |    y          |              |
20022 |                                |              |   -- < Factory Settings >    |
20023 |                                |              |  |            |n             |
20024 |                         n      |              | copy FS to    |              |
20025 |      IPSTB <------------- < btn press >       | volatile and  |              |
20026 |                 ^              |              | delete others |              |
20027 |                 |              |y             |  |            |              |
20028 |                 |              |              |   ----------->|              |
20029 |                 |      ------------------     |               |              |
20030 |                 |     |        |         |    |          wait 10 sec         |
20031 |                 |    <5s      <20s      >20s  |               |              |
20032 |                 |     |        |         |    |               |              |
20033 |                  -----      upgrade  factory  |      y        |      n       |
20034 |                                |     settings |    --- < btn press > ---     |
20035 |                                |         |    |   |                     |    |
20036 |                                 --------------    |                     |    |
20037 |                                                  /                      |    |
20038 |    MANUAL Upg <---------------------------------    AUTO Upg <----------     |
20039 |       |                                               |                      |
20040 |       |    n3                                         |        n3            |
20041 |   < dhcp > -----> <use volatile ip>             < dhcp > ------------------->|
20042 |       |y            y|    |n                     /y                          |
20043 |       |              |    |                     /                            |
20044 |       |<-------------     |                    /    n                        |
20045 |       |                   |             < use ftp > ---------                |
20046 |       |            y      |      n           |y              |               |
20047 |       |<---------- <use FC ip> -->           |      <use volatile tftp>      |
20048 |       |                           |          |         y|    |n              |
20049 |       |                           |          |          |    |               |
20050 |       |        n3                 |          |<---------     |               |
20051 |   < run http > ------------------>|          |               |       n       |
20052 |       |                           |          |       < use FC tftp > ------->|
20053 |  / user interaction /             |          |               |y              |
20054 |       |                           |          |<--------------                |
20055 |       |                           |          |     n3                        |
20056 |       |                           |    < connect > ------------------------->|
20057 |       |                           |          |y                              |
20058 |        -------------------------->|<---------                                |
20059 |                                   |                                          |
20060 |                                   |     n3                                   |
20061 |                            < download > ------------------------------------>|
20062 |                                   |y                                         |
20063 |                                   |          n3                              |
20064 |                         < verify integrity > ------------------------------->|
20065 |                                   |y                                         |
20066 |                                   |                                          |
20067 |                                   |        n3                                |
20068 |                             < burn flash > --------------------------------->|
20069 |                                   |y                                         |
20070 |                                   |                                          |
20071 |                                   |          n3                              |
20072 |                         < update boot info > -------------------------------> 
20073 |                                   |y
20074 |                                   |
20075 |                               delete flags
20076 |                                   |
20077 |                                   |
20078  -----------------------------------
20079                                                                               }}}
20080 }}}1
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
20097 config/.config-upg
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) {{{
20103 Theory {{{
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
20111 upgrade system.
20113                           bootloader
20114                               |
20115                            btn check
20116                               |
20117                         -------------
20118                        |      |      |
20119                       <5s   <20s   >20s
20120                        |
20121                   n    |  y
20122                  -- if FU -------
20123                 |                |
20124             n   |   y            |
20125      ------- if FUB ------       |
20126     |                     |      |
20127     |                n    |   y  |
20128     | <--------------- cnt==0 ---
20129   set FUB                        |
20130     |                            |
20131   dec cnt                        |
20132     |                            |
20133    main                         upg
20134   system                       system
20135     |                            |
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
20149 that case.
20152 Changes {{{
20153 New bsl 4.11 brings follows files to <linux>/kad/dm642/ :
20154     ec628_bsl_v4.lib
20155     mdm3_hdbsl_v4.lib
20156     mdm3_sdbsl_v4.lib
20157     mdm_bsl_v4.lib
20158     media_adapter_bsl_v4.lib
20159     pci_per_bsl_v4.lib
20160 and header files to <linux>/kad/include/bsl/ :
20161     bsl_serial.h
20162     bsl_queries.h -> bsl_queries_v4.h w/ little changes
20163     bsl_eeprom.h
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.
20177 Changed|new files:
20178 vendors/TI/TMS320C6/product.sh
20179 vendors/TI/TMS320C6/Makefile
20180 vendors/TI/TMS320C6/rc_bslv4
20181 }}}2
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
20186 config/.config-upg
20187 }}}2
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
20193 }}}2
20194 Fix bug in manual upgrade (user-54) {{{2
20195 Do not run boa in background mode from system()
20196 user/upgrade/upgrade.c
20197 }}}2
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)
20204 kad - same
20206 changed files:
20207 linux-2.4.x/.config-wave300-upg
20209 Theory {{{3
20210 Log sessions started by magic counter, where each record could length from 1K
20211 to 4K maximum.
20212 All messages collected in buffer, which can be written to flash at 3 stages:
20213 - upgrade finished successful
20214 - error occured
20215 - special point in upgrade flow reached (FTP connect, TFTP connect, HTTP started)
20217 START
20218 |-vfork()
20219 |-chdir()
20220 |-signal()
20221 |_read_upgflags()
20222   |->open()
20223   |_>read()
20224 R2FS                        {{{
20225 |-init_uinfo()
20226 | |->open()
20227 | |_>ioctl()
20228 |-reset_fac_settings()
20229 | |_>set_fac_settings()
20230 |    |_>write_udata()
20231 |       |->read_udata()
20232 |       |  |-> lseek()
20233 |       |  |_> read()
20234 |       |_>burn_udata()
20235 |          |-> malloc()
20236 |          |-> read_uinfo()
20237 |          |_> burn_uinfo_block()
20238 |              |->ioctl()
20239 |              |->ioctl()
20240 |              |->ioctl()
20241 |              |->lseek()
20242 |              |->write()
20243 |              |->sys_config()
20244 |              |_>ioctl()
20245 |_write_upgflags()
20246   |-> open()
20247   |_> write()               }}}
20248 BTN                         {{{
20249 |_clone()
20250   |_> checkBUTTON()
20251       |-> open()
20252       |_> read()            }}}
20253 DNS                         {{{
20254 |-system()
20255 |_clone()
20256   |_> checkDNS()
20257       |_> gethostbyname()   }}}
20258 FTP                        {{{
20259 |_download_ftp()
20260   |->init_uinfo()
20261   |  |->open()
20262   |  |_>ioctl()
20263   |->get_all_params()
20264   |  |_> read_udata()
20265   |      |-> lseek()
20266   |      |_> read()
20267   |->open()
20268   |->write()
20269   |_>system()               }}}
20270 TFTP                        {{{
20271 |_download_tftp()
20272   |->get_tftp_server_name()
20273   |  |-> init_uinfo()
20274   |      |->open()
20275   |      |_>ioctl()
20276   |  |_> get_tftp_server()
20277   |_system()                }}}
20278 HTTP                        {{{
20279     set static IP
20280     start boa               }}}
20281 ARCH                        {{{
20282 Open archive
20283     unzip
20284     untar                   }}}
20285 FLSH                        {{{
20286     open device
20287     get device parameters
20288     is erasesize supported
20289     is altfs - jffs2 image
20290     unlocking
20291     erase all sectors
20292     is enough room for rootfs
20293     burn uinfo sector
20294     burn kad
20295     burn kernel
20296     burn log
20297     burn rootfs
20298     burn altfs
20299     locking
20300     verify stage            }}}
20301 FIN                         {{{
20302     set upgrade flags
20303     reboot                  }}}
20304 }}}3
20305 }}}2
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
20322 config/.config-upg
20323 linux-2.4.x/.config-wave300-upg
20325 cvs rtag -R infra-30 uClinux-infra
20326 cvs rtag -R user-54 uClinux-user
20328 }}}1
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
20355 }}}1
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
20370 Changed files:
20371 config/.config-upg
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 {{{
20391 building
20392 cvs co 
20393 `cd ~'
20394 `mkdir gcc2c-build'
20395 `cd gcc2c-build'
20396 `export CC=gcc32'
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) {{{
20411     27mar2006
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
20416 SSL cancelation.
20417 Import to cvs:
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
20423 Changed files:
20424 apps/Makefile
20425 config/config.in
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 {{{
20435 # 1010
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.
20440 # 1030
20441 if upg flags 00, it's become 80. Bug in /etc/rc main system
20442 solution: fix vendors/TI/TMS320C6/rc_bsl4
20443 # 954
20444 if any file missing in upgrade tarball, no retry w/ TFTP fallback.
20445 solution: retry added.
20446 # 949
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.
20452 # 1032
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 {{{
20478     27apr2006
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
20483 libssl directory.
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
20494     25may2006
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{{{
20503     22may2006
20504 * user/upgrade2 user/upgrade2/libupg user/upgrade2/cgi
20505 * config/.config-main
20506 * config/.config-upg
20507 * config/.config-upg-dbg
20508 * config/config.in
20509 * vendors/TI/TMS320C6/Makefile
20510 * user/busybox-1.00/networking/tftp.c
20511 * user/Makefile
20514 054 - (user-61) add route & ifconfig to upg2 {{{
20515     28may2006
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 {{{
20529     21jun2006
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
20539 Run it.
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/':
20550 Makefile
20551 libbsl/bsl_flash.c
20552 libbsl/bsl_flash_def.h
20553 libbsl/bsl_onboard_flash_params.h
20554 libbsl/Makefile
20555 libbsl/mdm3_cpld.c
20556 libbsl/mdm3_cpld.h
20557 libbsl/MT28FxxxJ3_x8.c
20558 fupg/Makefile
20559 fupg/fupg.c
20560 fupg/burn_mng.c
20561 fupg/burn_mng.h
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
20566 by CPLD.
20567 changed libbsl/bsl_flash.c
20569 cvs rtag -R user-65 uClinux-user
20571 PPPOE release {{{
20572     25jul2006
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
20577  ax bootloader
20578  bx application API
20579     pppoe params definitions:
20580         user 3 - 128
20581         pass 3 - 128
20582         mtu 1 - 5 
20583  cx upgrade app flow
20584 4. Add pppoe to upgrade app
20586 25jul2006 status
20587 Done everything except connect itself. Have to change upgrade flow to connect
20588 through pppoe and minimize pppoe package (>600KB).
20589 changed files:
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.
20626 malloc {{{1
20627         30may2005
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)
20633   If succed
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().
20638 __heap_alloc()
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.
20644 }}}1
20645 Macromedia Flash (ANT plugin) performance {{{2
20647 To build:
20648 cd prjs
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/...
20653 flash games URLs:
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
20659 2. Add stripping
20662 }}}2
20664 Java {{{1
20666 1. To run JEVM as described in doc. Be able to run tests and benchmarks.
20667    can run tests.
20668    can run benchmarks.  
20669 2. to run MIDP demo
20670    can do.
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.
20674    ? - can't install
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...)
20691 }}}2
20693 28apr2005 {{{2
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:
20700 untar
20701 configure --prefix=/opt/x86/classpath
20702 make
20703 make install
20705 Run examples:
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/
20709 unzip examples.zip
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
20716 make
20717 make install
20719 }}}2
20721 Build javm {{{2
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)
20735 Near 11 makefiles.
20737 configure --prefix=/opt/x86/javm 
20738 }}}2
20740 }}}1
20741 Timezone {{{1
20742         11may2005
20743 Theory{{{3
20744 from uClibc FAQ:
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):
20749         :characters
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]]]
20755 where: {{{4
20756 - std and dst -
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.
20769 - offset -
20770         Indicates the value added to the local time to arrive at Coordinated Universal Time. The offset has the form:
20771         hh[:mm[:ss]]
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 '+' ).
20773 -rule -
20774 Indicates when to change to and back from the alternative time. The rule has 
20775 the form:
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 
20784         February 29.
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.
20793 }}}4
20794 }}}3
20795 }}}1
20796 STL {{{1
20797         04jul2005
20798 Start project STLportForceInstantiations.pjt
20799 Change paths for libs and includes. Remark call for lddk.h in follows:
20800 src/c_locale.c
20801 src/stlport_prefix.h
20802 Add to BuildOptions-Diagnostic at `-pds=77'
20804 Build procedure:
20805 Rebuild on project STLportForceInstantiations.pjt
20806 Inc build of project STLportLib.pjt
20808         01aug2005
20809 The tests not running, but hello do.
20810 }}}1
20811 GPIO changes {{{1
20812         20sep2005
20814 GPIO initialization happened in bsl_init() from arch/tms.../bsl/bsl_common.c
20815 where used follow GPIO API funcs:
20816         GPIO_open
20817         GPIO_config
20818         GPIO_pinEnable
20819         GPIO_pinDirection
20820         GPIO_pinWrite
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 
20830         gpio_pinEnable()
20831         gpio_pinDirection()
20832         gpio_pinWrite()
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);
20859 }}}2
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
20872 }}}1
20873 new TI compiler wrapper {{{1
20874         05apr2005 01may2005 14jan2006
20876 Common idea {{{2
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.
20888 }}}2
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[] =
20899 {"@c",
20900              "%{E|M|MM:%(trad_capable_cpp) %(cpp_options) %(cpp_debug_options)}\
20901       %{!E:%{!M:%{!MM:\
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} \
20907           %(cc1_options)}\
20908         %{!save-temps:%{!traditional-cpp:%{!no-integrated-cpp:\
20909           cc1 %(cpp_unique_options) %(cc1_options)} } }\
20910         } } }", 0},
20913 }}}2
20914 Build & install gcc core {{{2
20915 version 3.4.3 {{{3
20916 untar gcc-core-3.4.3.tar.bz2
20917 cd gcc-3.4.3
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
20920 make install
20921 }}}3
20922 gcc-4.0.0 {{{3
20923 untar gcc-core-4.0.0.tar.bz2
20924 cd gcc-4.0.0
20925 mkdir softier
20926 cd softier
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
20929 make install
20930 }}}3
20931 gcc-4.0.2 {{{3
20932 untar gcc-core-4.0.2.tar.bz2
20933 cd gcc-4.0.0
20934 mkdir softier
20935 cd softier
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
20940 make install
20941 }}}3
20942 Follows files installed (starts at /usr/local/tools/wrapper): {{{3
20943 bin/
20944         cpp
20945         gcc
20946         gccbug
20947         gcov
20948     i686-pc-linux-gnu-gcc
20949     i686-pc-linux-gnu-gcc4.0.2
20950 include/
20951     mf-runtime.h
20952 info/
20953     6 info files
20954 lib/
20955     gcc/i686-pc-linux-gnu/4.0.2/
20956         crt files
20957         libgcc.a
20958         libgcov.a
20959             (specs - not exist at 4.0.2)
20960         libiberty.a
20961     libmudflap.a
20962     libmudflapth.a
20963 libexec/gcc/i686-pc-linux-gnu/4.0.2/
20964         cc1
20965         collect2
20966 man/
20967     man1/
20968     man7/ ...
20969 share/
20970 }}}3
20971 }}}2
20972 TODO:
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'
20979 + 6.  run it
20980 status {{{2
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
20986 }}}2
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
20992 procedure {{{2
20993 Change files:
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
21012 }}}2
21015 Left problems:
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.
21024 Info:
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
21036 pass-exit-codes
21043 pipe
21044 combine
21045 help
21046 target-help
21047 -version
21048 }}}3
21049 Options controlling C lang {{{3
21050 ansi
21051 std=
21052 aux-info
21053 fno-asm
21054 fno-builtin
21055 fno-builtin-
21056 fhosted
21057 ffreestanding
21058 fms-extensions
21059 trigraphs
21060 no-integrated-cpp
21061 traditional
21062 traditional-cpp
21063 fcond-mismatch
21064 funsigned-char
21065 fsigned-char
21066 fsigned-bitfields
21067 funsigned-bitfields
21068 fno-signed-bitfields
21069 fno-unsigned-bitfields
21070 }}}3
21071 Warning options
21072 C-only warnings
21073 Debugging options {{{3
21075 dumpspecs
21076 dumpmachine
21077 dumpversion
21078 fdump-unnumbered
21079 fdump-translation-unit
21080 fdump-class-hierarchy[-n] 
21081 fdump-ipa-all
21082 fdump-ipa-cgraph
21083 fdump-tree-all
21085 fvar-tracking
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
21090 save-temps
21091 time
21092 }}}3
21093 Optimization options
21094 Preprocessor options {{{3
21095 Xpreprocessor
21098 undef
21101 Wall
21102 Wcomment
21103 Wcomments
21104 Wtrigraphs
21105 Wtraditional
21106 Wimport
21107 Wundef
21108 Wunused-macros
21109 Wendif-labels
21110 Werror
21111 Wsystem-headers
21113 pedantic
21114 pedantic-errors
21124 fpch-deps
21125 fpch-preprocess
21128 ansi
21130 nostdinc
21131 nostdinc++
21132 include
21133 imacros
21134 idirafter
21135 iprefix
21136 iwithprefix
21137 iwithprefixbefore
21138 isystem
21139 iquote
21140 fdollars-in-identifiers
21141 fpreprocessed
21142 ftabstop
21143 fexec-charset
21144 fwide-exec-charset
21145 finput-charset
21146 fworking-directory
21147 fno-show-column
21153 traditional-cpp
21154 trigraphs
21155 remap
21156 help
21157 target-help
21160 version
21161 }}}3
21162 Assembler options {{{3
21164 Xassembler
21165 }}}3
21166 Linker options {{{3
21168 nostartfiles
21169 nodefaultlibs
21170 nostdlib
21173 static
21174 shared
21175 shared-libgcc
21176 static-libgcc
21177 symbolic
21178 Xlinker
21181 }}}3
21182 Options to search dirs for header files, libraries and parts of compiler
21183 Directory search options {{{3
21185 iquote
21188 specs=
21190 }}}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 
21205 ftls-model=model 
21206 ftrapv  -fwrapv  fbounds-check 
21207 fvisibility
21208 }}}3
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
21238   -q                   Quiet Mode
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
21245 }}}3
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)
21255 }}}3
21256 Parser Options {{{3
21257   --exceptions         Enable C++ exception handling
21258   -pc                  Multibyte character support
21259   -pe                  Embedded C++
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
21269 }}}3
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
21277 }}}3
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
21282   -pdr                 Issue remarks
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
21289 }}}3
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
21309 }}}3
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
21316 }}}3
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.)
21321 }}}3
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
21334 }}}3
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)
21341 }}}3
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 .)
21348 }}}3
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
21357 }}}3
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:
21362 General Options:
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>
21391 }}}3
21392 }}}2
21393 }}}1
21394 toolchain {{{1
21395     05jan2005
21397 STATUS:
21398     05jan2005
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.
21403 TODO:
21404 1. release of toolchain, based sparc converter
21405 2. release of toolchain, based cil converter
21406 3. autotools improvement
21408 1. wrapper {{{2
21410 build {{{3
21411 run 'gcc2c_scripts/make-wrapper.sh'
21412 changed follows:
21413         gcc2c_scripts/make-wrapper.sh
21414         gcc2c-wrapper/gcc2c-compiler-wrapper.cpp (only warnings):
21415 }}}3
21416 code {{{3
21418 GCC2C_CCS_PDK_ROOT
21419 GCC2C_PDK_INCLUDE_PATH
21420 GCC2C_WRAPPER_TEMPDIR
21421 GCC2C_LOGFILE
21422 GCC2C_NOSTDINC
21423 GCC2C_NOSTDLIB
21424 GCC2C_LIBPTHREAD
21425 GCC2C_DEBUG_MODE
21426 GCC2C_MAKE_PJT_FILE
21427 GCC2C_ABORT_EXIT
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
21460 Algo
21462 Exit w/ error if
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
21473 }}}3
21475 shahar's wrapper {{{3
21477 Env vars usage {{{4
21478 GCC2C_CCS_PDK_ROOT
21479 GCC2C_PDK_INCLUDE_PATH
21480 GCC2C_WRAPPER_TEMPDIR
21481 GCC2C_LOGFILE
21482 GCC2C_WRAPPER_SAVETEMPS - ??? 
21483 GCC2C_NOSTDINC
21484 GCC2C_NOSTDLIB
21485 GCC2C_LIBPTHREAD
21486 GCC2C_DEBUG_MODE
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
21516 }}}4
21518 Exit w/ error if
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
21548     + CCS_COMPILER_BIN
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
21560 fno-builtin
21561 fno-builtin-abs
21562 fno-show-column
21563 finline-functions
21564 fno-common
21565 fno-show-column
21566 fno-strict-aliasing
21567 fomit-frame-pointer
21568 fno-omit-frame-pointer
21569 fstrict-aliasing
21570 nostdinc
21571 pedantic
21572 pedantic-errors
21573 traditional
21574 traditional-cpp
21575 iwithprefixbefore
21576 iwithprefix
21577 Werror
21578 Wuninitialized
21579 Wsign-compare
21580 Wmissing-format-attribute
21581 Wno-format-extra-args
21582 Wcast-qual
21583 Wconversion
21584 Wunused
21585 Wno-format-y2k
21586 Wno-trigraphs
21587 Wparentheses
21588 Wreturn-type
21589 Wswitch
21590 Wunknown-pragmas
21591 Wunreachable-code
21592 Wformat-security
21593 Wsequence-point
21594 Wmissing-noreturn
21595 Wno-long-long
21596 Wformat-nonliteral
21597 Wshadow
21598 Wstrict-prototypes
21599 Wtraditional
21600 Wtrigraphs
21601 Wwrite-strings
21602 Wall
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:
21608 (!idirafter)
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)
21616 Wa - `Wa'(GCC)
21617 Wp - `Wp'(SPARC,CIL)
21618 Wl - `Wl'(GCC)
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)
21622 v - 
21623 P - as is CIL and GCC
21624 M,E - SPARC,CIL,GCC
21625 n - error???
21626 D - SPARC,CIL,GCC, `d'(CCS)
21627 o -
21628 L -
21630 U -
21631 c -
21632 S - 
21633 g -
21634 p -
21635 I - SPARC,CIL,GCC, `i'(CCS)
21636 }}}3 
21637 }}}2
21639 fixes:
21640 apps/Makefile
21641 linux-2.4.x/kad/bios/Makefile
21642 Makefile
21643 user/init/Makefile
21645 Patch build 132_23_41_42
21646 get source
21647 get patch source
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
21656 `cd uClinux-dist'
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_
21669 cd ..
21670 ./pack -l./headers-n-libraries/il-1.2.38 -rsdk-v05-x.x.xx.tar 05-1.2.38
21672 }}}1
21673 boa-php {{{
21674     09jul2006
21675 The purpose to build php as cgi for boa and demonstrate it with my glib,
21676 based gd.
21678 package 5.1.4 {{{
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.
21705               Manager
21706                  |
21707      ------> new upg mission
21708     |            |
21709     |            | <------------------------
21710     |            |                          |
21711     |            |      n                   |
21712     |        new connection ---             |
21713     |            |y            |            |
21714     |            |             |            |
21715     |        remote shell      |            |
21716     |            |             |            |
21717     |            | <-----------             |
21718     |            |       n                  |
21719     |        job status done ---------------
21720     |            |y
21721     |            |           n
21722     |        is next mission ---
21723     |            |y             |
21724      -----------                |
21725                                 |
21726                                EXIT
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
21740               Manager
21741                  |
21742      ------> new upg mission
21743     |            |
21744     |            | <---------
21745     |            |       n   |
21746     |        status done ----
21747     |            |y
21748     |            |           n
21749     |        is next mission ---
21750     |            |y             |
21751      -----------                |
21752                                 |
21753                                 EXIT
21755 Statuses (20):
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)
21765         success
21766         no route to host
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)
21772         success
21773         no route to host
21774         no tftp service on host
21775         no upg archive on tftp server
21777 C USB
21778         success
21779         no DiskOnKey
21780         no upg archive on DOK
21782 D HTTP (+-DOK, +-DHCP)
21783         download success
21784         upload success
21786 E OPEN (+-DOK, +-DHCP)
21787         fail to open archive
21788         fail to open tarball
21789         wrong tarball content
21791 Telnet flow
21792         +-DHCP
21795 Upgrade wave400 {{{
21796     21jun2006
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
21808 uninstall file.
21810 --- Acronyms ---
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 
21822         filesystems.
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
21828 of remote control.
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
21849 LLDD
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
21859 - connect to US
21860 - builds upgrade image name
21861 - download image
21862 - opens and verifies upgrade image
21863 - burns image
21864 - update UUI, during whole process
21867 Upgrade status {{{
21868 High
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
21877 3.  Partial upgrade
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
21882 3.  Bugs 
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
21886            too long.
21887 Postponed
21888 1.  Make upgrade kernel to production (waits for Hannit permission)
21889 2.  Ability to write at upgrade filesystem (more ~700KB)
21891 davinci {{{
21892     30may2006
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)
21899     MMU
21900     instruction cache (I-Cache 16KB)
21901     data cache (D-Cache 8KB)
21902 ARM internal memories
21903     16KB RAM (32bit)
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
21908     PLL controller
21909     Power 'n' Sleep controller
21910     System module
21912 ARM926EJ-S (from DDI0198D_926_TRM.pdf)
21915 NAND {{{
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
21933 Build kernel {{{
21934     07jun2006
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
21954 Build uboot {{{
21955     07jun2006
21956 cd u-boot
21957 [make distclean]
21958 make davinci_config
21959 make ARCH=arm CROSS_COMPILE=arm_v5t_le-
21961 Boot flow {{{
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
21970     ARM NAND boot
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.
21985 Uboot flow {{{
21986     12jun2006
21987 start.S (cpu/arm926ejs/)  
21988 |-> start_armboot() (lib_arm/board.c)
21989 |   |-> cpu_init() (cpu/arm926ejs/cpu.c)
21990 |   |
21991 |   |-> board_init() (board/davinci/davinci.c)
21992 |   |   |-> ...
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)
21996 |   |
21997 |   |-> interrupt_init() (cpu/arm926ejs/interrupts.c)
21998 |   |
21999 |   |-> env_init() (common/env_nand.c) - just set env to valid, cause called
22000 |   |   before nand_init()
22001 |   |
22002 |   |-> init_baudrate() (lib_arm/board.c)
22003 |   |   |-> getenv_r() (common/cmd_nvedit.c)
22004 |   |   |   |-> env_get_char() (common/env_common.c)
22005 |   |
22006 |   |-> serial_init()
22007 |   |
22008 |   |-> console_init_f()
22009 |   |
22010 |   |-> display_banner() (lib_arm/board.c) - show address of _armboot_start,
22011 |   |   _bss_start and _bss_end from (cpu/arm926ejs/start.S)
22012 |   |
22013 |   |-> dram_init() (board/davinci/davinci.c) - set global value of SDRAM start
22014 |   |   and size
22015 |   |
22016 |   |-> display_dram_config() (lib_arm/board.c) - shows info set by dram_init()
22017 |   |
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)
22022 |   |
22023 |   |-> display_flash_config()
22024 |   |
22025 |   |-> mem_malloc_init() (lib_arm/board.c) - prepare chunk of memory for 
22026 |   |   malloc
22027 |   |
22028 |   |-> nand_init() (board/davinci/davinci.c)
22029 |   |   |_> nand_probe()
22030 |   |
22031 |   |-> env_relocate() (common/env_common.c)
22032 |   |
22033 |   |-> get IP addr from env
22034 |   |
22035 |   |-> set MAC addr
22036 |   |
22037 |   |-> devices_init() (common/devices.c) - init list of devices
22038 |   |   |->i2c_init() (drivers/davinci_i2c.c)
22039 |   |   |-> ...
22040 |   |
22041 |   |-> jumptable_init() (common/exports.c)
22042 |   |
22043 |   |-> console_init_r() (common/console.c)
22044 |   |
22045 |   |-> misc_init_r() (board/davinci/davinci.c)
22046 |   |   prints - `ARM Clock' 'n' `DDR Clock'
22047 |   |
22048 |   |-> enable_interrupts() (cpu/arm926ejs/interrupts.c)
22049 |   |
22050 |   |-> emac_set_mac_addr() - (board/davinci/dm644x_emac.c) network card init
22051 |   |
22052 |   |_> main_loop() (common/main.c)
22055 video driver - drivers/video/davincifb.c
22056 uboot on pc x86 {{{
22057     15jun2006
22058 1. How to load it? Like GRUB, the same.
22059 2. Hardware init?
22062 building minimo {{{
22063     10jul2006
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
22067     dependencies
22069 Building Minimo from CVS (10jul2006 see cmn.txt)
22070     30jul2006
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
22094 gdk_x11_gc_get_xgc
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
22099 gdk_display
22100 gdk_x11_image_get_ximage
22101 gdk_x11_colormap_get_xcolormap
22103 Remove `-lX11' from config/autoconf.mk brings follows {{{
22104 XGetImage
22105 XChangeGC
22106 XCreateImage
22107 XFillRectangle
22108 XPutImage
22109 XSetDashes
22110 XSetErrorHandler
22111 XCheckIfEvent
22112 XGetInputFocus
22113 XRaiseWindow
22114 XSetInputFocus
22115 XGetWindowAttributes
22116 XSelectInput
22117 XSync
22118 XCheckWindowEvent
22119 XFlush
22120 XServerVendor
22121 XPending
22122 XChangeProperty
22123 XSendEvent
22124 XQueryTree
22125 XFree
22126 XInternAtom
22128 Follows canceled by removing xremoteclient and gtkxtbin {{{
22129 XtStrings
22130 XtShellStrings
22131 XtDisplay
22132 XtOpenDisplay
22133 XtDisplayToApplicationContext
22134 XtAddEventHandler
22135 XtRemoveEventHandler
22136 XtAppProcessEvent
22137 XtWindowToWidget
22138 XtWindow
22139 XtDestroyWidget
22140 XtUnrealizeWidget
22141 XtRealizeWidget
22142 XtVaCreateWidget
22143 XtAppPending
22144 XtToolkitInitialize
22145 XtCreateApplicationContext
22146 XtAppSetFallbackResources
22147 XtAppCreateShell
22148 XtUnregisterDrawable
22149 XtRegisterDrawable
22150 XtManageChild
22151 XtSetValues
22152 compositeWidgetClass
22153 applicationShellWidgetClass
22156 02aug2006 {{{
22157 Usage gdk/gdkx.h
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
22174 FT2 issues
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 {{{
22188         10aug2006
22189 get firefox-1.5.0.6-source.tar.bz2
22190 tar jxf firefox-1.5.0.6-source.tar.bz2
22191 cd mozilla
22192 export MOZCONFIG=
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
22198   mozilla/configure
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 {{{
22219         10aug2006
22220 get firefox-1.5.0.6-source.tar.bz2
22221 tar jxf firefox-1.5.0.6-source.tar.bz2
22222 cd mozilla
22223 export MOZCONFIG=
22224 make -f client.mk build
22225 Change `configure' to accept xlib+xft
22226 FT2 issues
22227   gfx/idl/nsIFreeType2.idl
22228   gfx/src/freetype/nsFreeType.h
22229   gfx/src/freetype/nsFreeType.cpp
22232 Build ??? based cairo-gtk2 on trunk {{{
22233 06aug2006
22234 FT2 issues
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 {{{
22240         07aug2006
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 {{{
22260         13sep2006
22261 XSetErrorHandler done {{{
22262 Used in follows
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 {{{
22269 Used in follows
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
22277 it from queue.
22278 Used in follows
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
22293 XSync {{{
22294 Used in follows
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
22307 DMX {{{
22308         19sep2006
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.
22316 OSD scaler
22317 Primary video scaler
22318 Secondary video scaler
22319 Logotype scaler
22320 Subtitle 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 {{{
22329         26sep2006
22330 source sigma8634.src
22331 export PREFIX=/opt/sigma8634/dfb
22332 export EPREFIX=/mnt/dfb
22334 libpng
22335 Delete `AC_FUNC_MALLOC' from configure.ac
22337 FreeType 
22338 Fixed builds/exports.mk in order to use apinames tool in cross compile
22339 environment.
22341 DirectFB
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
22345 Commit source
22346 cd DirectFB {{{
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"
22356 Add tiff-3.7.4 
22357 Add jpeg-6b to creator.sh
22360 porting GTK (based DFB) to sigma8634 {{{
22361         15oct2006
22362 Insert all source in subversion {{{
22363                 FONTCONFIG
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
22370                 GLIB
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
22377                 LIBICONV
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
22384                 GETTEXT
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
22391                 GTK+
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
22398                 PANGO
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
22405                 ATK
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
22412                 CAIRO
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
22419                 LIBXML2
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
22426                 JPEG
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
22433                 TIFF
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:
22443 gtk2-devel-*.rpm
22445 zlib
22447 jpeg
22448 ftype
22451 #iconv
22452 #gettext
22453 glib (deps: iconv)
22454 #libxml2
22455 fconfig
22458 cairo
22459 pango
22464 porting Minimo (based GTKDFB) on sigma8634 {{{
22465         26oct2006
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:
22481 libIDL-devel
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
22496 Building mozilla
22497 1. build libIDL
22501 New mozilla port to Sigma8634 {{{
22502         05dec2006
22504 Sigma8634 changes:
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}
22511 zlib
22512 gettext (gettext-tools/lib/Makefile.in,gettext-tools/m4/Makefile.in)
22513 jpeg (changed creator.sh - make libtool)
22515 ftype
22518 glib
22519 libxml2
22520 fconfig
22523 cairo
22524 pango
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/
22533 Pango 
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
22539 libIDL
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
22553 released 12dec2006
22555 Minimo project {{{
22556 1. Add libtiff to creator
22557 Creator project
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
22560         parameters)
22561 }}} 
22562 gnash {{{
22563         02jan2007
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
22570 Status:
22571 Checkout source from CVS at 02jan2007
22572 ./autogen.sh
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 ?
22593     No.
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.
22597    
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
22601     to use it.
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>
22626 Theory{{{2
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.
22643         Restrictions
22644         ------------
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
22647         mail spool.
22648 }}}2
22651 II.     #200018/8 ftpd w/ restricted passive ports{{{1
22652 }}}1
22653 III.    #200030/25 mysql down{{{1
22654         change VDS's rc script to log everything. to script ~herman/etc/rc.d/rc
22655         added:
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
22662 2dec2002
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
22668 }}}1
22669 IV.     #300000/135 implementation APOP{{{1
22670 --- Inro ---{{{2
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
22678    database file)
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
22682 --- Open issues
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
22685 w/ APOP.
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.
22701 5. Assume 4 days.
22702 6. There is no influence on POP before SMTP
22703 }}}2
22704 --- Design ---{{{2
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
22709    
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.
22713 }}}3
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
22720         also (see III.1).
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
22734 }}}3
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:
22787                         <mnt_type
22788                         ext_path="sphera\user_scripts\ctlpopdb"
22789                         gui_visible="false"
22790                         key="ctlpopdb"/>
22791                 under user_scripts obj:
22792                         <user_script
22793                                 key="ctlpopdb"
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
22808         complicated.
22810 }}}3
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()
22815         CStringUtils.h
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
22824                 AUTH_ERR
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
22830         string by it.
22831         Change Changes.txt!!!
22832         popper.c
22833         pop_apop.c
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.
22841 }}}3
22842 V. Performance and drawbacks{{{3
22844    1. The APOP database size
22846    2. Performance of qpopper compiled w/ APOP
22847 }}}3
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.
22862         
22864    1. List of recommended tests for QA
22866         Brief instruction
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                  -----------------------------------------------
22873                 |               |         apop_enabled          |
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 
22895                         SD installation)
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.
22909         C. Add VDS user
22910                 Add VDS user (let's name it u1). Check that it is able to get
22911                 emails.
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
22922                 delivered.
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:
22927                         cmd="set"
22928                         keys_path="sphera\accounts\rg1"
22929                         apop_enabled="true"
22930                 )
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
22939                 emails w/ APOP.
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
22944                 
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
22956                 emails by APOP.
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:
22981                         popauth -list ALL
22983    2. Checking w/ real client of customer. Which client used? (Yoram)
22985    3. Create help for customer
22986 }}}3
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
22995         hostname.
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)
23003 }}}3
23004 }}}2
23005 }}}1
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.
23010         Solution:{{{2
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; 
23014   int   fd, nLen;
23016   fd = open("/etc/nodename", O_RDONLY);
23017   if (fd<0)
23018     return;
23019   
23020   nLen = read(fd,vdsName,MAXHOSTNAMELEN * 2 - 1);
23021   close(fd);
23022   
23023   if (nLen <= 0)
23024     return ;
23025   
23026   tmp1 = strtok(vdsName," \t\n");
23027   if (!tmp1)
23028     return;
23029   
23030   if (strlen(tmp1) <= 0)
23031     return;
23033   tkn = strstr(q,tmp1);
23034   while(tkn != NULL) {    
23035     tmp = tkn;
23036     tmp++;
23037     tkn = strstr(tmp, tmp1);
23038     pop_log(p, POP_WARNING, HERE, "tmp trim: %s", tkn);
23039   }
23041   if (tmp != NULL)
23042     tmp--;
23043   else //There is nothing to takeof
23044     return;
23046   if (tmp == q)
23047     return;
23049   tmp--;
23050   if (tmp == q)
23051     return;
23053   //We need to take of the vdsname from the name
23054   *tmp = '\0';
23055 }//}}}2
23057 }}}1
23058 VI.     Backup project{{{1
23060 A. Theory{{{2
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
23081                         2. push create
23082                         3. fill name
23083                 C. Create device
23084                         1. from menu Media->Devices
23085                         2. push create
23086                         3. fill Name(like /export/home/file1), Media type(file)
23087                         4. push Apply
23088                 D. Create label templates
23089                         1. from menu  Customize->Label Templates
23090                         2. push create
23091                         3. fill Name, Fields ( like 000-999)
23092                         4. push Apply
23093                 E. Create pool
23094                         1. from menu Media->Pools
23095                         2. push create
23096                         3. fill Name, Type (like backup), Label Template(choose
23097                                 previously created), Levels(unchecked)
23098                         4. push Apply
23099                 F. Create Schedule
23100                         1. from menu open Customize->Schedules
23101                         2. push create
23102                         3. fill Name
23103                         4. push everyday and change to full
23104                         5. push Apply
23105                 G. Create client
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)
23112                         6. push Apply
23113                 H. Do it
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
23120         }}}3
23121         How to recover w/ Legato{{{3
23122                 1st way (GUI):
23123                 backup device should be mounted
23124                 run nwrecover as root
23125                 2nd way (CmdLine):
23126                 recover -d <dest> -c <client machine> -s <server name>
23127                 -i[N|Y|R] <path to dir>
23128         }}}3
23129 }}}2
23131 B. Sphera backup project{{{2
23132         PRD{{{3
23133         Introduction{{{4
23134                 Product Overview
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
23138                         status.
23139                 Reference
23140                         ------------------------------------------------------
23141                         | Title         |       Date(ver.)      |   Author   |
23142                         ------------------------------------------------------
23143                         |               |                       |            |
23144         }}}4
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
23155                         possession.
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.
23162         }}}4
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
23168         }}}4
23169         Assumptions & Dependencies{{{4
23170                 The only assumption exists that backup would be after HD stoped.
23171         }}}4
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)
23178                 }}}5
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).
23185                 }}}5
23186                 3. The backup file list of HD w/o PSP{{{5
23187                         <HD dir>
23188                         <Accounts dir> if not under <HD dir>
23189                         <Reseller dir> if not under <HD dir>
23190                         /etc/rc.d/
23191                         /var/spool/cron/ 
23192                         /etc/sphera.netconf
23193                         /etc/sphera.conf
23194                         /etc/sphera.repository
23195                                 (slink to <Accounts dir>/.repository)
23196                         /etc/passwd
23197                         /etc/shadow
23198                         /etc/group
23199                         /etc/aliases
23200                         /etc/aliases.db
23201                         /etc/fstab
23202                         /etc/hosts
23203                         /etc/shells
23204                         /usr/bin/sphadmin (not on Sun)
23205                         /etc/xinetd.d/
23206                         /etc/inetd.conf
23207                         /etc/syslog.conf
23208                         /etc/sysconfig/iptables
23209                         /etc/localtime
23210                         /etc/timezone
23211                         /etc/sysconfig/clock
23212                         /bin/nawk
23213                         aquota.user (one per filesystem)
23214                         <sphera base mirror> (one per filesystem)
23215                 }}}5
23216                 4. The backup file list of PSPs{{{5
23217                         ChiliSoft
23218                                 /opt/casp
23219                                 /usr/opt/casp
23220                                 /usr/local/casp
23221                         OpenSSH
23222                                 /usr/local/openssh_sphera
23223                         RealServer
23224                                 <sphera base>
23225                         SharedSSL
23226                                 <sphera base>
23227                         ColdFusion[MX]
23228                                 /opt/coldfusion[mx]
23229                                 /usr/lib/coldfusion
23230                         Legato
23231                                 /usr/bin/networker
23232                                 /usr/bin/nsrfile
23233                                 /usr/bin/nsrports
23234                                 /usr/bin/nsrwatch
23235                                 /usr/bin/nwadmin
23236                                 /usr/bin/nwarchive
23237                                 /usr/bin/nwbackup
23238                                 /usr/bin/nwrecover
23239                                 /usr/bin/nwretrieve
23240                                 /usr/bin/preclntsave
23241                                 /usr/bin/pstclntsave
23242                                 /usr/bin/recover
23243                                 /usr/bin/save
23244                                 /usr/bin/savepnpc
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
23253                                 /usr/lib/nsr/uasm
23254                                 /usr/sbin/mminfo
23255                                 /usr/sbin/mmlocate
23256                                 /usr/sbin/mmpool
23257                                 /usr/sbin/nsr_shutdown
23258                                 /usr/sbin/nsr_support
23259                                 /usr/sbin/nsradmin
23260                                 /usr/sbin/nsralist
23261                                 /usr/sbin/nsrarchive
23262                                 /usr/sbin/nsrclone
23263                                 /usr/sbin/nsrdmpix
23264                                 /usr/sbin/nsrexec
23265                                 /usr/sbin/nsrexecd
23266                                 /usr/sbin/nsrinfo
23267                                 /usr/sbin/nsrmm
23268                                 /usr/sbin/nsrndmp_2fh
23269                                 /usr/sbin/nsrndmp_recover
23270                                 /usr/sbin/nsrndmp_save
23271                                 /usr/sbin/nsrretrieve
23272                                 /usr/sbin/nsrsup
23273                                 /usr/sbin/preclntsave
23274                                 /usr/sbin/pstclntsave
23275                                 /usr/sbin/save
23276                                 /usr/sbin/savefs
23277                                 /usr/sbin/savepnpc
23278                                 /legatoinfo
23279                                 /etc/rc.d/init.d/networker
23280                 }}}5
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 +
23285         Legato PSP.
23286         Solution: to mention in release notes.
23287         }}}5
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.
23296                 To create rpm run
23297                         rpm -bb <file>
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)
23310                 ~integ/3.5/build
23311                 }}}5
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.
23319                 }}}5
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
23324         of VDS.
23325         }}}5
23326         }}}4
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?
23331                 Legato do.
23332                 Veritas?
23333                 3. Does backup tool restore links?
23334                 Legato do.
23335                 Veritas?
23336                 4. Backup/restore w/ files in use.
23337                 Legato do.
23338                 Veritas?
23339                 5. How to run something before backup and after restore?
23340                 Legato?
23341                 Veritas?
23342                 6. Behaviour when backup target not exist?
23343                 Legato. Sends message.
23344                 Veritas?
23345                 7. Restore link when original file not exist?
23346                 Legato?
23347                 Veritas?
23348         }}}4
23350         Procedure
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.
23361                 3. stopping cron
23362                 Run /etc/rc.d/init.d/crond stop w/ root permitions.
23363                 4. save additional information.
23364                 Needed to run 
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
23368                 permitions.
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:
23374                         <HD base>
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>
23381                         /etc/rc.d/
23382                         /var/spool/cron/ 
23383                         /etc/sphera.netconf
23384                         /etc/sphera.conf
23385                         /etc/sphera.repository
23386                         /etc/passwd
23387                         /etc/shadow
23388                         /etc/group
23389                         /etc/aliases
23390                         /etc/aliases.db
23391                         /etc/fstab
23392                         /etc/hosts
23393                         /etc/shells
23394                         /usr/bin/sphadmin
23395                         /etc/xinetd.d/
23396                         /etc/inetd.conf
23397                         /etc/syslog.conf
23398                         /etc/sysconfig/iptables
23399                         /etc/localtime
23400                         /etc/timezone
23401                         /etc/sysconfig/clock
23402                         /bin/nawk
23403                 Files needed to backup ChiliSoft PSP:
23404                         /opt/casp
23405                         /usr/opt/casp
23406                         /usr/local/casp
23407                 Files needed to backup OpenSSH PSP:
23408                         /usr/local/openssh_sphera
23409                 Files needed to backup ColdFusion PSP:
23410                                 /opt/coldfusion
23411                                 /usr/lib/coldfusion
23412                 Files needed to backup ColdFusionMX PSP:
23413                                 /opt/coldfusionmx
23414                                 /usr/lib/coldfusion
23415                 Files needed to backup Legato PSP:
23416                                 /usr/bin/networker
23417                                 /usr/bin/nsrfile
23418                                 /usr/bin/nsrports
23419                                 /usr/bin/nsrwatch
23420                                 /usr/bin/nwadmin
23421                                 /usr/bin/nwarchive
23422                                 /usr/bin/nwbackup
23423                                 /usr/bin/nwrecover
23424                                 /usr/bin/nwretrieve
23425                                 /usr/bin/preclntsave
23426                                 /usr/bin/pstclntsave
23427                                 /usr/bin/recover
23428                                 /usr/bin/save
23429                                 /usr/bin/savepnpc
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
23438                                 /usr/lib/nsr/uasm
23439                                 /usr/sbin/mminfo
23440                                 /usr/sbin/mmlocate
23441                                 /usr/sbin/mmpool
23442                                 /usr/sbin/nsr_shutdown
23443                                 /usr/sbin/nsr_support
23444                                 /usr/sbin/nsradmin
23445                                 /usr/sbin/nsralist
23446                                 /usr/sbin/nsrarchive
23447                                 /usr/sbin/nsrclone
23448                                 /usr/sbin/nsrdmpix
23449                                 /usr/sbin/nsrexec
23450                                 /usr/sbin/nsrexecd
23451                                 /usr/sbin/nsrinfo
23452                                 /usr/sbin/nsrmm
23453                                 /usr/sbin/nsrndmp_2fh
23454                                 /usr/sbin/nsrndmp_recover
23455                                 /usr/sbin/nsrndmp_save
23456                                 /usr/sbin/nsrretrieve
23457                                 /usr/sbin/nsrsup
23458                                 /usr/sbin/preclntsave
23459                                 /usr/sbin/pstclntsave
23460                                 /usr/sbin/save
23461                                 /usr/sbin/savefs
23462                                 /usr/sbin/savepnpc
23463                                 /legatoinfo
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:
23475                         <API>
23476                                 <RESPONSE
23477                                         cmd_id="1"
23478                                         result="OK" />
23479                         </API>
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.
23485         }}}3
23486         Status{{{3
23487         2d      learning legato (12nov,13nov)
23488         1d      how to intervent in backup process.
23489         2d      integration
23490         5d      tests
23491         /etc/rc.d/rc2.d/S99Snamed_hd stop
23492         /etc/rc.d/init.d/crond stop
23493         }}}3
23494         QA procedure{{{3
23495         }}}3
23496 }}}2
23498 C. VDS backup project{{{2
23499         PRD{{{3
23500         Introduction{{{4
23501                 Product Overview
23502                         Product Scope & Definition
23503                         Product Perspective
23504                 Reference
23505                         ------------------------------------------------------
23506                         | Title         |       Date(ver.)      |   Author   |
23507                         ------------------------------------------------------
23508                         |               |                       |            |
23509                 Definitions & Acronyms
23510         }}}4
23511         Product Functionality{{{4
23512                 Major Functionalities - List
23513                 Specific Functionality Specifications
23514                 Database Specifications
23515                 Future - List
23516         }}}4
23517         External Interfaces{{{4
23518                 User Interface - Concept
23519                 Hardware Interface
23520                 System/Software Interface
23521         }}}4
23522         Design Constrains{{{4
23523         }}}4
23524         Assumptions & Dependencies{{{4
23525         }}}4
23526         Performance{{{4
23527                 Static
23528                 Dynamic
23529         }}}4
23530         Attributes{{{4
23531                 1.Reliability
23532                 2.Availability
23533                 3.Security
23534                 4.Maintainability
23535                 5.Portability
23536                 6.Scalability
23537                 7.Usefulness & Friendliness
23538         }}}4
23539         Appendixes{{{4
23540         }}}4
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
23556                         <HD dir>
23557                         <Accounts dir> if not under <HD dir>
23558                         <Reseller dir> if not under <HD dir>
23559                         /etc/rc.d/
23560                         /var/spool/cron/ 
23561                         /etc/sphera.netconf
23562                         /etc/sphera.conf
23563                         /etc/sphera.repository
23564                                 (slink to <Accounts dir>/.repository)
23565                         /etc/passwd
23566                         /etc/shadow
23567                         /etc/group
23568                         /etc/aliases
23569                         /etc/aliases.db
23570                         /etc/fstab
23571                         /etc/hosts
23572                         /etc/shells
23573                         /usr/bin/sphadmin (not on Sun)
23574                         /etc/xinetd.d/
23575                         /etc/inetd.conf
23576                         /etc/syslog.conf
23577                         /etc/sysconfig/iptables
23578                         /etc/localtime
23579                         /etc/timezone
23580                         /etc/sysconfig/clock
23581                 }}}5
23582                 4. The backup file list of PSPs{{{5
23583                         ColdFusion
23584                                 /opt/coldfusion
23585                                 /opt/coldfusionmx
23586                                 /usr/lib/coldfusion
23587                         ChiliSoft
23588                                 /opt/casp
23589                                 /usr/opt/casp
23590                                 /usr/local/casp
23591                         OpenSSh
23592                                 /usr/local/openssh_sphera
23593                         Legato
23594                                 /usr/bin/networker
23595                                 /usr/bin/nsrfile
23596                                 /usr/bin/nsrports
23597                                 /usr/bin/nsrwatch
23598                                 /usr/bin/nwadmin
23599                                 /usr/bin/nwarchive
23600                                 /usr/bin/nwbackup
23601                                 /usr/bin/nwrecover
23602                                 /usr/bin/nwretrieve
23603                                 /usr/bin/preclntsave
23604                                 /usr/bin/pstclntsave
23605                                 /usr/bin/recover
23606                                 /usr/bin/save
23607                                 /usr/bin/savepnpc
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
23616                                 /usr/lib/nsr/uasm
23617                                 /usr/sbin/mminfo
23618                                 /usr/sbin/mmlocate
23619                                 /usr/sbin/mmpool
23620                                 /usr/sbin/nsr_shutdown
23621                                 /usr/sbin/nsr_support
23622                                 /usr/sbin/nsradmin
23623                                 /usr/sbin/nsralist
23624                                 /usr/sbin/nsrarchive
23625                                 /usr/sbin/nsrclone
23626                                 /usr/sbin/nsrdmpix
23627                                 /usr/sbin/nsrexec
23628                                 /usr/sbin/nsrexecd
23629                                 /usr/sbin/nsrinfo
23630                                 /usr/sbin/nsrmm
23631                                 /usr/sbin/nsrndmp_2fh
23632                                 /usr/sbin/nsrndmp_recover
23633                                 /usr/sbin/nsrndmp_save
23634                                 /usr/sbin/nsrretrieve
23635                                 /usr/sbin/nsrsup
23636                                 /usr/sbin/preclntsave
23637                                 /usr/sbin/pstclntsave
23638                                 /usr/sbin/save
23639                                 /usr/sbin/savefs
23640                                 /usr/sbin/savepnpc
23641                                 /legatoinfo
23642                                 /etc/rc.d/init.d/networker
23643                 }}}5
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)
23648                 }}}5
23649         }}}4
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?
23654                 Legato do.
23655                 Veritas?
23656                 3. Does backup tool restore links?
23657                 Legato do.
23658                 Veritas?
23659                 4. Backup/restore w/ files in use.
23660                 Legato do.
23661                 Veritas?
23662                 5. How to run something before backup and after restore?
23663                 Legato?
23664                 Veritas?
23665                 6. Behaviour when backup target not exist?
23666                 Legato. Sends message.
23667                 Veritas?
23668                 7. Restore link when original file not exist?
23669                 Legato?
23670                 Veritas?
23671         }}}4
23672         }}}3
23673         Requirements{{{3
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)
23685                 c.
23686         }}}3
23687         Status{{{3
23688                 Leon to speak about current VDS backup.
23689                 VDS filelist to backup.
23690         }}}3
23691 }}}2
23693 }}}1
23694 VII.    tomcat{{{1
23696 install rpm under VDS{{{2
23697 cd ~VDS
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/
23713 (cp rpm to ~VDS)
23714 chroot <VDS path> /bin/sh
23715 rpm -ivh --force <rpm name>
23717 }}}2
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
23723 from httpd.conf
23724 LoadModule jk_module libexec/mod_jk.so
23725 <IfModule mod_jk.c>
23726     JkWorkersFile conf/workers.properties
23727     JkLogFile logs/mod_jk.log
23728     JkLogLevel debug
23729     JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
23730     JkMount /examples/servlet/* worker1
23731     JkMount /*.jsp worker2
23732     JkOptions +ForwardURICompat
23733 </IfModule>
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
23751     JkLogLevel debug
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
23761 </IfModule>
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"
23766         add follows
23767 cd /var/tomcat4
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
23775         <root>          755     |- bin
23776         <VDS owner>     755     |- common
23777         <VDS owner>     775     |- (conf->) /etc/tomcat4
23778         <VDS owner>     755     |- (logs->) /var/log/tomcat4
23779         <root>          755     |- server
23780         <root>          755        |- lib
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
23787         Sizes ?
23788         Size of /var/tomcat4 4748 kB
23790         Tomcat installation
23791         copy jdk files
23792 rpm2cpio <jdk rpm> | cpio -i --make-directories
23793         copy tomcat files
23794 rpm2cpio <tomcat4-4.1.18-full.1jpp.noarch.rpm> | cpio -i --make-directories
23795         edit server.xml
23796         add address of VDS to connector
23797 }}}2    
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"/>
23805       </Host>
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.
23811 }}}2
23813 Performance tests{{{2
23816 Size of rpms: jdk,tomcat(+admin+webapps),mod_jk = ~47M
23817 VDS size = ~128M
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
23827 Server Port:            80
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
23834 Failed requests:        0
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)
23850   50%    285
23851   66%    319
23852   75%    326
23853   80%    356
23854   90%    405
23855   95%    418
23856   98%    433
23857   99%    435
23858  100%    436 (last request)
23859 }}}3
23860 with JAVA_OPTS="-Xms1m"{{{3
23861 Server Software:        Apache/1.3.26                                      
23862 Server Hostname:        www.deri4.devsphera.com
23863 Server Port:            80
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
23871 Failed requests:        0
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)
23888   50%    303
23889   66%    312
23890   75%    326
23891   80%    654
23892   90%    858
23893   95%    916
23894   98%    965
23895   99%    981
23896  100%    986 (last request)
23897 }}}3
23898 with JAVA_OPTS="-Xms1m -Xss120K"{{{3
23899 Server Software:        Apache/1.3.26                                      
23900 Server Hostname:        www.deri4.devsphera.com
23901 Server Port:            80
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
23909 Failed requests:        0
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)
23926   50%    258
23927   66%    284
23928   75%    302
23929   80%    376
23930   90%    783
23931   95%    881
23932   98%    931
23933   99%    934
23934  100%    947 (last request)
23935 }}}3
23936 with JAVA_OPTS="-Xss120K"{{{3
23937 Server Software:        Apache/1.3.26                                      
23938 Server Hostname:        www.deri4.devsphera.com
23939 Server Port:            80
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
23947 Failed requests:        0
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)
23964   50%    288
23965   66%    316
23966   75%    339
23967   80%    389
23968   90%    553
23969   95%    603
23970   98%    662
23971   99%    678
23972  100%    684 (last request)
23973 }}}3
23975 Two VDSs w/ tomcats. Initial RSS for each is 28M
23977 call 1 VDS{{{3
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
23981 Server Port:            80
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)
24008   50%     38
24009   66%     56
24010   75%     89
24011   80%     93
24012   90%    119
24013   95%    138
24014   98%    171
24015   99%    179
24016  100%    185 (last request)
24017 }}}3
24018 call 2 VDSs{{{3
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
24023 Server Port:            80
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)
24050   50%     62
24051   66%     74
24052   75%     85
24053   80%     98
24054   90%    129
24055   95%    184
24056   98%    248
24057   99%    273
24058  100%    275 (last request)
24060 Server Hostname:        www.deri5.devsphera.com
24061 Server Port:            80
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)
24088   50%     70
24089   66%     93
24090   75%    108
24091   80%    126
24092   90%    179
24093   95%    215
24094   98%    233
24095   99%    240
24096  100%    272 (last request)
24097 }}}3
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.
24106 }}}3
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"
24112 }}}3
24114 }}}2
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
24133         should bind.
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
24151 }}}2
24153 QA procedure{{{2
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
24160 applications.
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
24168        utility output :
24169         [root@blade Tomcat-4-SA]# ./tomcat4_util
24170         Looking for j2sdk
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|
24198         j2sdk|1.4.1||||M|
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/
24211 ----------------
24212 Tomcat GUI link.
24213 ----------------
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.
24232                                 Mysql.
24234 Driver.
24235 Copy database driver mysql-connector-java-2.0.14-bin.jar to <VDS>/var/tomcat4
24236 Database.
24237 Telnet to the VDS. Run mysql (./usr/local/mysql/bin/mysql) and get prompt:
24238 mysql>
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.
24244 }}}2
24246 Ensim config{{{2
24248 Apache
24249 MaxKeepAliveRequests 100
24250 KeepAliveTimeout 15
24251 MinSpareServers 5
24252 MaxSpareServers 10
24253 StartServers 5
24254 MaxClients 150
24256 }}}2
24258 }}}1
24259 VIII.  QOS checking{{{1
24261                                                                 01jul2002
24262 Context{{{2
24263 I.  Machine config
24264 II. Tests
24265         1. Regression tests
24266                 a. OS
24267                 b. QOS module
24268                 c. HostDir
24269         2. Stability tests
24270                 a. OS
24271                 b. Sphera
24272                 c. QOS module
24273         3. Functionality
24274                 a. Framework
24275                 b. CPU manager
24276                 c. Mem manager
24277                 d. Both
24278         4. Performance
24279                 a.
24280 III. Checks
24281         1. Switch mode
24282         2. Static_Dynamic
24283         3. Load/Unload
24284 IV.  Configurations
24285         1. common
24286         2. mon/enf
24287         3. nbr_of_users
24288 V.   Benchmarks
24289     1. LTP
24290 }}}2
24292 I. Machine config{{{2
24294 }}}2
24296 II. Tests{{{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.
24301         What to test:
24302                 basic functionality of linux OS(see How).
24303         Configurations:
24304                 monitor/enforcement modes;
24305         Tools:
24306                 LTP (ltp.sourceforge.net), scripts
24307         How:
24308                 Start to run LTP tests one by one as follows:
24309                 kernel sc - checks 153 system calls {{{4
24310 accept
24311 access
24312 alarm
24313 asyncio
24314 bind
24316 chdir
24317 chmod
24318 chown
24319 chroot
24320 close
24321 connect
24322 creat
24324 execl
24325 execle
24326 execlp
24327 execv
24328 execve
24329 execvp
24330 exit
24331 fchdir
24332 fchmod
24333 fchown
24334 fcntl
24335 fork
24336 fpathconf
24337 fstat
24338 fstatfs
24339 fsync
24340 ftruncate
24341 getcwd
24342 getdents
24343 geteuid
24344 getgid
24345 getgroups
24346 gethostid
24347 gethostname
24348 getitimer
24349 getpeername
24350 getpgid
24351 getpgrp
24352 getpid
24353 getppid
24354 getpriority
24355 getresuid
24356 getsid
24357 getsockname
24358 getsockopt
24359 gettimeofday
24360 getuid
24361 ioctl
24362 kill
24363 lchown
24364 link
24365 listen
24366 llseek
24367 lseek
24368 lstat
24369 mkdir
24370 mknod
24372 mmap
24373 modify_ldt
24374 mprotect
24375 mremap
24376 msgctl
24377 msgget
24378 msgrcv
24379 msgsnd
24380 msync
24381 munmap
24382 nanosleep
24383 nice
24384 open
24385 pathconf
24386 pause
24387 personality
24388 pipe
24389 poll
24390 pread
24391 pwrite
24392 read
24393 readdir
24394 readlink
24395 readv
24396 recv
24397 recvfrom
24398 recvmsg
24399 rename
24400 rmdir
24401 sbrk
24402 sched_getscheduler
24403 sched_setscheduler
24404 sched_yield
24405 select
24406 semctl
24407 semget
24408 semop
24409 send
24410 sendfile
24411 sendmsg
24412 sendto
24413 setfsgid
24414 setfsuid
24415 setgid
24416 setgroups
24417 setitimer
24418 setpgid
24419 setpgrp
24420 setpriority
24421 setregid
24422 setresuid
24423 setreuid
24424 setrlimit
24425 setsid
24426 setsockopt
24427 settimeofday
24428 setuid
24429 shmat
24430 shmctl
24431 shmdt
24432 shmget
24433 sigaction
24434 sigaltstack
24435 sighold
24436 signal
24437 sigprocmask
24438 sigrelse
24439 sigsuspend
24440 socket
24441 socketpair
24442 sockioctl
24443 stat
24444 statfs
24445 stime
24446 symlink
24447 sync
24448 sysctl
24449 sysinfo
24450 time
24451 times
24452 truncate
24453 umask
24454 uname
24455 unlink
24456 utime
24457 vfork
24458 vhangup
24459 wait
24460 waitpid
24461 write
24462 writev }}}
24463                 kernel fs - {{{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.
24475                 }}}4
24476                 kernel mm - {{{4
24477                         mem01- exercising virtual memory allocation and usage.
24478                         mtest01- mallocs memory <chunksize> at a time until
24479                                 malloc fails.
24480                         mtest05/mmstress- Performs General Stress with Race
24481                                 conditions
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
24487                                 map/write/unmap
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).
24492                 }}}4
24493                 kernel ade - {{{4
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`.
24506                 }}}4
24507                 kernel ipc - {{{4
24508                         pipeio- to beat on system or named pipes.
24509                         sem01- semaphore scenario.
24510                         sem02- multithreaded semaphore scenario.
24511                 }}}4
24512                 kernel sch - {{{4
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.
24520                 }}}4
24521                 kernel fp - {{{4
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,
24525                         float_trigo.
24526                 }}}4
24527                 kernel sctp - {{{4
24528                  accept01-sctp
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.
24561                 }}}4
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.
24569                 }}}4
24570                 diskio stress_cd - {{{4
24571                 Creates multiple read threads on the cdrom device.
24572                 }}}4
24573                 diskio stress_floppy - {{{4
24574                 reading/writing/formatting on a floppy drive.
24575                 }}}4
24576                 network ipv6 - {{{4
24577 echo601
24578         Stresses the inetd/xinetd daemon using the `echo` service.
24579 finger601
24580         test the basic functionality of the `finger` command.
24581 ftp601
24582         test the basic functionality of the `ftp` command.
24583 perf_lan6
24584         Generates LAN traffic using ICMP echo packets.
24585 ping601
24586         test the basic functionality of the `ping` command.
24587 rcp601
24588         test the basic functionality of the `rcp` command.
24589 rlogin601
24590         Tests the basic functionality of `rlogin`.
24591 rsh601
24592         test the basic functionality of the `rsh` command.
24593 rwho601
24594         test the basic functionality of the rwhod daemon using the
24595 sendfile601
24596          Copy files from server to client using the sendfile()
24597          function.
24598 tcpdump6
24599         test the basic functionality of `tcpdump`.
24600 telnet601
24601         Tests the basic functionality of `telnet`.
24602                 }}}4
24603                 network multicast - {{{4
24604 mc_cmds
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
24609         of IP Multicast.
24610 mc_commo
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.
24614 mc_member
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.
24621 mc_opts
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
24628         Interface options.
24629                 }}}4
24630                 network nfs - {{{4
24631 fsx-linux
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.
24635 nfs01
24636         Stresses NFS by opening a large number of files on a nfs
24637         mounted filesystem.
24638 nfs02
24639         Tests NFS copy of various filesizes, file consistency between copies
24640         and preservation of write/nowrite permissions.
24641 nfs03
24642         Runs the LTP filesystem test: fs_inod, on an NFS mountpoint.    
24643 nfslock01
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.
24648 nfsstat01
24649          Tests the 'nfsstat' command.  This test runs locally, so no
24650          actual network connection is needed.
24651 nfsstress 
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.     
24671                 }}}4
24672                 network rpc - {{{4
24673 rpc01
24674         Test rpc using file transfers between a client & server
24675 rpcinfo01
24676         Basic test for the `rpcinfo` command.
24677 rup01
24678         Basic test for the `rup` command.
24679 rusers01
24680         Basic test for the `rusers` command.
24681                 }}}4
24682                 network sctp - {{{4
24683                 same as kernel sctp
24684                 }}}4
24685                 network tcp_cmds - {{{4
24686 arp01
24687         Test the basic functionality of `arp`.
24688 echo01
24689         Stresses the inetd/xinetd daemon using the `echo` service.
24690 finger01
24691         test the basic functionality of the `finger` command.
24692 ftp01
24693         test the basic functionality of the `ftp` command.
24694 host01
24695         test the basic functionality of the `host` command.
24696 netstat01
24697         test the basic functionality of the `netstat` command.
24698 perf_lan
24699         Generates LAN traffic using ICMP echo packets.
24700 ping01
24701         test the basic functionality of the `ping` command.
24702 rcp01
24703         test the basic functionality of the `rcp` command.
24704 rdist01
24705         test the basic functionality of the `rdist` command.
24706 rlogin01
24707         Tests the basic functionality of `rlogin`.
24708 rsh01
24709         test the basic functionality of the `rsh` command.
24710 rwho01
24711         test the basic functionality of the rwhod daemon using the
24712 sendfile01
24713          Copy files from server to client using the sendfile()
24714          function.
24715 tcpdump
24716         test the basic functionality of `tcpdump`.
24717 telnet01
24718         Tests the basic functionality of `telnet`.
24719                 }}}4
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.
24730         Runs: {{{4
24731                 kernel
24732                 - sc                                            hangs
24733                         personality01   #266
24734                         personality02   #266
24735                         shmdt02         2.4.9-pre4
24736                         pread02         investigating
24737                         mprotect01      2.4.19-pre4
24738                         msync05         2.4.19-pre4
24739                         pwrite02        ???
24740                         recv01          2.4.18
24741                         recvfrom01      2.4.18
24742                         recvmsg01       2.4.18
24743                         signal04        ???
24744                         waitpid05       ???
24745                 - fs                                            ???
24746                 - mm                                            PASS
24747                 - ade                                           PASS
24748                         ar              known but...
24749                 - ipc                                           PASS
24750                         sem02           #351
24751                 - sch                                           PASS
24752                 - fp                                            PASS
24753                 - sctp udp                                      PASS
24754                         bind01-sctp-udp Socket type not supported
24755                         listen01-sctp-udp -"-
24756                         recv01-sctp-ud  -"-
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)
24764                 - sctp tcp                                      PASS
24765                         accept01-sctp   Socket type not supported
24766                         bind01-sctp-tc  -"-
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)
24776                 disk i/o                                        PASS
24777                 network
24778         }}}4
24779 }}}3
24781 II.1.b Regression QOS module test{{{3
24783         Purpose of test:
24784                 one time tests to ensure that module interface
24785                 works. Not intend to check if it works right.(see functionaly)
24787         Objects to test:
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
24793                         * create pnode
24794                         * attach uid
24795                         * attach self
24796                         * attach forward
24797                         * set flags (barrier,go_other,deffer_uid)
24798                         * set pnode's name
24799                         * create pnode's managers
24800                         * start pnode
24801                         * delete pnode
24802                         * get pnode status
24803                         * get pnode children
24804                         * get pnode tasks
24805                         * kill pnode tasks
24806                         * get pnode by uid
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;
24814                 basic scenarious
24815                         * add/del PNODE w/o tasks,
24816                         * add/del PNODE w/ existing tasks,
24817                         * add/del task to PNODE,
24818                         * task changes PNODE;
24819                 period scenarious
24820                         * basic scenarious by time periods or number
24821                         of loops;
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
24835         How to test:
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>
24855                         20-pn_lookup            <uid>
24857                 Testing basic scenarious
24858                         do_check_add_del_pn_all
24859                 
24860                         ----add/del PNODE
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)
24878                         none flag
24879                                 in case of del PNODE it's tasks relink to father
24880                                 PNODE exists till last task exists.
24881                         barrier flag
24882                                 in case of del PNODE it will exists till last task, so task
24883                                 can't be relink anywhere.
24884                         goother flag
24885                                 in case of del PNODE it's tasks relink to predefined PNODE
24886                                 called OTHER.
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
24893                         ----add/del task
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
24909                         do_1st_pn_to_start
24910                         do_last_pn_to_del
24911                         do_2_pn_w_same_ui
24912                         do_del_pn_with_son
24913                         do_del_predefined_pn
24914                         do_set_rule_after_pn_start
24915                         do_set_flag_after_pn_start
24916                         do_change_rule
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.
24925                 Also added 
24926         What:
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
24932                 conditions.
24933         Configurations:
24934                 monitor/enforcement modes; dynamic number of users;
24935         Tools: script
24936         How:
24937                 Module commands.{{{4
24938                 Testing follows module commands by running script test_module.sh
24939                 (same as Regression QOS module test):
24940                 ----get_mdl_status
24941                         get module status
24942                 ----create_pn
24943                         create pnode
24944                 ----start_pn
24945                         start pnode
24946                 ----del_pn
24947                         delete pnode
24948                 ----pn_set_uid
24949                         attach uid to pnode
24950                 ----pn_kill
24951                         kill pnode's tasks
24952                 ----pn_lookup
24953                         find pnode by uid
24954                 ----get_pn_status
24955                         get pnode's status
24956                 ----get_pn_children
24957                         get list of pnode's children
24958                 ----get_pn_tasks
24959                         get list of pnode's tasks
24960                 ----create_pn_man
24961                         create pnode's cpu or memory manager
24962                 ----get_man_name
24963                         get manager's name
24964                 ----set_pn_name
24965                         set pnode's name
24966                 ----set_man_mode
24967                         set pnode's manager mode (monitor|enforcement)}}}4
24968                 Basic scenarious.{{{4
24969                 Testing follows scenarious:
24970                 ----add/del PNODE
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)
24988                 no flags
24989                         PNODE exists till last task exists.
24990                 barier flag
24991                         PNODE's tasks link to father
24992                 goother flag
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
25000                 ----add/del task
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
25015                 }}}4
25016 }}}3
25018 II.3.c Functionality mem manager{{{3
25020         Purpose of test:
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
25027                                 
25028                         * get module status
25030                         * get module's managers status
25032                         * set module's manager mode
25034                         * create pnode
25036                         * attach uid
25038                         * attach self
25040                         * attach forward
25042                         * set flags (barrier,go_other,deffer_uid)
25044                         * set pnode's name
25046                         * create pnode's managers
25048                         * start pnode
25050                         * delete pnode
25052                         * get pnode status
25054                         * get pnode children
25056                         * get pnode tasks
25057                                 ps -ewf | grep <uid>
25058                         * kill pnode tasks
25060                         * get pnode by 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;
25075                 
25076         How:
25078 }}}2
25080 III. Checks{{{2
25082 Switch mode check{{{3
25083         Purpose: check module after changing it's mode from enforcement to
25084                 monitor and vice versa.
25085         What to check:
25086                 monitor/enforcement - to be sure that enforcement alive.
25087                 enforcement/monitor - to be sure that monitor alive.
25088         Conditions:
25089         How to check:
25090                 create pnode
25091                 set resource limit
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
25095 }}}3
25096 Static_Dynamic check{{{3
25097         Purpose: check module Static/Dynamic number of users
25099 }}}3
25101 }}}2
25103 IV. Configurations{{{2
25105         1. common{{{3
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
25109         }}}3
25110         2. mon/enf{{{3
25111         }}}3
25112         3. nbr_of_users{{{3
25113         }}}3
25115 }}}2
25117 V.  Benchmarks{{{2
25119         1. LTP{{{3
25120         home site: ltp.sourceforge.net
25121         tests:
25122                 kernel - sys calls,                             sc
25123                         file system,                            fs
25124                         memory management,                      mm
25125                         application development environment,    ade
25126                         ipc,                                    ipc
25127                         scheduler,                              sch
25128                         floating point                          fp
25129                         SCTP                                    sctp
25130                 disk i/o - disktest,
25131                         stress_cd,
25132                         stress_floppy
25133                 network - ipv6,                                 ipv6
25134                         multicast,                              mcst
25135                         nfs,                                    nfs
25136                         rpc,                                    rpc
25137                         sctp,                                   sctp
25138                         tcp_cmds                                tcmd
25139         decription:
25140                 kernel sc - checks 153 system calls {{{4
25141 accept
25142 access
25143 alarm
25144 asyncio
25145 bind
25147 chdir
25148 chmod
25149 chown
25150 chroot
25151 close
25152 connect
25153 creat
25155 execl
25156 execle
25157 execlp
25158 execv
25159 execve
25160 execvp
25161 exit
25162 fchdir
25163 fchmod
25164 fchown
25165 fcntl
25166 fork
25167 fpathconf
25168 fstat
25169 fstatfs
25170 fsync
25171 ftruncate
25172 getcwd
25173 getdents
25174 geteuid
25175 getgid
25176 getgroups
25177 gethostid
25178 gethostname
25179 getitimer
25180 getpeername
25181 getpgid
25182 getpgrp
25183 getpid
25184 getppid
25185 getpriority
25186 getresuid
25187 getsid
25188 getsockname
25189 getsockopt
25190 gettimeofday
25191 getuid
25192 ioctl
25193 kill
25194 lchown
25195 link
25196 listen
25197 llseek
25198 lseek
25199 lstat
25200 mkdir
25201 mknod
25203 mmap
25204 modify_ldt
25205 mprotect
25206 mremap
25207 msgctl
25208 msgget
25209 msgrcv
25210 msgsnd
25211 msync
25212 munmap
25213 nanosleep
25214 nice
25215 open
25216 pathconf
25217 pause
25218 personality
25219 pipe
25220 poll
25221 pread
25222 pwrite
25223 read
25224 readdir
25225 readlink
25226 readv
25227 recv
25228 recvfrom
25229 recvmsg
25230 rename
25231 rmdir
25232 sbrk
25233 sched_getscheduler
25234 sched_setscheduler
25235 sched_yield
25236 select
25237 semctl
25238 semget
25239 semop
25240 send
25241 sendfile
25242 sendmsg
25243 sendto
25244 setfsgid
25245 setfsuid
25246 setgid
25247 setgroups
25248 setitimer
25249 setpgid
25250 setpgrp
25251 setpriority
25252 setregid
25253 setresuid
25254 setreuid
25255 setrlimit
25256 setsid
25257 setsockopt
25258 settimeofday
25259 setuid
25260 shmat
25261 shmctl
25262 shmdt
25263 shmget
25264 sigaction
25265 sigaltstack
25266 sighold
25267 signal
25268 sigprocmask
25269 sigrelse
25270 sigsuspend
25271 socket
25272 socketpair
25273 sockioctl
25274 stat
25275 statfs
25276 stime
25277 symlink
25278 sync
25279 sysctl
25280 sysinfo
25281 time
25282 times
25283 truncate
25284 umask
25285 uname
25286 unlink
25287 utime
25288 vfork
25289 vhangup
25290 wait
25291 waitpid
25292 write
25293 writev }}}4
25294                 kernel fs - {{{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.
25306                 }}}4
25307                 kernel mm - {{{4
25308                         mem01- exercising virtual memory allocation and usage.
25309                         mtest01- mallocs memory <chunksize> at a time until
25310                                 malloc fails.
25311                         mtest05/mmstress- Performs General Stress with Race
25312                                 conditions
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
25318                                 map/write/unmap
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).
25323                 }}}4
25324                 kernel ade - {{{4
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`.
25337                 }}}4
25338                 kernel ipc - {{{4
25339                         pipeio- to beat on system or named pipes.
25340                         sem01- semaphore scenario.
25341                         sem02- multithreaded semaphore scenario.
25342                 }}}4
25343                 kernel sch - {{{4
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.
25351                 }}}4
25352                 kernel fp - {{{4
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,
25356                         float_trigo.
25357                 }}}4
25358                 kernel sctp - {{{4
25359                  accept01-sctp
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.
25392                 }}}4
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.
25400                 }}}4
25401                 diskio stress_cd - {{{4
25402                 Creates multiple read threads on the cdrom device.
25403                 }}}4
25404                 diskio stress_floppy - {{{4
25405                 reading/writing/formatting on a floppy drive.
25406                 }}}4
25407                 network ipv6 - {{{4
25408 echo601
25409         Stresses the inetd/xinetd daemon using the `echo` service.
25410 finger601
25411         test the basic functionality of the `finger` command.
25412 ftp601
25413         test the basic functionality of the `ftp` command.
25414 perf_lan6
25415         Generates LAN traffic using ICMP echo packets.
25416 ping601
25417         test the basic functionality of the `ping` command.
25418 rcp601
25419         test the basic functionality of the `rcp` command.
25420 rlogin601
25421         Tests the basic functionality of `rlogin`.
25422 rsh601
25423         test the basic functionality of the `rsh` command.
25424 rwho601
25425         test the basic functionality of the rwhod daemon using the
25426 sendfile601
25427          Copy files from server to client using the sendfile()
25428          function.
25429 tcpdump6
25430         test the basic functionality of `tcpdump`.
25431 telnet601
25432         Tests the basic functionality of `telnet`.
25433                 }}}4
25434                 network multicast - {{{4
25435 mc_cmds
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
25440         of IP Multicast.
25441 mc_commo
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.
25445 mc_member
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.
25452 mc_opts
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
25459         Interface options.
25460                 }}}4
25461                 network nfs - {{{4
25462 fsx-linux
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.
25466 nfs01
25467         Stresses NFS by opening a large number of files on a nfs
25468         mounted filesystem.
25469 nfs02
25470         Tests NFS copy of various filesizes, file consistency between copies
25471         and preservation of write/nowrite permissions.
25472 nfs03
25473         Runs the LTP filesystem test: fs_inod, on an NFS mountpoint.    
25474 nfslock01
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.
25479 nfsstat01
25480          Tests the 'nfsstat' command.  This test runs locally, so no
25481          actual network connection is needed.
25482 nfsstress 
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.     
25502                 }}}4
25503                 network rpc - {{{4
25504 rpc01
25505         Test rpc using file transfers between a client & server
25506 rpcinfo01
25507         Basic test for the `rpcinfo` command.
25508 rup01
25509         Basic test for the `rup` command.
25510 rusers01
25511         Basic test for the `rusers` command.
25512                 }}}4
25513                 network sctp - {{{4
25514                 same as kernel sctp
25515                 }}}4
25516                 network tcp_cmds - {{{4
25517 arp01
25518         Test the basic functionality of `arp`.
25519 echo01
25520         Stresses the inetd/xinetd daemon using the `echo` service.
25521 finger01
25522         test the basic functionality of the `finger` command.
25523 ftp01
25524         test the basic functionality of the `ftp` command.
25525 host01
25526         test the basic functionality of the `host` command.
25527 netstat01
25528         test the basic functionality of the `netstat` command.
25529 perf_lan
25530         Generates LAN traffic using ICMP echo packets.
25531 ping01
25532         test the basic functionality of the `ping` command.
25533 rcp01
25534         test the basic functionality of the `rcp` command.
25535 rdist01
25536         test the basic functionality of the `rdist` command.
25537 rlogin01
25538         Tests the basic functionality of `rlogin`.
25539 rsh01
25540         test the basic functionality of the `rsh` command.
25541 rwho01
25542         test the basic functionality of the rwhod daemon using the
25543 sendfile01
25544          Copy files from server to client using the sendfile()
25545          function.
25546 tcpdump
25547         test the basic functionality of `tcpdump`.
25548 telnet01
25549         Tests the basic functionality of `telnet`.
25550                 }}}4
25551         }}}3
25553 }}}2
25555 Old stuff {{{2
25557 II.1.b Regression Sphera test{{{3
25558         Purpose: one time test to ensure that certain functionality of Sphera
25559                 works proper.
25560         What:
25561                 services - ftp, http, pop3, smtp
25562                 Sphera - add/del VDS, move VDS.
25563         Configurations:
25564                 mon/enf
25565         Tools:
25566                 script, openapi
25567         How:
25568                 FTP service check
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
25576                 POP service check
25577                 aim: check if service works proper
25578                 Run pop_check.sh
25580                 SMTP service check
25581                 aim: check if service works proper
25582                 Run smtp_check.sh
25584                 HTTP sevice check
25585                 aim: check if service works proper
25586                 Run http_check.sh
25588                 Add/Del VDS
25589                 aim: check Sphera functionmality
25590                 steps   description             expected results
25591                 1       create VDS              success
25592                 2       delete VDS              success
25594                 Move VDS
25595                 aim: check Sphera functionmality
25596                 steps   description             expected results
25597                 1       create VDS              success
25598                 2       move VDS                success
25599 }}}3
25601 }}}2
25602 }}}1