First public contribution.
1 Shadow Memory Region (SMR) Manual Test Suite
2 ============================================
8 This folder contains the manual tests for the Shadow Memory Region feature
9 that is part of the kernel bootstrap PIL. The reference test variant for this
10 feature is the NaviEngine, NE1 PSL. This feature allows Loader software in a
11 local media boot scenario to shadow data held in local media partition into
12 RAM which is then reserved by the bootstrap for later access by kernel
13 extensions. The feature was introduced frist during the development of the
14 Hardware Configuration Repository component.
16 The folder contains an overlay of 'os' tree source code that modifies
17 several components to enable unit testing of this feature with existing NAND
18 User Data partitions separately from the new tool support added to support
21 This unit test suite was initially developed in the depot @
22 //EPOC/dv3/personal/2008/stephenm/sfm-baseH1-test1/os/...
24 There are three main parts to the test suite which relate to individual MBC #
26 smrtest_h4_production.mbc
27 Used to build ROMs for H4 to test SMR results in zero regressions.
29 smrtest_ne1_production.mbc
30 Used to build ROMs for NE1 to test for zero regressions when no SMRs
33 smrtest_h4_production.mbc
34 Used to build ROMs for H4 to test SMR results in zero regressions.
37 Test cases listed in spreadsheet "aTestCases.xls". The memory model used does
38 not have a bearing on the testing of SMR as it is MM independent. Multiple
39 Memory Model ROMs should be used for H4 and NE1 uni-core testing
40 and Flexible Memory Model ROMs for NE1 multi-core SMP testing.
43 Build & Execute Instructions Summary
44 ------------------------------------
47 Build the Base tree and H4 variant tree
48 Build exports from the e32tests\smr\h4 project
49 Build H4 roms using smrtest_h4_production.mbc
50 Execute tests as explained in aTestCases.xls
53 Build the Base tree and NE1 variant tree
54 Build exports and test binaries from the e32tests\smr\ne1 project
55 Build exports and test binaries from the e32tests\smr\ne1\flex project
56 Build NE1 roms using smrtest_ne1_production.mbc
57 Execute tests as explained in aTestCases.xls
61 Build the Base tree and NE1 variant tree
62 Unzip the e32test\smr\os-patch.zip files onto your os source tree (patches coreldr)
63 Clean and then re-build the \os\boardsupport\naviengine\naviengineunistore2
64 component (builds patched coreldr)
65 Build exports and test binaries from the e32tests\smr\ne1 project
66 Build exports and test binaries from the e32tests\smr\ne1\flex project
67 Build NE1 roms using smrtest_ne1_autotest.mbc
68 Execute tests as explained in aTestCases.xls
71 Modify \os\boardsupport\naviengine\navienginebsp\ne1_tb\config.inc to
72 define CFG_DebugBootRom & CFG_InitDebugPort to enable bootstrap tracing
73 Build the Base tree and NE1 variant tree
74 Unzip the e32test\smr\os-patch.zip files onto your os source tree (patches coreldr)
75 Clean and then re-build the \os\boardsupport\naviengine\naviengineunistore2
76 component (builds patched coreldr)
77 Build exports and test binaries from the e32tests\smr\ne1 project
78 Build exports and test binaries from the e32tests\smr\ne1\flex project
79 Build NE1 roms using smrtest_ne1_autotest.mbc
80 Execute test S03.03.01 as explained in aTestCases.xls
82 Modify \os\kernelhwsrv\kernel\eka\drivers\unistore2\srca\xsr\util\ONBL2\ONBL2.CPP
83 to uncomment line 627 (comment line 626) in ShadowHCR() routine so that
84 it create an invalid sized SMRIB with 128 bytes, i.e. 8 entries but is
85 the 7 maximum so will lead to a fault in the bootstrap.
86 Re-build the CoreLdr component for NE1 non FMM
87 (\os\boardsupport\naviengine\naviengineunistore2)
88 Execute test S03.03.02 as explained in aTestCases.xls
90 Revert edits to Core Loader.
91 Revert edits to the NE1 config.inc source.
94 Modify \os\boardsupport\naviengine\navienginebsp\ne1_tb\config.inc to
95 define CFG_DebugBootRom & CFG_InitDebugPort to enable bootstrap tracing
96 Build the Base tree and NE1 variant tree
97 Unzip the e32test\smr\os-patch.zip files onto your os source tree (patches coreldr)
98 Clean and then re-build the \os\boardsupport\naviengine\naviengineunistore2
99 component (builds patched coreldr)
100 Build exports and test binaries from the e32tests\smr\ne1 project
101 Build exports and test binaries from the e32tests\smr\ne1\flex project
102 Build NE1 roms using smrtest_ne1_autotest.mbc
103 Modify \os\kernelhwsrv\kernel\eka\drivers\unistore2\srca\xsr\util\ONBL2\ONBL2.CPP
104 to uncomment line 608 (comment line 607) in ShadowHCR() routine so that
105 it stores the size of the SMRs as not multiples of 4096bytes so will
106 lead to a fault in bootstrap.
107 Re-build the CoreLdr component for NE1 non FMM
108 (\os\boardsupport\naviengine\naviengineunistore2)
109 Execute test S03.04.01 as explained in aTestCases.xls
111 Revert edits to Core Loader source.
112 Revert edits to the NE1 config.inc source.
115 Build SMR Test Projects
116 -----------------------
118 Build H4 Multiple Memory Model version:
119 cd \os\kernelhwsrv\kerneltest\e32test\smr\h4
120 bldmake -f=smr_h4bld.inf bldfiles
123 Build NE1 Multiple Memory Model version:
124 cd \os\kernelhwsrv\kerneltest\e32test\smr\ne1
125 bldmake -f=smr_ne1bld.inf bldfiles
128 Build NE1 Flexible Memory Model / SMP version:
129 cd \os\kernelhwsrv\kerneltest\e32test\smr\ne1\flex
130 bldmake -f=smr_ne1smpbld.inf bldfiles
135 Build ROMs for Test Suite
136 -------------------------
139 cd \os\kernelhwsrv\kernel\eka\rombuild
140 metabld smrtest_h4_production.mbc > \logs\h4p.log 2>&1
141 scanlog \logs\h4p.log
144 cd \os\kernelhwsrv\kernel\eka\rombuild
145 metabld smrtest_ne1_production.mbc > \logs\ne1p.log 2>&1
146 scanlog \logs\ne1p.log
148 Functional (+ve & -ve) tests for NE1:
149 cd \os\kernelhwsrv\kernel\eka\rombuild
150 metabld smrtest_ne1_autotest.mbc > \logs\ne1at.log 2>&1
151 scanlog \logs\ne1at.log
157 *** variant.mmh Files
159 \os\kernelhwsrv\kerneltest\e32test\smr\ne1\variant.mmh is a direct unmodified
160 copy of the version in \os\boardsupport\naviengine\navienginebsp\ne1_tb\variant.mmh.
161 Please ensure this is aligned before building NE1 tests. Same for
162 \os\kernelhwsrv\kerneltest\e32test\smr\ne1\flex\variant.mmh which is a copy of
163 \os\boardsupport\naviengine\navienginebspflexible\variant.mmh