Previous

Next

Bottom

Contents

Glossary

Index

 

CF1 User's Manual

BigIDEA IDE Driver

May 1999

Revision 1.00

 Persistor Instruments Inc.
© 1998 All rights reserved.

 NOT FINALIZED!

The functions in this section exist to support new features of PicoDOS 2.0 and should be considered experimental. Even with the woefully inadequate documentation that currently exists, these may be useful to more complex applications. Be warned that unlike the finalized BIOS and PicoDOS functions, these functions are subject to much change, and you should not use them if you are not prepared to recode your projects as the functions mature.

Quick Reference Table

BIACheckReady

BIADriveReset

BIADrivePower

BIAGetDriver

BIAGetStatus

BIAGetStatusString

BIAInit

BIAInstallPreIOFunction

BIAPowerUp

BIAReviseTiming

BIAShutDown

BIATempC

 

#define     BIA_DEFAULT_SCB     0       // CS8, offset 0 {0,0,0}
#define     BIA_SCS_TYPE_ID     1000    // SandwichCard Supervisor ID for BigIDEAs
#define     BIA_DEFAULT_NS      150     // 150ns access

//  For the following enums: xxxChkBsyDelay is the time we wait from the first
//  application of power until we trust that the busy bit returned from the
//  attached device is valid. xxxStartupTimeout is the maximum time from the
//  first application of power that we will wait (when instructed to wait) for
//  the attached device to return a not busy value.
enum
    {
      DefaultStartupTimeout         = 30000000  // 30 seconds
    , DefaultChkBsyDelay            = 1000000   // 1 second
    , SmallHardDiskStartupTimeout   = 10000000  // 10 seconds (typ. 4s)
    , SmallHardDiskChkBsyDelay      = 10000     // 10ms
    , PCMCIAHardDiskStartupTimeout  = 2000000   // 2 seconds (typ. <1s)
    , PCMCIAHardDiskChkBsyDelay     = 10000     // 10ms
    , ATAFLashStartupTimeout        = 1000000   // 1 seconds (typ. 550ms)
    , ATAFLashChkBsyDelay           = 1000      // 1ms (is actually 150-250us)
    };

typedef struct
    {
    bool    poweron     : 1;    // we're applying power to the drive
    bool    spinup      : 1;    // drive is spinning up and not yet online
    bool    online      : 1;    // drive should be up and running
    bool    busy        : 1;    // drive currently busy (online must be valid)
    bool    ready       : 1;    // online and not busy
    bool    timedout    : 1;    // spinup timed out waiting for not busy
    }   BIAST;

#define BIA_HD_DRIVER_NAME  "BI25"  // driver name for BigIDEA with generic hard disk
#define BIA_25_DRIVER_NAME  "BI25"  // driver name for BigIDEA with 2.5" hard disk
#define BIA_18_DRIVER_NAME  "BI18"  // driver name for BigIDEA with PCMCIA disk
#define BIA_FCM_DRIVER_NAME "BFCM"  // master flash card, CSEL grounded, card 0
#define BIA_FCS_DRIVER_NAME "BFCS"  // slave flash card, CSEL open, card 1

typedef enum
    {
      BIAHD         // generic IDE hard drive
    , BIA25         // 2.5" hard drive
    , BIA18         // 1.8" PCMCIA hard drive
    , BIAFCM        // ATA flash card master
    , BIAFCS        // ATA flash card slave
    , BIA_DEV_TYPES // number of know driver types
    }   BIADEV;

BIAInit -- Initialize the BigIDEA hardware

Description

Prototype:

bool BIAInit(BIADEV device, ushort scms, ushort index, short nsAccess);

Definition:

#include <cf1pico.h>

Inputs:

device XXXXX
scms XXXXX
index XXXXX
nsAccess XXXXX

Returns:

XXXXX

Notes:

XXXXX

Timing:

TBD

BIAReviseTiming -- Setup the main delays and timeouts

Description

Prototype:

void BIAReviseTiming(BIADEV device, ulong chkBsyDelay, ulong spinUpTimeout );

Definition:

#include <cf1pico.h>

Inputs:

device XXXXX
chkBsyDelay XXXXX
spinUpTimeout XXXXX

Returns:

XXXXX

Notes:

XXXXX

Timing:

TBD

BIAGetDriver -- Return the low level BigIDEA driver (for the ATA driver)

Description

Prototype:

ATADvr BIAGetDriver(BIADEV device);

Definition:

#include <cf1pico.h>

Inputs:

device XXXXX

Returns:

XXXXX

Notes:

XXXXX

Timing:

TBD

BIAPowerUp -- Power up the BigIDEA and spin up the drive

Description

Prototype:

bool BIAPowerUp(bool waitready);

Definition:

#include <cf1pico.h>

Inputs:

waitready XXXXX

Returns:

XXXXX

Notes:

XXXXX

Timing:

TBD

BIAShutDown -- Turn off the drive and power down the BigIDEA

Description

Prototype:

void BIAShutDown(void);

Definition:

#include <cf1pico.h>

Inputs:

none

Returns:

XXXXX

Notes:

XXXXX

Timing:

TBD

BIAGetStatus -- Return the current drive status flags

Description

Prototype:

BIAST BIAGetStatus(void);

Definition:

#include <cf1pico.h>

Inputs:

none

Returns:

XXXXX

Notes:

XXXXX

Timing:

TBD

BIAGetStatusString -- Return the current drive status flags as a formatted 18 char string

Description

Prototype:

char BIAGetStatusString(void);

Definition:

#include <cf1pico.h>

Inputs:

none

Returns:

XXXXX

Notes:

XXXXX

Timing:

TBD

BIACheckReady -- DDDD

Description

Prototype:

bool BIACheckReady(bool waitready);

Definition:

#include <cf1pico.h>

Inputs:

waitready XXXXX

Returns:

XXXXX

Notes:

XXXXX

Timing:

TBD

BIAInstallPreIOFunction -- Install a function to call prior to low-level read/write operations

Description

Prototype:

vfptr BIAInstallPreIOFunction(vfptr pf);

Definition:

#include <cf1pico.h>

Inputs:

pf XXXXX

Returns:

XXXXX

Notes:

XXXXX

Timing:

TBD

BIATempC -- Return BigIDEA temperature in degrees C at the time of last power-up

Description

Prototype:

float BIATempC(void);

Definition:

#include <cf1pico.h>

Inputs:

none

Returns:

XXXXX

Notes:

XXXXX

Timing:

TBD

BIADrivePower -- Turn the BigIDEA switched power supply on or off

Description

Prototype:

void BIADrivePower(bool on);

Definition:

#include <cf1pico.h>

Inputs:

on XXXXX

Returns:

XXXXX

Notes:

XXXXX

Timing:

TBD

BIADriveReset -- Assert/release the /DRVRES line

Description

Prototype:

void BIADriveReset (bool assert);

Definition:

#include <cf1pico.h>

Inputs:

assert XXXXX

Returns:

XXXXX

Notes:

XXXXX

Timing:

TBD

void *BIAExp1(void *vp) PICO_CALL(BIAExp1); void *BIAExp2(void *vp) PICO_CALL(BIAExp2);

 

Previous

Next

Top

Contents

Glossary

Index

Tel: 508-759-6434

Fax: 508-759-6436

Copyright (C) 1998 Persistor Instruments Inc. - All Rights Reserved