diff options
Diffstat (limited to '')
-rw-r--r-- | doc/bsp_howto/ide-ctrl.t | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/doc/bsp_howto/ide-ctrl.t b/doc/bsp_howto/ide-ctrl.t deleted file mode 100644 index 6ebd6e60bc..0000000000 --- a/doc/bsp_howto/ide-ctrl.t +++ /dev/null @@ -1,154 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-2002. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. - -@chapter IDE Controller Driver - -@section Introduction - -The IDE Controller driver is responsible for providing an -interface to an IDE Controller. The capabilities provided by this -driver are: - -@itemize @bullet -@item Read IDE Controller register -@item Write IDE Controller register -@item Read data block through IDE Controller Data Register -@item Write data block through IDE Controller Data Register -@end itemize - -The reference implementation for an IDE Controller driver can -be found in @code{$RTEMS_SRC_ROOT/c/src/libchip/ide}. This driver -is based on the libchip concept and allows to work with any of the IDE -Controller chips simply by appropriate configuration of BSP. Drivers for a -particular IDE Controller chips locate in the following directories: drivers -for well-known IDE Controller chips locate into -@code{$RTEMS_SRC_ROOT/c/src/libchip/ide}, drivers for IDE Controller chips -integrated with CPU locate into -@code{$RTEMS_SRC_ROOT/c/src/lib/libcpu/myCPU} and -drivers for custom IDE Controller chips (for example, implemented on FPGA) -locate into @code{$RTEMS_SRC_ROOT/c/src/lib/libbsp/myBSP}. -There is a README file in these directories for each supported -IDE Controller chip. Each of these README explains how to configure a BSP -for that particular IDE Controller chip. - -@section Initialization - -IDE Controller chips used by a BSP are statically configured into -@code{IDE_Controller_Table}. The @code{ide_controller_initialize} routine is -responsible for initialization of all configured IDE controller chips. -Initialization order of the chips based on the order the chips are defined in -the @code{IDE_Controller_Table}. - -The following actions are performed by the IDE Controller driver -initialization routine: - -@example -@group -rtems_device_driver ide_controller_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor_arg, - void *arg -) -@{ - for each IDE Controller chip configured in IDE_Controller_Table - if (BSP dependent probe(if exists) AND device probe for this IDE chip - indicates it is present) - perform initialization of the particular chip - register device with configured name for this chip -@} -@end group -@end example - -@section Read IDE Controller Register - -The @code{ide_controller_read_register} routine reads the content of the IDE -Controller chip register. IDE Controller chip is selected via the minor -number. This routine is not allowed to be called from an application. - -@example -@group -void ide_controller_read_register(rtems_device_minor_number minor, - unsigned32 reg, unsigned32 *value) -@{ - get IDE Controller chip configuration information from - IDE_Controller_Table by minor number - - invoke read register routine for the chip -@} -@end group -@end example - -@section Write IDE Controller Register - -The @code{ide_controller_write_register} routine writes IDE Controller chip -register with specified value. IDE Controller chip is selected via the minor -number. This routine is not allowed to be called from an application. - -@example -@group -void ide_controller_write_register(rtems_device_minor_number minor, - unsigned32 reg, unsigned32 value) -@{ - get IDE Controller chip configuration information from - IDE_Controller_Table by minor number - - invoke write register routine for the chip -@} -@end group -@end example - -@section Read Data Block Through IDE Controller Data Register - -The @code{ide_controller_read_data_block} provides multiple consequent read -of the IDE Controller Data Register. IDE Controller chip is selected via the -minor number. The same functionality may be achieved via separate multiple -calls of @code{ide_controller_read_register} routine but -@code{ide_controller_read_data_block} allows to escape functions call -overhead. This routine is not allowed to be called from an application. - -@example -@group -void ide_controller_read_data_block( - rtems_device_minor_number minor, - unsigned16 block_size, - blkdev_sg_buffer *bufs, - uint32_t *cbuf, - uint32_t *pos -) -@{ - get IDE Controller chip configuration information from - IDE_Controller_Table by minor number - - invoke read data block routine for the chip -@} -@end group -@end example - -@section Write Data Block Through IDE Controller Data Register - -The @code{ide_controller_write_data_block} provides multiple consequent write -into the IDE Controller Data Register. IDE Controller chip is selected via the -minor number. The same functionality may be achieved via separate multiple -calls of @code{ide_controller_write_register} routine but -@code{ide_controller_write_data_block} allows to escape functions call -overhead. This routine is not allowed to be called from an application. - -@example -@group -void ide_controller_write_data_block( - rtems_device_minor_number minor, - unsigned16 block_size, - blkdev_sg_buffer *bufs, - uint32_t *cbuf, - uint32_t *pos -) -@{ - get IDE Controller chip configuration information from - IDE_Controller_Table by minor number - - invoke write data block routine for the chip -@} -@end group -@end example |