leodiskinit.c 1.64 KB

/**************************************************************************
 *									  *
 *		 Copyright (C) 1995, Silicon Graphics, Inc.		  *
 *									  *
 *  These coded instructions, statements, and computer programs  contain  *
 *  unpublished  proprietary  information of Silicon Graphics, Inc., and  *
 *  are protected by Federal copyright law.  They  may  not be disclosed  *
 *  to  third  parties  or copied or duplicated in any form, in whole or  *
 *  in part, without the prior written consent of Silicon Graphics, Inc.  *
 *									  *
 **************************************************************************/

#include "osint.h"
#include "piint.h"
#include "rcp.h"

OSPiHandle __LeoDiskHandle;
OSPiHandle *__osDiskHandle;

/*
 * Name:   osLeoDiskInit
 *
 * Description:
 *	Inititlaize Leo Disk.
 *
 */
OSPiHandle *
osLeoDiskInit(void)
{
	u32 saveMask;

	/* Fill basic information */

	__LeoDiskHandle.type = DEVICE_TYPE_64DD;
	__LeoDiskHandle.baseAddress = PHYS_TO_K1(PI_DOM2_ADDR1);

	/* Get Domain parameters */

	__LeoDiskHandle.latency = (u8)0x00000003;
	__LeoDiskHandle.pulse = (u8)0x00000006;
	__LeoDiskHandle.pageSize = (u8)0x00000006;
	__LeoDiskHandle.relDuration = (u8)0x00000002;
	__LeoDiskHandle.domain = PI_DOMAIN2;

	/* Fill speed and transferInfo to zero */

	__LeoDiskHandle.speed = 0;
	bzero(&(__LeoDiskHandle.transferInfo),
			sizeof(__LeoDiskHandle.transferInfo));

	/* 
	 * Put the LeoDiskHandle onto PiTable
	 */

	saveMask = __osDisableInt();

	__LeoDiskHandle.next = __osPiTable;
	__osPiTable = &__LeoDiskHandle;
	__osDiskHandle = &__LeoDiskHandle;

	__osRestoreInt(saveMask);


    	return(&__LeoDiskHandle);

}  /* osLeoDiskInit */