========================================================================
		QuaterDeck Initialization called by BSP
========================================================================

Initialization Sample Program will show how to initialize the QuaterDeck
Driver/Device.

This Sample includes the following files:
	- msApiInit.c
	- qdSim.c
	- qdSimRegs.h
	- ev96122mii.c
	- osSem.c

msApiInit.c
	qdStart is the main function of this Sample and does the followings:
	1) register the required functions.(gtRegister API)
		1.1) readMii - BSP specific MII read function
						(provided by BSP and required by all QuarterDeck API)
		1.2) writeMii - BSP specific MII write function
						(provided by BSP and required by all QuarterDeck API)
		1.3) semCreate - OS specific semaphore create function.
						(provided by BSP and recommanded by QuarterDeck MAC
						address database API)
		1.4) semDelete - OS specific semaphore delete function.
						(provided by BSP and recommanded by QuarterDeck MAC
						address database API)
		1.5) semTake - OS specific semaphore take function.
						(provided by BSP and recommanded by QuarterDeck MAC
						address database API)
		1.6) semGive - OS specific semaphore give function.
						(provided by BSP and recommanded by QuarterDeck MAC
						address database API)
		Notes) The given example will use EV96122 BSP and QuarterDeck Simulator
		as an example.

	2) Initialize BSP provided routine (if required).
		Notes) QuarterDeck Simulator needs to be initialized.(qdSimInit)

	3) Calls sysConfig routine.
		1.1) Input (GT_SYS_CONFIG) - CPU Port Number (Board Specific,
		either port 5 or port 6) and Port state (either 1 for Forwarding mode
		or 0 for Blocked mode)
		1.2) Output (GT_SYS_INFO) - Device ID, Base MII Address (either 0 or
		0x10), Number of Ports, and CPU port number.

	4) Calls sysEnable (for future use.)

qdSim.c (QuaterDeck Simulator)
    Simulates QuaterDeck Device(88E6052)'s register map. When QuareterDeck API
	try to read/write a bit or bits into QuaterDeck, the simulator will
	redirect to its own memory place and performing the function very close to
	QuaterDeck. For example,
	1) user can set/reset a certain bit of QuarterDeck registers
		(Phy,Port,and General registers).
	2) user can access ATU (flush, load, purge, etc. with max MAC addresses
		of 32)
	3) user can manually generate an Interrupt and test the Interrupt routine.
	4) when user read a register, it will clear a certain register if it's a
		Self Clear register.
	5) when user write a register, it will return ERROR if it's read only
		register.
	Notes) Simulator can be used when user has no QuarterDeck device connected Board.

	Exported routines are :
		qdSimRead 	for reading MII registers,
		qdSimWrite 	for writing to MII registers, and
		qdSimInit 	for initializing Simulator.

ev96122mii.c
	Provides EV-96122 Board specific MII access functions.

	Exported routines are :
		gtBspReadMii 	for reading MII registers,
		gtBspWriteMii	for writing to MII registers, and
		gtBspMiiInit 	for initializing EV-96122 and QuarterDeck connection.

osSem.c
	Provides OS specific Semapore Functions.

	Exported routines are :
		osSemCreate 	for semaphore creation
		osSemDelete 	for semaphore deletion
		osSemWait 		for taking semaphore
		osSemSignal 	for releasing semaphore
