--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bsptemplate/asspandvariant/template_assp/template_assp.cpp Mon Oct 19 15:55:17 2009 +0100
@@ -0,0 +1,175 @@
+// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// template\template_assp\template_assp.cpp
+//
+//
+
+
+#include <template_assp_priv.h>
+
+//----------------------------------------------------------------------------
+// Initialisation
+
+void TTemplate::Init3()
+//
+// Phase 3 initialisation
+//
+ {
+ //
+ // TO DO: (optional)
+ //
+ // Initialise any TTemplate class data members here
+ //
+
+ // Use assp-specific nano wait implementation
+ Kern::SetNanoWaitHandler(NanoWait);
+ }
+
+EXPORT_C TMachineStartupType TTemplate::StartupReason()
+//
+// Read and return the Startup reason of the Hardware
+//
+ {
+ //
+ // TO DO: (optional)
+ //
+ // Read the Reset reason from the hardware register map it to one of TMachineStartupType enumerated values
+ // and return this
+ //
+ return EStartupCold; // EXAMPLE ONLY
+ }
+
+EXPORT_C TInt TTemplate::CpuVersionId()
+//
+// Read and return the the CPU ID
+//
+ {
+ //
+ // TO DO: (optional)
+ //
+ // Read the CPU identification register (if one exists) mask off redundant bits and return this
+ //
+ return 0; // EXAMPLE ONLY
+ }
+
+EXPORT_C TUint TTemplate::DebugPortAddr()
+//
+// Return Linear base address of debug UART (as selected in obey file or with eshell debugport command).
+//
+ {
+ //
+ // TO DO: (optional)
+ //
+ // Read the iDebugPort field of the SuperPage, map the result to the corresponding Serial Port Linear
+ // address and return this, like the following EXAMPLE ONLY:
+ //
+ TUint debugPort;
+ switch (Kern::SuperPage().iDebugPort)
+ {
+ case 1:
+ debugPort=KHwBaseSerial1;
+ break;
+ case 2:
+ debugPort=KHwBaseSerial2;
+ break;
+ case 3:
+ debugPort=KHwBaseSerial3;
+ break;
+ default:
+ debugPort=KHwBaseSerial1;
+ break;
+ }
+ return debugPort;
+ }
+
+EXPORT_C TUint TTemplate::ProcessorPeriodInPs()
+//
+// Return CPU clock period in picoseconds
+//
+ {
+ //
+ // TO DO: (optional)
+ //
+ // Read the CPU clock speed and return its period in picoseconds. If only a limited range of speeds is possible
+ // it is preferable to use the masked speed reading as an index into a look up table containing the corresponding
+ // period
+ //
+ return 0; // EXAMPLE ONLY
+ }
+
+EXPORT_C void TTemplate::SetIntMask(TUint aValue)
+//
+// Set the Hardware Interrupt masks
+//
+ {
+ // the following is EXAMPLE ONLY
+ TInt irq=NKern::DisableAllInterrupts();
+ AsspRegister::Write32(KHwInterruptsMaskSet, aValue);
+ AsspRegister::Write32(KHwInterruptsMaskClear, ~aValue);
+ NKern::RestoreInterrupts(irq);
+ }
+
+EXPORT_C void TTemplate::ModifyIntMask(TUint aClearMask,TUint aSetMask)
+//
+// Modify the Hardware Interrupt masks
+//
+ {
+ // the following is EXAMPLE ONLY
+ TInt irq=NKern::DisableAllInterrupts();
+ AsspRegister::Write32(KHwInterruptsMaskSet, aSetMask);
+ AsspRegister::Write32(KHwInterruptsMaskClear, ~aClearMask);
+ NKern::RestoreInterrupts(irq);
+ }
+
+EXPORT_C TUint TTemplate::IntsPending()
+//
+// Return the state of pending interrupts
+//
+ {
+ // the following is EXAMPLE ONLY
+ return(AsspRegister::Read32(KHwInterruptsIrqPending));
+ }
+
+EXPORT_C TUint TTemplate::RtcData()
+//
+// Return the current time of the RTC
+//
+ {
+ //
+ // TO DO: (optional)
+ //
+ // Read the RTC current time register and return this time
+ //
+ return 0; // EXAMPLE ONLY
+ }
+
+EXPORT_C void TTemplate::SetRtcData(TUint aValue)
+//
+// Set the RTC time
+//
+ {
+ //
+ // TO DO: (optional)
+ //
+ // Set the RTC current time with aValue (may need formatting appropriately)
+ //
+ }
+
+EXPORT_C TPhysAddr TTemplate::VideoRamPhys()
+//
+// Return the physical address of the video RAM
+//
+ {
+ return TemplateAssp::VideoRamPhys;
+ }