sl@0: Shadow Memory Region (SMR) Manual Test Suite sl@0: ============================================ sl@0: sl@0: sl@0: Introduction sl@0: ------------ sl@0: sl@0: This folder contains the manual tests for the Shadow Memory Region feature sl@0: that is part of the kernel bootstrap PIL. The reference test variant for this sl@0: feature is the NaviEngine, NE1 PSL. This feature allows Loader software in a sl@0: local media boot scenario to shadow data held in local media partition into sl@0: RAM which is then reserved by the bootstrap for later access by kernel sl@0: extensions. The feature was introduced frist during the development of the sl@0: Hardware Configuration Repository component. sl@0: sl@0: The folder contains an overlay of 'os' tree source code that modifies sl@0: several components to enable unit testing of this feature with existing NAND sl@0: User Data partitions separately from the new tool support added to support sl@0: SMR partitions. sl@0: sl@0: This unit test suite was initially developed in the depot @ sl@0: //EPOC/dv3/personal/2008/stephenm/sfm-baseH1-test1/os/... sl@0: sl@0: There are three main parts to the test suite which relate to individual MBC # sl@0: files as follows: sl@0: smrtest_h4_production.mbc sl@0: Used to build ROMs for H4 to test SMR results in zero regressions. sl@0: Test cases S01.xx sl@0: smrtest_ne1_production.mbc sl@0: Used to build ROMs for NE1 to test for zero regressions when no SMRs sl@0: are shadowed. sl@0: Test cases S02.xx sl@0: smrtest_h4_production.mbc sl@0: Used to build ROMs for H4 to test SMR results in zero regressions. sl@0: Test cases S03.xx sl@0: sl@0: Test cases listed in spreadsheet "aTestCases.xls". The memory model used does sl@0: not have a bearing on the testing of SMR as it is MM independent. Multiple sl@0: Memory Model ROMs should be used for H4 and NE1 uni-core testing sl@0: and Flexible Memory Model ROMs for NE1 multi-core SMP testing. sl@0: sl@0: sl@0: Build & Execute Instructions Summary sl@0: ------------------------------------ sl@0: sl@0: S01.xx tests sl@0: Build the Base tree and H4 variant tree sl@0: Build exports from the e32tests\smr\h4 project sl@0: Build H4 roms using smrtest_h4_production.mbc sl@0: Execute tests as explained in aTestCases.xls sl@0: sl@0: S02.xx tests sl@0: Build the Base tree and NE1 variant tree sl@0: Build exports and test binaries from the e32tests\smr\ne1 project sl@0: Build exports and test binaries from the e32tests\smr\ne1\flex project sl@0: Build NE1 roms using smrtest_ne1_production.mbc sl@0: Execute tests as explained in aTestCases.xls sl@0: sl@0: S03.01.xx tests sl@0: S03.02.xx tests sl@0: Build the Base tree and NE1 variant tree sl@0: Unzip the e32test\smr\os-patch.zip files onto your os source tree (patches coreldr) sl@0: Clean and then re-build the \os\boardsupport\naviengine\naviengineunistore2 sl@0: component (builds patched coreldr) sl@0: Build exports and test binaries from the e32tests\smr\ne1 project sl@0: Build exports and test binaries from the e32tests\smr\ne1\flex project sl@0: Build NE1 roms using smrtest_ne1_autotest.mbc sl@0: Execute tests as explained in aTestCases.xls sl@0: sl@0: S03.03.xx test sl@0: Modify \os\boardsupport\naviengine\navienginebsp\ne1_tb\config.inc to sl@0: define CFG_DebugBootRom & CFG_InitDebugPort to enable bootstrap tracing sl@0: Build the Base tree and NE1 variant tree sl@0: Unzip the e32test\smr\os-patch.zip files onto your os source tree (patches coreldr) sl@0: Clean and then re-build the \os\boardsupport\naviengine\naviengineunistore2 sl@0: component (builds patched coreldr) sl@0: Build exports and test binaries from the e32tests\smr\ne1 project sl@0: Build exports and test binaries from the e32tests\smr\ne1\flex project sl@0: Build NE1 roms using smrtest_ne1_autotest.mbc sl@0: Execute test S03.03.01 as explained in aTestCases.xls sl@0: sl@0: Modify \os\kernelhwsrv\kernel\eka\drivers\unistore2\srca\xsr\util\ONBL2\ONBL2.CPP sl@0: to uncomment line 627 (comment line 626) in ShadowHCR() routine so that sl@0: it create an invalid sized SMRIB with 128 bytes, i.e. 8 entries but is sl@0: the 7 maximum so will lead to a fault in the bootstrap. sl@0: Re-build the CoreLdr component for NE1 non FMM sl@0: (\os\boardsupport\naviengine\naviengineunistore2) sl@0: Execute test S03.03.02 as explained in aTestCases.xls sl@0: sl@0: Revert edits to Core Loader. sl@0: Revert edits to the NE1 config.inc source. sl@0: sl@0: S03.04.01 tests sl@0: Modify \os\boardsupport\naviengine\navienginebsp\ne1_tb\config.inc to sl@0: define CFG_DebugBootRom & CFG_InitDebugPort to enable bootstrap tracing sl@0: Build the Base tree and NE1 variant tree sl@0: Unzip the e32test\smr\os-patch.zip files onto your os source tree (patches coreldr) sl@0: Clean and then re-build the \os\boardsupport\naviengine\naviengineunistore2 sl@0: component (builds patched coreldr) sl@0: Build exports and test binaries from the e32tests\smr\ne1 project sl@0: Build exports and test binaries from the e32tests\smr\ne1\flex project sl@0: Build NE1 roms using smrtest_ne1_autotest.mbc sl@0: Modify \os\kernelhwsrv\kernel\eka\drivers\unistore2\srca\xsr\util\ONBL2\ONBL2.CPP sl@0: to uncomment line 608 (comment line 607) in ShadowHCR() routine so that sl@0: it stores the size of the SMRs as not multiples of 4096bytes so will sl@0: lead to a fault in bootstrap. sl@0: Re-build the CoreLdr component for NE1 non FMM sl@0: (\os\boardsupport\naviengine\naviengineunistore2) sl@0: Execute test S03.04.01 as explained in aTestCases.xls sl@0: sl@0: Revert edits to Core Loader source. sl@0: Revert edits to the NE1 config.inc source. sl@0: sl@0: sl@0: Build SMR Test Projects sl@0: ----------------------- sl@0: sl@0: Build H4 Multiple Memory Model version: sl@0: cd \os\kernelhwsrv\kerneltest\e32test\smr\h4 sl@0: bldmake -f=smr_h4bld.inf bldfiles sl@0: abld test build sl@0: sl@0: Build NE1 Multiple Memory Model version: sl@0: cd \os\kernelhwsrv\kerneltest\e32test\smr\ne1 sl@0: bldmake -f=smr_ne1bld.inf bldfiles sl@0: abld test build sl@0: sl@0: Build NE1 Flexible Memory Model / SMP version: sl@0: cd \os\kernelhwsrv\kerneltest\e32test\smr\ne1\flex sl@0: bldmake -f=smr_ne1smpbld.inf bldfiles sl@0: abld test build sl@0: sl@0: sl@0: sl@0: Build ROMs for Test Suite sl@0: ------------------------- sl@0: sl@0: Smoke test H4: sl@0: cd \os\kernelhwsrv\kernel\eka\rombuild sl@0: metabld smrtest_h4_production.mbc > \logs\h4p.log 2>&1 sl@0: scanlog \logs\h4p.log sl@0: sl@0: Smoke test NE1: sl@0: cd \os\kernelhwsrv\kernel\eka\rombuild sl@0: metabld smrtest_ne1_production.mbc > \logs\ne1p.log 2>&1 sl@0: scanlog \logs\ne1p.log sl@0: sl@0: Functional (+ve & -ve) tests for NE1: sl@0: cd \os\kernelhwsrv\kernel\eka\rombuild sl@0: metabld smrtest_ne1_autotest.mbc > \logs\ne1at.log 2>&1 sl@0: scanlog \logs\ne1at.log sl@0: sl@0: sl@0: Notes sl@0: ----- sl@0: sl@0: *** variant.mmh Files sl@0: sl@0: \os\kernelhwsrv\kerneltest\e32test\smr\ne1\variant.mmh is a direct unmodified sl@0: copy of the version in \os\boardsupport\naviengine\navienginebsp\ne1_tb\variant.mmh. sl@0: Please ensure this is aligned before building NE1 tests. Same for sl@0: \os\kernelhwsrv\kerneltest\e32test\smr\ne1\flex\variant.mmh which is a copy of sl@0: \os\boardsupport\naviengine\navienginebspflexible\variant.mmh sl@0: