vmod/vmodttl: fixed bug related to luns not ordered and/or not starting from zero.
[ht-drivers.git] / makefiles / delivery-and-compilation.org
blob5a219ab78a90744d718919aa54a136f5350a8cab
1 >#+TITLE:   Driver delivery schema.
2 #+OPTIONS: H:3 num:t toc:t \n:t @:t ::t |:t ^:t -:t f:t *:t TeX:t LaTeX:nil skip:t d:nil tags:not-in-toc
3 #+STARTUP: hidestars
5 * Pathes
6         |      | linux          | lynx           |
7         |------+----------------+----------------|
8         | /    | <              | <              |
9         | CPU  | ppc4           | L864           |
10         |      |                | L865           |
11         |------+----------------+----------------|
12         | ACCS | lab oper oplhc | lab oper oplhc |
13         |------+----------------+----------------|
14         | KVER | 4.0.0          | 2.6.24.7-rt21  |
15         |      |                | 2.6.24.7-rt27  |
16         |      |                | 2.6.29.1-rt7   |
17         |      |                | 2.6.29.4-rt15  |
18         |      |                | 2.6.29.6-rt23  |
19         |      |                | 2.6.31.6-rt19  |
22         $(ACCS) == { lab, oper, oplhc }
23         $(CPU)  == { ppc4, L864, L865 }
24         $(KVER) == { 4.0.0, 2.6.24.7-rt21, 2.6.24.7-rt27, 2.6.29.1-rt7,
25                      2.6.29.4-rt15, 2.6.29.6-rt23 }
27 * Specific delivery
28 1. Driver
29    /acc/dsc/$(ACCS)/$(CPU)/$(KVER)/<DriverName>
31    which on FEC corresponds to
32    /usr/local/drivers/<DriverName>
34 2. Test prog
35    /acc/dsc/$(ACCS)/$(CPU)/bin
37    which on FEC corresponds to
38    /usr/local/bin
40 3. Library
41    /acc/local/$(CPU)/lib/<DriverName>
43    which on FEC corresponds to
44    /usr/local/lib/<DriverName>
46 4. Header files
47    /acc/local/$(CPU)/include/<DriverName>
49    which on FEC corresponds to
50    /usr/local/include/<DriverName>
52 * General programs delivery
53 5. instprog
54    /acc/dsc/$(ACCS)/$(CPU)/bin/instprog
56    which on FEC corresponds to
57    /usr/local/bin/instprog
59 6. dgmodinst
60 7. dgmoduninst
61    /acc/dsc/$(ACCS)/$(CPU)/bin/dgmod[inst/uninst]
63    which on FEC corresponds to
64    /usr/local/bin/dgmod[inst/uninst]
66 8. libdal.a
67    /acc/local/$(CPU)/lib/libdal.a
69    which on FEC corresponds to
70    /usr/local/lib/libdal.a
72 9. Header files
73    /acc/local/$(CPU)/include/dg
75    which on FEC corresponds to
76    /usr/local/include/dg
78 * DriverGen issues
80 * CTR issues
81   -- Several CTR modules declared in the DB.
82         | Module | Driver | directory | Inst script |
83         |--------+--------+-----------+-------------|
84         | /      | <      | <         | <           |
85         | CTRI   | CTRP   | ctr       | ctrinstall  |
86         | CTRP   | CTRP   | ctr       | ctrinstall  |
87         | CTRV   | CTRV   | ctr       | ctrvinstall |
88 ** Examples
89   CTR delivered in
90   /acc/dsc/lab/L865/2.6.24.7-rt27/{ctrp, ctrv}
92   Scripts called are in
93   /acc/dsc/lab/L865/2.6.24.7-rt27/ctr/{ctrinstall, ctrvinstall}
95   on FEC is
96   /usr/local/drivers/ctr/{ctrinstall, ctrvinstall}
98   With the new installation schema, {ctrinstall && ctrvinstall} will
99   host a script to descend into the
100   /usr/local/drivers/{ctrp, ctrv}
101   and call instprog (from /usr/bin) with the parameters:
102   instprog -sCTRV -nctr <-- for CTRV
103   instprog -sCTRP -nctr <-- for CTRP
105 * Compilation notes
106   Several command line options can be provided in the command line during
107   compilation. These are:
108         -- CPU  {L864, L865, ppc4}
109         -- KVER All supported FEC kernels are in /acc/sys/$(CPU)/usr/src/kernels
110                 and (if you want to compile for local SLC5 machine) are in
111                 /usr/src/kernels.
112         -- KSRC {/acc/sys/$(CPU)/usr/src/kernels, /usr/src/kernels}
114   Note, that if you are compiling for FEC -- KSRC should __not__ be provided
115   in the make command line parameters.
117   If you are compiling for the local machine -- KSRC __should__ be provided
119   I.e. /usr/src/kernels is not a standard kernel path, while
120   /acc/sys/$(CPU)/usr/src/kernels is a standard kernel path for FEC kernels.
122   To compile the driver -- cdcm and library (if used )should be compiled first
123   for given kernel:
124         1. cd cdcm
125         2. make (provide CPU, KVER, KSRC if needed)
126            It will build you CDCM && "library" (in cdcm/utils/driver)
128   Then compile your driver:
129         1. cd driver
130         2. make (provide CPU, KVER, KSRC if needed)
131   To compile for SLC4 -- you should be on the SLC4 machine.
132   Won't work from SLC5!
134 ** CTR compilation for local kernel Example:
135    Let's compile CTRP for local SLC5 machine.
136    One should provide KVER of the current machine `uname -r`
137    Kernel src files can be found in [/usr/src/kernels]
139    So we should set KVER=2.6.18-164.el5 and KSRC=/usr/src/kernels
140    Now we should compile driver utils library (which is in cdcm/utils/driver)
141    To do this:
142         -> cd coht/cdcm
143         -> make utils CPU=L865 KSRC=/usr/src/kernels KVER=2.6.18-164.el5
145    Compile CTRP:
146         -> cd coht/ctr/driver_pci
147         -> make CPU=L865 KSRC=/usr/src/kernels KVER=2.6.18-164.el5
149    Deliver it:
150         -> make deliver lab CPU=L865 KSRC=/usr/src/kernels KVER=2.6.18-164.el5