Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site qtlon.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxl!houxm!hogpc!houti!ariel!vax135!ukc!qtlon!tony From: tony@qtlon.UUCP Newsgroups: net.bugs.4bsd Subject: Re: UDA50 driver and bad blocks (modified driver available) Message-ID: <274@qtlon.UUCP> Date: Fri, 4-May-84 22:34:42 EDT Article-I.D.: qtlon.274 Posted: Fri May 4 22:34:42 1984 Date-Received: Sat, 5-May-84 01:44:51 EDT References: <322@mddc.UUCP> Organization: Quantime Ltd., London, WC1 Lines: 55 <> (This is in reply to a message asking for information/driver) The UDA50 controller is able to forward bad blocks ONCE the forwarding information has been set up. The forwarding table is set up at format time and may be updated dynamically by the device driver when a new bad block is detected. The controller is not able to write forwarding table or select which block is to be used as a replacement. The following is a brief description of the method involved. DEC SDI Standard Disk Format bad block Replacement and Caching Table (RCT) format from the book of the same name LBN = logical block number RBN = replacement block number The RCT consists of a number of blocks containing the following: sector 0: header/status information sector 1: contents of replaced LBN sectors 2-: replacement entries, 1 per RBN with MSCP (eg UDA50/RA80 combination) the sequence of events for replacing a bad block so that it will automatically be forwarded by the controller are: 1) update the RCT: if the replacement sector is on the same track as the bad one then it is a primary replacement, if it isn't it is a secondary replacement unless the sector header of the bad block is corrupt in which case it is a tertiary replacement. 2) issue a REPLACE command to the controller. The controller tries to write replacement info into some part of the bad block and set the bad block flag. If the header is bad or this is not possible then it is a tertiary replacement. 3) initialise the replacement block by issueing a WRITE command Primary and secondary replacement blocks can be replaced directly by the controller accessing the working parts of the bad block. Tertiary replacement is performed by the controller reading through the RCT The RCT is located at the end of the physical disk. On the RA80 drives there is one replacement block per track, but this does not mean that only one block on a track may be replaced. There are 4.1 and 4.2 versions of this driver which may be obtained by sending mail to me at the address below. A System V version is under development and will be available later this year. ____________________________________________________________ Tony Sumpter, Quantime Ltd. UUCP: {decvax,cbosgd,vax135}!qusavx!qtlon!tony ukc!qtlon!tony Phone: +44 1 637 7061