Without a floppy drive (and no, Jimbo, I don't think he'll ever get his USB floppy to work; it takes specific support in the drive and in the BIOS to support it at boot time), you should configure your BIOS to run your drives in legace IDE mode. For instance I was just creating some Live CD's at work the other day for server bare metal recovery, and the enviroment was a chopped down Windows CE, Of course I had to feed the drivers for SCSI and Network cards myself to create a live CD that would see correctly the RAID ARRAY on that server but that is not such a big deal.
- Drivers Jimbo Scsi & Raid Devices Download
- Drivers Jimbo Scsi & Raid Devices List
- Drivers Jimbo Scsi & Raid Devices For Sale
- Drivers Jimbo Scsi & Raid Devices Usb
- This is a new setup of ESXi 4.0 running VMs off of a Cybernetics miSAN D iSCSI SAN. Doing a high data read test on a VM, it took 8 minutes vs 1.5 minutes on the the same VM located on a slower VMWare Server 1.0 Host with the VMs located on local disk. I'm watching my read speeds from the SAN, and i.
- SCSI miniport drivers for NT-based operating systems are HBA-specific but operating system-independent. That is, each miniport driver links itself with the system-supplied SCSI port driver, which is a dynamic-link library (DLL), and calls only the port driver's ScsiPortXxx routines to communicate with the system and its HBA.
- Good luck, jimbo I think the fuss is that Arch defaults to the 'current' repo instead of the 'release' repo, so the majority of people don't actually use the release tree, and yet don't realise they are not using Arch 0.7.2.
FTDI board goes to 3G-6210n Pins
GND goes to pin 3
TX goes to pin 2
RX goes to pin 4
I used my Ubuntu 12.04 machine and connected the Sparkfun FTDI board to one of the USB ports. I checked using the command dmesg and found the device was defined as /dev/ttyUSB0. I started minicom a terminal program using the command minicom -D /dev/ttyUSB0.
I set the Com port to 38400 baud 8N1 = 8 bits, no parity and 1 stop bit. No hardware or software flow control is selected on minicom.
I then powered on the 3G-6210n and boot messages appeared on the terminal window of minicom. It definitely is running Linux see messages below while it booted. Initial things I noticed 32MB RAM, 4MB Flash, 200MHz Processor
U-Boot 1.1.4 (Oct 9 2009 - 17:38:59)
U-Boot code: 00000000 -> 00019528 BSS: -> 0001E478
CPU Clock: 200 MHz
1.8V Vdd Output: 1.793
2.5V Vdd Output: 2.531
RAM Configuration:
Bank #0: 00000000 32 MB
Flash Manufacturer: MXIC
Flash Device: MXLV320CB(4MB)
Flash: 4 MB
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0
## Starting application at 0x10040000 ...
Uncompressing Linux................................................................................... done, booting the kern.
Linux version 2.6.16-star (root@vance.localdomain) (gcc version 3.4.6) #1412 Fri Jun 11 17:05:56 CST 2010
CPU: FA526id(wb) [66015261] revision 1 (ARMv4)
Machine: STAR STR9100
Memory policy: ECC disabled, Data cache writeback
CPU0: D VIVT write-back cache
CPU0: I cache: 16384 bytes, associativity 2, 16 byte lines, 512 sets
CPU0: D cache: 16384 bytes, associativity 2, 16 byte lines, 512 sets
CPU clock at 200MHz
AHB clock at 100MHz
APB clock at 50MHz
Built 1 zonelists
Kernel command line: root=/dev/mtdblock3
PID hash table entries: 256 (order: 8, 4096 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 32MB = 32MB total
Memory: 29788KB available (2252K code, 251K data, 100K init)

CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
PCI clock at 33M
PCI: bus0: Fast back to back transfers disabled
PCI Bridge found
PCI map irq: 00:00.00 slot 0, pin 1, irq: 0
SCSI subsystem initialized
usbcore: registered new driver usbfs
usbcore: registered new driver hub
Bluetooth: Core ver 2.8
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
squashfs: version 3.4 (2008/08/26) Phillip Lougher
Initializing Cryptographic API
io scheduler noop registered
io scheduler deadline registered (default)
***********Init LED Driver*****************
Init GPIO Interrupt
***********Init LED Driver Finishing*****************
LED & GPIO & LAN Status Driver LED_VERSION
GPIO interrupt handler install ok.
Serial: 8250/16550 driver $Revision: 1.90 $ 1 ports, IRQ sharing disabled
serial8250: ttyS0 at MMIO 0x78000000 (irq = 10) is a 16550A
VLAN0_VLAN_TAG: 0
PPP generic driver version 2.4.2
PPP BSD Compression module registered
PPP MPPE Compression module registered
Drivers Jimbo Scsi & Raid Devices Download
NET: Registered protocol family 24
rdm_major = 254
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
STR9100 NOR Flash: Found 1 x16 devices at 0x0 in 16-bit bank
Amd/Fujitsu Extended Query Table at 0x0040
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
Creating 5 MTD partitions on 'STR9100 NOR Flash':
0x00000000-0x00040000 : 'ARMBOOT'
0x00040000-0x001a0000 : 'Linux Kernel1'
0x001a0000-0x003e0000 : 'ROOT FS1'
0x003e0000-0x00400000 : 'Configs'
0x00040000-0x003e0000 : 'Upgrade'
block2mtd: version $Revision: 1.30 $
usbmon: debugfs is not available
str9100-ehci str9100-ehci: str9100-ehci
str9100-ehci str9100-ehci: new USB bus registered, assigned bus number 1
str9100-ehci str9100-ehci: irq 24, io mem 0xcc000000
str9100-ehci str9100-ehci: USB 0.0 started, EHCI 1.00, driver 10 Dec 2004

usb usb1: Product: str9100-ehci
usb usb1: Manufacturer: Linux 2.6.16-star ehci_hcd
usb usb1: SerialNumber: str9100-ehci
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
ohci_hcd: 2005 April 22 USB 1.1 'Open' Host Controller (OHCI) Driver (STR9100)
str9100-ohci str9100-ohci: str9100-ohci
str9100-ohci str9100-ohci: new USB bus registered, assigned bus number 2
str9100-ohci str9100-ohci: irq 23, io mem 0xc4000000
usb usb2: Product: str9100-ohci
usb usb2: Manufacturer: Linux 2.6.16-star ohci_hcd
usb usb2: SerialNumber: str9100-ohci
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
usb 1-1: new high speed USB device using str9100-ehci and address 2
Bluetooth: HCI USB driver ver 2.9
usb 1-1: Product: 802.11 n WLAN
usb 1-1: Manufacturer: Ralink
usb 1-1: SerialNumber: 1.0
usb 1-1: configuration #1 chosen from 1 choice
usbcore: registered new driver hci_usb
u32 classifier
Perfomance counters on
Netfilter messages via NETLINK v0.30.
NET: Registered protocol family 2
IP route cache hash table entries: 512 (order: -1, 2048 bytes)
TCP established hash table entries: 2048 (order: 1, 8192 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
ip_conntrack version 2.4 (256 buckets, 2048 max) - 240 bytes per conntrack
ctnetlink v0.90: registering with nfnetlink.
ip_tables: (C) 2000-2006 Netfilter Core Team
ipt_recent v0.3.1: Stephen Frost
ClusterIP Version 0.8 loaded successfully
arp_tables: (C) 2002 David S. Miller
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
Bluetooth: L2CAP ver 2.8
Bluetooth: L2CAP socket layer initialized
Bluetooth: BNEP (Ethernet Emulation) ver 1.2
Bluetooth: BNEP filters: protocol multicast
VFS: Mounted root (squashfs filesystem) readonly.
| Last modified: 8 February 1999. |
These programming notes cover the following topics:
SCSI Miniport Drivers
NT 5 SCSI miniports are either run as legacy drivers or as PnP drivers. A PnP miniport must have a HwScsiStopAdaptor routine and have a PnPInterface entry in the registry.Initialisation happens different, ie in PnP manner.
Miniport called by the system port driver to process SCSI Request Blocks (SRBs). These are translated by NT into Command Descriptor Blocks (CDBs). Non-SCSI drivers can fit into this scheme and pretend to be SCSI device.
A miniport has a DriverEntry and various HwScsi... routines. Various other call-backs used. Called by port driver.
A driver has a device extension for each HBA. Also has a luextension
for each logical unit. Can specify the size of SrbExtensions
.
DriverEntry initialises an HW_INITIALIZATION_DATA structure with pointers to its routines. It then calls ScsiPortInitialize for each bus it might be attached to.
In legacy drivers, ScsiPortInitialize calls back the driver’s HwScsiFindAdapter routine. HwScsiFindAdapter sees if its hardware is present on the given bus and gets access to it. It allocates a DMA buffer if appropriate.
HwScsiInitialize is then called for each found HBA. This sets any registers and enables interrupts.
HwScsiStartIo called to process SRBs. The miniport driver owns the request and must complete it. The miniport calls ScsiPortNotification with notification codes. For each SRB, a miniport usually issues a CompleteRequest
notification and then a NextRequest
or NextLuRequest
notification.
Most SRBs are SRB_FUNCTION_EXECUTE_SCSI
.
A miniport can say that it is busy and ask that the SRB be queued again for processing later.
To perform DMA, call ScsiPortIoMapTransfer. When the DMA controller is ready, the miniport’s HwScsiDmaStarted routine is called to set up the HBA for the DMA transfer. Call ScsiPortFlushDma to flush any cached data from DMA controllers.
The HwScsiInterrupt routine is to service a HBA interrupt. Note that normally there is no deferred procedure call. So service the interrupt and call ScsiPortNotification to complete the request and start the next one.
Some HwScsiInterrupt routines might need to run for a long time, eg more than 50 microseconds if doing polling programmed I/O. This is best handled by scheduling a DPC call-back using ScsiPortNotificationCallEnableInterrupts
with a HwScsiEnableInterruptsCallback routine. HwScsiEnableInterruptsCallback can carry on interacting with the HBA safe from its own interrupts, although all other system interrupts are enabled. After completing the request, as per usual, it makes a ScsiPortNotificationCallDisableInterrupts
with a HwScsiDisableInterruptsCallback routine; this should reenable interrupts from the HBA.
HwScsiResetBus is called to reset a bus. ScsiPortCompleteRequest can be used instead to complete all relevant requests after a bus or device reset.
A timer routine might be used to poll the HBA. To set up a one-shot timer, make a ScsiPortNotificationRequestTimer
call with a HwScsiTimer routine and the required interval. The port driver ensures that HwScsiTimer does not run at the same time as a HwScsiInterrupt.
HwScsiStopAdaptor is called when the HBA is about to be stopped or removed. Disable all interrupts and release all resources.
Use ScsiPortLogError to report errors.
Drivers Jimbo Scsi & Raid Devices List
Use ScsiPortStallExecution to wait for small time intervals. Never delay for more than 1 millisecond in any miniport routine.
Miniport drivers of HBAs that are initialised in x86 real mode and that are sensitive to x86-specific processor mode transitions must have a HwScsiAdapterState routine.
The use can set values which disable certain features of an HBA: synchronous transfers, bus-disconnect operations, tagged queuing and internal queuing. How?
SRBs have:
The PathId value
This identifies the SCSI bus on which the device is attached. It is a required value in SRBs.
The TargetId value
This identifies the TID of the controller or device. It is a required value in SRBs.
The Lun value
CDB
SCSI Class Drivers
Write a SCSI class driver if you have a totally new type of device. A SCSI class driver uses the SCSI port driver. It calls port driver with Device I/O Control IRPs.A SCSI driver is a standard driver, ie it processes IRPs, creates devices, etc. It maps IRPs to SRBs, limiting the size of transfers for underlying HBAs.
DriverEntry
The DriverEntry routine layers itself over the SCSI port driver and typically has GetInquiryData, ClaimDevice and GetCapabilities routines.The generic port driver is found using a IoGetDeviceObjectPointer call. Note that this is not an HBA device object.
GetInquiryData uses IOCTL_SCSI_GET_INQUIRY_DATA to get a SCSI_ADAPTER_BUS_INFO structure filled by the port driver. ClaimDevices makes the appropriate physical, logical or virtual devices. It makes a port driver IOCTL_SCSI_EXECUTE_NONE call with an SRB_FUNCTION_CLAIM_DEVICE SRB. It should store the returned pointer to the port driver’s HBA specific device. The driver should use this device pointer to issue all subsequent requests to this device via the port driver.
A GetCapabilities routine then issues a IOCTL_SCSI_GET_CAPABILITIES to get a IO_SCSI_CAPABILITIES structure filled. This reveals various details of the HBA, such as the number of bytes that it can transfer in one operation.
Unload
The unload routine must make an SRB_FUNCTION_RELEASE_DEVICE SRB call to release the device.Don’t forget to dereference the generic port driver handle.
Dispatch routines
A class driver’s IRP_MJ_CREATE and IRP_MJ_CLOSE handlers usually just return TRUE.
Don’t forget to handle IRP_MJ_SHUTDOWN and IRP_MJ_FLUSH_BUFFERS if you buffer data internally.
You can pass IRP_MJ_INTERNAL_DEVICE_CONTROL and IOCTL_SCSI_PASS_THROUGH requests through to the port driver as long as you set up the PathId, TargetId and Lun fields in the SRB and set the minor function code to IRP_MN_SCSI_CLASS.
Usually class drivers do not have internal queues as the port driver has queues for each LU.
To process read and write requests, have a BuildSRV routine to set up an IRP with an appropriate SRB containing a CDB. The IRP has a IRP_MJ_SCSI function code (actually the same as IRP_MJ_INTERNAL_DEVICE_CONTROL) and Parameters.Scsi.Srb points to the SRB. Allocate nonpaged memory for the SRB either using ExAllocatePool or use lookaside lists.
For request-sense information requests or where retries might be needed, set an IRP completion routine.
Most class drivers need to have a SplitTransferRequest to ensure that read and write requests do not exceed the underlying HBA capabilities. SplitTransferRequest registers an completion routine for each driver-allocated IRP it sends down to the port driver. The completion routine maintains a count of completed partial transfer requests in the original IRP and protects the count with a spin lock.
The completion routine should translate error codes into NTSTATUS values. It should release the SRB memory if appropriate.
If the port driver freezes an LU’s queue following an error, the completion routine calls a ReleaseQueue routine. It should determine the cause of the error and release the queue. Alternatively, if the device media has changed, ReleaseQueue might also clear the queue of any stacked up requests. Use auto-sense requests or SRBs with a SRB_FLAGS_BYPASS_FROZEN_QUEUE flag if you need to bypass a frozen queue. The release or flush IRP must be allocated with from NonPagedPoolMustSucceed
memory - this is one of the few times such memory can be requested.
The port driver can handle time-outs requests for the class driver.
SCSI Filter Drivers
Rather than write a whole new SCSI class driver for your slightly weird device, you can write a SCSI Filter Device (SFD) which layers itself over a system SCSI driver.A filter driver does any special handling of existing IRPs or implementing new IRP_MJ_DEVICE_CONTROL requests.
An SFD must support all the requests that its underlying class driver supports. Usually it just passes these straight through to the underlying driver. If appropriate, it can set a completion routine to do any post-processing.
An SFD can use IoGetConfigurationInformation to find how many devices to intercept. Otherwise grovelling around in the registry might be necessary. It then attaches to the underlying device and sees if it is one that it supports. If not, it should detach itself from the device.
SCSI Tape Miniclass Drivers
To support a new tape device or family of tape devices, write a device-specific tape miniclass driver that calls the system-supplied tape class driver. See the DDK for full details.Changer Drivers
Changer drivers control jukebox type devices, ie with interchangeable media.Drivers Jimbo Scsi & Raid Devices For Sale
A changer has transporters for moving media from storage slots to data transfer elements. It may also have an import/export element where media can be physically changed, and a door to access all media.
Write a changer miniclass driver to interface with the system changer class driver. It reports the above changer characteristics to the class driver.
See the DDK for full details of the required interface. It ought to support Plug and Play and Power Management requests as well.
Drivers Jimbo Scsi & Raid Devices Usb
User applications need to call the user-mode NT Media Services (NTMS) to change media.