1 1.5 ragge /* $NetBSD: rlreg.h,v 1.5 2017/05/22 17:22:29 ragge Exp $ */ 2 1.1 ragge 3 1.1 ragge /* 4 1.1 ragge * Copyright (c) 2000 Ludd, University of Lule}, Sweden. All rights reserved. 5 1.1 ragge * 6 1.1 ragge * Redistribution and use in source and binary forms, with or without 7 1.1 ragge * modification, are permitted provided that the following conditions 8 1.1 ragge * are met: 9 1.1 ragge * 1. Redistributions of source code must retain the above copyright 10 1.1 ragge * notice, this list of conditions and the following disclaimer. 11 1.1 ragge * 2. Redistributions in binary form must reproduce the above copyright 12 1.1 ragge * notice, this list of conditions and the following disclaimer in the 13 1.1 ragge * documentation and/or other materials provided with the distribution. 14 1.1 ragge * 15 1.1 ragge * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 16 1.1 ragge * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 17 1.1 ragge * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 18 1.1 ragge * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 19 1.1 ragge * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20 1.1 ragge * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21 1.1 ragge * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 1.1 ragge * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 1.1 ragge * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24 1.1 ragge * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 1.1 ragge */ 26 1.1 ragge 27 1.1 ragge /* 28 1.1 ragge * RL11 registers. 29 1.1 ragge */ 30 1.1 ragge #define RL_CS 0 31 1.1 ragge #define RL_BA 2 32 1.1 ragge #define RL_DA 4 33 1.1 ragge #define RL_MP 6 34 1.1 ragge #define RL_BAE 8 /* Only on RLV12 */ 35 1.1 ragge 36 1.1 ragge /* 37 1.1 ragge * Bits in Control/Status register 38 1.1 ragge */ 39 1.1 ragge #define RLCS_DRDY 0000001 40 1.1 ragge #define RLCS_IE 0000100 41 1.1 ragge #define RLCS_CRDY 0000200 42 1.1 ragge #define RLCS_DE 0040000 43 1.1 ragge #define RLCS_ERR 0100000 44 1.1 ragge #define RLCS_ERRMSK 0036000 45 1.1 ragge /* Command to give to drive */ 46 1.1 ragge #define RLCS_NOOP 0000000 /* No operation */ 47 1.1 ragge #define RLCS_WCK 0000002 /* Write Check */ 48 1.1 ragge #define RLCS_GS 0000004 /* Get Status */ 49 1.1 ragge #define RLCS_SEEK 0000006 /* Seek */ 50 1.1 ragge #define RLCS_RHDR 0000010 /* Read Header */ 51 1.1 ragge #define RLCS_WD 0000012 /* Write data */ 52 1.1 ragge #define RLCS_RD 0000014 /* Read data */ 53 1.1 ragge #define RLCS_RDWO 0000016 /* Read data without hdr check */ 54 1.1 ragge #define RLCS_USHFT 8 /* Shift unit number left */ 55 1.1 ragge #define RLCS_ADSHFT 4 /* Shift address bits 16-17 left */ 56 1.1 ragge 57 1.1 ragge /* 58 1.1 ragge * Bits in Disk Address register 59 1.1 ragge */ 60 1.1 ragge #define RLDA_SEEK 0000001 /* Issue a "Seek" command */ 61 1.1 ragge #define RLDA_GS 0000003 /* Issue a "Get Status" command */ 62 1.1 ragge #define RLDA_DIR 0000004 /* Move head towards spindle */ 63 1.1 ragge #define RLDA_RST 0000010 /* Reset the drive */ 64 1.1 ragge #define RLDA_HSSEEK 0000020 /* Head select for seek */ 65 1.1 ragge #define RLDA_HSRW 0000100 /* Head select for read/write */ 66 1.1 ragge #define RLDA_CYLSHFT 7 67 1.1 ragge 68 1.1 ragge /* 69 1.1 ragge * Bits in Multipurpose register 70 1.1 ragge */ 71 1.2 ragge #define RLMP_STATUS 0000007 /* Status bits mask */ 72 1.2 ragge #define RLMP_UNLOAD 0 /* not loaded */ 73 1.2 ragge #define RLMP_SPINUP 1 /* spinning up */ 74 1.2 ragge #define RLMP_BRUSHING 2 /* brushes out */ 75 1.2 ragge #define RLMP_LOADHEADS 3 /* loading heads */ 76 1.2 ragge #define RLMP_SEEKING 4 /* seeking */ 77 1.2 ragge #define RLMP_LOCKED 5 /* lock turned on */ 78 1.2 ragge #define RLMP_UNLHEADS 6 /* unloading heads */ 79 1.2 ragge #define RLMP_SPUNDOWN 7 /* disk spun down */ 80 1.2 ragge 81 1.1 ragge #define RLMP_DT 0000200 /* Set if RL02, otherwise RL01 */ 82 1.1 ragge #define RLMP_HS 0000100 /* Head select */ 83 1.1 ragge 84 1.1 ragge /* 85 1.1 ragge * RL01/RL02 disk layout. 86 1.1 ragge */ 87 1.1 ragge #define RL_BPS 256 /* Bytes/sector */ 88 1.1 ragge #define RL_SPT 40 /* Sectors/track */ 89 1.1 ragge #define RL_TPS01 256 /* Tracks/surface RL01 */ 90 1.1 ragge #define RL_TPS02 512 /* Tracks/surface RL02 */ 91 1.1 ragge #define RL_SPD 2 /* Surfaces/disk */ 92 1.1 ragge 93 1.1 ragge /* 94 1.1 ragge * Other... 95 1.1 ragge */ 96 1.1 ragge #define RL_MAXDPC 4 /* Max disks/controller */ 97