--- a/epoc32/include/assp/template_assp/template_assp.h Wed Mar 31 12:27:01 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,230 +0,0 @@
-// Copyright (c) 1997-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 "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
-// which accompanies this distribution, and is available
-// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// template\template_assp\template_assp.h
-// Definitions for Template ASSP
-//
-//
-
-
-
-#ifndef __A32TEMPLATEV1_H__
-#define __A32TEMPLATEV1_H__
-#include <e32const.h>
-#include <platform.h>
-#include <e32hal.h>
-#include <assp.h>
-#include <kern_priv.h>
-
-//----------------------------------------------------------------------------
-// Constant conventions:
-//----------------------------------------------------------------------------
-
-// KH Hardware definition
-// KHw 4-byte word definition prefix
-// KHb Byte definition prefix
-// KHt Bit definition prefix
-// KHm Mask definition prefix
-// KHs Shift definition prefix
-// KHo Offset definition prefix
-// KHwRo Read-only register
-// KHwWo Write-only register
-// KHwRw Read/write register
-// KHwBase Base address within memory map
-// _i Input suffix
-// _o Output suffix
-// _b Input/output suffix
-
-//----------------------------------------------------------------------------
-// Memory map: physical addresses
-//----------------------------------------------------------------------------
-// NB: these are just examples
-
-const TUint KHwBaseCs0 = 0x00000000;
-const TUint KHwBaseCs1 = KHwBaseCs0 + 128*KMega;
-const TUint KHwBaseCs2 = KHwBaseCs1 + 128*KMega;
-const TUint KHwBaseCs3 = KHwBaseCs2 + 128*KMega;
-
-const TUint KHwBaseMemBank0 = 0x20000000;
-const TUint KHwBaseMemBank1 = KHwBaseMemBank0 + 256*KMega;
-
-const TUint KHwBaseRegisters = 0x80000000;
-const TUint KHwBasePeripherals = KHwBaseRegisters; // 8000.0000
-const TUint KHwBasePeripheralsA = KHwBasePeripherals + 256*KMega; // 9000.0000
-const TUint KHwBasePeripheralsB = KHwBasePeripheralsA + 256*KMega; // A000.0000
-const TUint KHwBasePeripheralsC = KHwBasePeripheralsB + 256*KMega; // B000.0000
-
-// etc...
-
-//----------------------------------------------------------------------------
-// Memory map: linear addresses
-//----------------------------------------------------------------------------
-
-#if defined (__MEMMODEL_MULTIPLE__)
-const TUint KHwLinBaseRegisters = 0xc6000000; // as mapped by bootstrap
-const TUint KHwLinSeparation = 0x1000;
-#elif defined(__MEMMODEL_DIRECT__)
-const TUint KHwLinBaseRegisters = 0x10000000; // physical address (example only)
-const TUint KHwLinSeparation = 0x01000000; // physical offsets (example only)
-#else
-const TUint KHwLinBaseRegisters = 0x63000000; // as mapped by bootstrap
-const TUint KHwLinSeparation = 0x1000;
-#endif
-
-// EXAMPLE ONLY:
-const TUint KHwLinBasePeriphGroupA = KHwLinBaseRegisters;
-const TUint KHwLinBasePeripheral1 = KHwLinBasePeriphGroupA + 0x00*KHwLinSeparation;
-const TUint KHwLinBasePeripheral2 = KHwLinBasePeriphGroupA + 0x01*KHwLinSeparation;
-const TUint KHwLinBasePeripheral3 = KHwLinBasePeriphGroupA + 0x02*KHwLinSeparation;
-const TUint KHwLinBasePeripheral4 = KHwLinBasePeriphGroupA + 0x03*KHwLinSeparation;
-
-const TUint KHwLinBasePeriphGroupB = KHwLinBaseRegisters + 0x20*KHwLinSeparation;
-
-const TUint KHwBaseSerial1 = KHwLinBasePeriphGroupB + 0x00*KHwLinSeparation;
-const TUint KHwBaseSerial2 = KHwLinBasePeriphGroupB + 0x01*KHwLinSeparation;
-const TUint KHwBaseSerial3 = KHwLinBasePeriphGroupB + 0x02*KHwLinSeparation;
-
-const TUint KHwLinBasePeriphGroupC = KHwLinBaseRegisters + 0x30*KHwLinSeparation;
-
-const TUint KHwBaseInterrupts = KHwLinBasePeriphGroupC + 0x00*KHwLinSeparation;
-const TUint KHwInterruptsMaskRo = KHwBaseInterrupts + 0x00;
-const TUint KHwInterruptsMaskSet = KHwBaseInterrupts + 0x04;
-const TUint KHwInterruptsMaskClear = KHwBaseInterrupts + 0x08;
-const TUint KHoInterruptsIrqPending = 0x0C;
-const TUint KHwInterruptsIrqPending = KHwBaseInterrupts + KHoInterruptsIrqPending;
-const TUint KHoInterruptsFiqPending = 0x10;
-const TUint KHwInterruptsFiqending = KHwBaseInterrupts + KHoInterruptsFiqPending;
-
-
-// Other device specifc constants, register offsets, bit masks, general-purpose I/O allocations,
-// interrupt sources, Memory settings and geometries, etc
-
-
-class TTemplate
- {
- /**
- * Accessor functions to hardware resources managed by ASSP (ASIC). Auxiliary and information functions which
- * are commonly used by Device Drivers or ASSP/Variant code.
- * Some examples below. These examples assume that the hardware blocks they access (e.g. Interrupt controller
- * RTC, Clock Control Module, UART, etc) are part of the ASSP.
- */
-public:
- /**
- * initialisation
- */
- static void Init3();
- /**
- * Active waiting loop (not to be used after System Tick timer has been set up - Init3()
- * @param aDuration A wait time in milliseconds
- */
- IMPORT_C static void BootWaitMilliSeconds(TInt aDuration);
- /**
- * Read and return the Startup reason of the Hardware
- * @return A TMachineStartupType enumerated value
- */
- IMPORT_C static TMachineStartupType StartupReason();
- /**
- * Read and return the the CPU ID
- * @return An integer containing the CPU ID string read off the hardware
- */
- IMPORT_C static TInt CpuVersionId();
- /**
- * Read Linear base address of debug UART (as selected in obey file or with eshell debugport command).
- * @return An integer containing the Linear address of debug Serial Port
- */
- IMPORT_C static TUint DebugPortAddr();
- /**
- * Read CPU clock period in picoseconds
- * @return An integer containing the CPU clock period in picoseconds
- */
- IMPORT_C static TUint ProcessorPeriodInPs();
- /**
- * Set the Hardware Interrupt masks
- * @param aValue A new interrupt mask value
- */
- IMPORT_C static void SetIntMask(TUint aValue);
- /**
- * Modify the Hardware Interrupt masks
- * @param aClearMask A mask with interrupt source bits to clear (disable)
- * @param aSetMask A mask with interrupt source bits to set (enable)
- */
- IMPORT_C static void ModifyIntMask(TUint aClearMask,TUint aSetMask);
- /**
- * Read the state of pending interrupts
- * @return A mask containing bits set for all pending interrupts
- */
- IMPORT_C static TUint IntsPending();
- /**
- * Read the current time of the RTC
- * @return A value that is the real time as given by a RTC
- */
- IMPORT_C static TUint RtcData();
- /**
- * Set the RTC time
- * @param aValue The real time to set the RTC
- */
- IMPORT_C static void SetRtcData(TUint aValue);
- /**
- * Obtain the physical start address of Video Buffer
- * @return the physical start address of Video Buffer
- */
- IMPORT_C static TPhysAddr VideoRamPhys();
-private:
- /**
- * Auxiliary accessor functions for Hardware registers (used by functions above)
- */
- static inline TUint Register32(TUint aAddr);
- static inline void SetRegister32(TUint aValue, TUint aAddr);
- static void ModifyRegister32(TUint aClearMask, TUint aSetMask, TUint aAddr);
- /**
- * Assp-specific implementation for Kern::NanoWait function
- */
- static void NanoWait(TUint32 aInterval);
- };
-
-// TO DO: (optional)
-//
-// Enumerate here all ASSP interrupt souces. It could be a good idea to enumerate them in a way that facilitates
-// operating on the corresponding interrupt controller registers (e.g using their value as a shift count)
-//
-// EXAMPLE ONLY
-enum TTemplateAsspInterruptId
- {
- // ASSP or first-level Interrupt IDs
- EAsspIntIdA=0,
- EAsspIntIdB=1,
- EAsspIntIdC=2,
- EAsspIntIdD=3,
- EAsspIntIdE=4,
- // ...
- EAsspIntIdUsb=11,
- EAsspIntIdDma=12,
- // ...
- EAsspIntIdZ=25
- };
-
-//
-// TO DO: (optional)
-//
-// Define here some commonly used ASSP interrupts
-//
-// EXAMPLE ONLY
-const TInt KIntIdExpansion=EAsspIntIdA; // this is the ASSP interrupt which connects to second-level (Variant)
- // Interrupt controller: all 2nd level interrupts come through this interrupt
-const TInt KIntIdOstMatchMsTimer=EAsspIntIdB;
-const TInt KIntIdDigitiser=EAsspIntIdC;
-const TInt KIntIdSound=EAsspIntIdD;
-const TInt KIntIdTimer1=EAsspIntIdE;
-
-
-#endif