Steven M. Schultz sms at moe.2bsd.com
Mon Jan 4 10:18:11 AEST 1999

Hi -

> From: "Erin W. Corliss" <erin at coffee.corliss.net>
> Anyone care to comment on the likelihood of someone being able to modify
> the kernel binary for Unix version 7 so that it treats a 60 megabyte RD52
> drive like an array of six RL drives?

	Not likely at all.  Completely different controllers - the only
	similarity between an RL controller and an MSCP (RQDX3 for example)
	controller lies in their both being Qbus cards and disks are attached
	to them.   The RL is about as smart as a rock - it can't even do
	spiral reads/writes (even the RK05 could do that), so there's code
	present to break transfers up into multiple pieces if cylinder and side
	boundaries are crossed.  Also the RL is a "traditional" device in
	that the driver calculates sector/track/cylinder and stuffs those
	values into registers.  With MSCP you have to build command and response
	ring buffers, fill in a packet with rather badly documented values,
	and then poke the controller to go look for its new packet.  The
	geometry calculations are done in the controller not the driver.
	The only concept of geometry that MSCP drivers have is "how many
	sectors does the drive have" (and even then that value's only used to
	pretty print something when the drive is first accessed) - somewhat 
	like SCSI in that aspect.

	Then too the RD52 is 30MB (sect/trak = 18, tracks/cyl = 7, cyl = 480).
	The RD53 is ~70mb and the RD54 is ~159mb.

	It'd be easier to add an MSCP driver to V7 than it would be
	to try and do binary edits on the RL driver to support non-RL devices.

> I looked at the device-specific assembly code in boot blocks for the two
> drives and it seems that besides the geometry they're pretty similar...  I

	They're about as different as can be.  I think you were lulled into
	thinking they're similar by the fact that most of the bootblock is
	"boiler plate" (the filesystem search code to look for /boot).  The
	part that deals with the device is small but quite dissimilar.

	The bootblock is the least/smallest part of the problem.  All the boot-
	block does is load /boot - and that's where you need a more fullfeatured
	(but still not as full as the kernel's) driver.  Then once there's
	a standalone driver for a device in /boot then, and only then, does
	the kernel become involved (at which time a full driver is needed).

> assume, of course, that the binary license doesn't allow me to disassemble
> or modify the kernel, tho.

	The A.U. license provides full up source - no need to disassemble 
	anything - that can be modified to whatever extent is desired.  That
	won't solve the problem of getting a MSCP driver into V7 unless one
	can do the development work using a simulator.

	Steven Schultz

Received: (from major at localhost)
	by minnie.cs.adfa.edu.au (8.9.1/8.9.1) id GAA06247
	for pups-liszt; Tue, 5 Jan 1999 06:48:52 +1100 (EST)

More information about the TUHS mailing list