Documentation/scsi/53c700.rst
Source file repositories/reference/linux-study-clean/Documentation/scsi/53c700.rst
File Facts
- System
- Linux kernel
- Corpus path
Documentation/scsi/53c700.rst- Extension
.rst- Size
- 4703 bytes
- Lines
- 135
- Domain
- Support Tooling And Documentation
- Bucket
- Documentation
- Inferred role
- Support Tooling And Documentation: documentation
- Status
- atlas-only
Why This File Exists
Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
- Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
.. SPDX-License-Identifier: GPL-2.0
=======================
The 53c700 Driver Notes
=======================
General Description
===================
This driver supports the 53c700 and 53c700-66 chips. It also supports
the 53c710 but only in 53c700 emulation mode. It is full featured and
does sync (-66 and 710 only), disconnects and tag command queueing.
Since the 53c700 must be interfaced to a bus, you need to wrapper the
card detector around this driver. For an example, see the
NCR_D700.[ch] or lasi700.[ch] files.
The comments in the 53c700.[ch] files tell you which parts you need to
fill in to get the driver working.
Compile Time Flags
==================
A compile time flag is::
CONFIG_53C700_LE_ON_BE
define if the chipset must be supported in little endian mode on a big
endian architecture (used for the 700 on parisc).
Using the Chip Core Driver
==========================
In order to plumb the 53c700 chip core driver into a working SCSI
driver, you need to know three things about the way the chip is wired
into your system (or expansion card).
1. The clock speed of the SCSI core
2. The interrupt line used
3. The memory (or io space) location of the 53c700 registers.
Optionally, you may also need to know other things, like how to read
the SCSI Id from the card bios or whether the chip is wired for
differential operation.
Usually you can find items 2. and 3. from general spec. documents or
even by examining the configuration of a working driver under another
operating system.
The clock speed is usually buried deep in the technical literature.
It is required because it is used to set up both the synchronous and
asynchronous dividers for the chip. As a general rule of thumb,
manufacturers set the clock speed at the lowest possible setting
consistent with the best operation of the chip (although some choose
to drive it off the CPU or bus clock rather than going to the expense
of an extra clock chip). The best operation clock speeds are:
========= =====
53c700 25MHz
53c700-66 50MHz
53c710 40Mhz
========= =====
Writing Your Glue Driver
========================
This will be a standard SCSI driver (I don't know of a good document
describing this, just copy from some other driver) with at least a
Annotation
- Atlas domain: Support Tooling And Documentation / Documentation.
- Implementation status: atlas-only.
- IRQ or DMA behavior appears here, which is relevant to the selected PCIe/NVMe device path.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.