summaryrefslogtreecommitdiffstats
path: root/c/src/libchip
diff options
context:
space:
mode:
authorRalf Corsepius <ralf.corsepius@rtems.org>2004-11-20 04:03:21 +0000
committerRalf Corsepius <ralf.corsepius@rtems.org>2004-11-20 04:03:21 +0000
commitbf4748809d07941f8467b184264ce9151db5cf44 (patch)
tree8c5292284c744ee4a74fbbd41fc1e28d778a4f46 /c/src/libchip
parent2004-11-20 Ralf Corsepius <ralf.corsepius@rtems.org> (diff)
downloadrtems-bf4748809d07941f8467b184264ce9151db5cf44.tar.bz2
2004-11-20 Thomas Doerfler <Thomas.Doerfler@imd-systems.de>:
PR 703/filesystem * libchip/ide/ata_internal.h, libchip/ide/ide_ctrl_cfg.h, libchip/ide/ide_ctrl_io.h, libchip/ide/ata.c, libchip/ide/ide_controller.c: Move definitions for ATA modes into ide_ctrl_cfg.h, to make them available for BSPS/device drivers. Extend the "modes_available" and "mode_active" parameters to uint16_t for UDMA support.
Diffstat (limited to 'c/src/libchip')
-rw-r--r--c/src/libchip/ide/ata.c6
-rw-r--r--c/src/libchip/ide/ata_internal.h24
-rw-r--r--c/src/libchip/ide/ide_controller.c8
-rw-r--r--c/src/libchip/ide/ide_ctrl_cfg.h25
-rw-r--r--c/src/libchip/ide/ide_ctrl_io.h6
5 files changed, 35 insertions, 34 deletions
diff --git a/c/src/libchip/ide/ata.c b/c/src/libchip/ide/ata.c
index d0161f4cb2..47cecd191f 100644
--- a/c/src/libchip/ide/ata.c
+++ b/c/src/libchip/ide/ata.c
@@ -1159,7 +1159,7 @@ ata_initialize(rtems_device_major_number major,
ATA_DEV_INFO(ctrl_minor, dev).mode_active = ATA_MODES_PIO3;
}
else {
- ATA_DEV_INFO(ctrl_minor, dev).modes_avaible =
+ ATA_DEV_INFO(ctrl_minor, dev).modes_available =
((CF_LE_W(buffer[64]) & 0x1) ? ATA_MODES_PIO3 : 0) |
((CF_LE_W(buffer[64]) & 0x2) ? ATA_MODES_PIO4 : 0) |
((CF_LE_W(buffer[63]) & 0x1) ? ATA_MODES_DMA0 : 0) |
@@ -1167,7 +1167,7 @@ ata_initialize(rtems_device_major_number major,
ATA_MODES_DMA0 | ATA_MODES_DMA1 : 0) |
((CF_LE_W(buffer[63]) & 0x4) ?
ATA_MODES_DMA0 | ATA_MODES_DMA1 | ATA_MODES_DMA2 : 0);
- if (ATA_DEV_INFO(ctrl_minor, dev).modes_avaible == 0)
+ if (ATA_DEV_INFO(ctrl_minor, dev).modes_available == 0)
continue;
/*
* choose most appropriate ATA device data I/O speed supported
@@ -1175,7 +1175,7 @@ ata_initialize(rtems_device_major_number major,
*/
status = ide_controller_config_io_speed(
ctrl_minor,
- ATA_DEV_INFO(ctrl_minor, dev).modes_avaible);
+ ATA_DEV_INFO(ctrl_minor, dev).modes_available);
if (status != RTEMS_SUCCESSFUL)
continue;
}
diff --git a/c/src/libchip/ide/ata_internal.h b/c/src/libchip/ide/ata_internal.h
index 051ea49db6..bc7c976709 100644
--- a/c/src/libchip/ide/ata_internal.h
+++ b/c/src/libchip/ide/ata_internal.h
@@ -52,26 +52,6 @@
#define ATA_MAX_CMD_REG_OFFSET 8
-/* ATA modes */
-#define ATA_MODES_PIO3 0x001
-#define ATA_MODES_PIO4 0x002
-
-#define ATA_MODES_PIO 0x003
-
-#define ATA_MODES_DMA0 0x004
-#define ATA_MODES_DMA1 0x008
-#define ATA_MODES_DMA2 0x010
-
-#define ATA_MODES_UDMA0 0x020
-#define ATA_MODES_UDMA1 0x040
-#define ATA_MODES_UDMA2 0x080
-#define ATA_MODES_UDMA3 0x100
-#define ATA_MODES_UDMA4 0x200
-#define ATA_MODES_UDMA5 0x400
-
-#define ATA_MODES_UDMA 0x7e0
-#define ATA_MODES_DMA 0x7fc
-
/* ATA Commands */
@@ -308,8 +288,8 @@ typedef struct ata_dev_s {
uint8_t max_multiple; /* 0 if READ/WRITE MULTIPLE is unsupported */
uint8_t current_multiple;
- uint8_t modes_avaible; /* OR of values for this modes */
- uint8_t mode_active;
+ uint16_t modes_available; /* OR of values for this modes */
+ uint16_t mode_active;
} ata_dev_t;
/*
diff --git a/c/src/libchip/ide/ide_controller.c b/c/src/libchip/ide/ide_controller.c
index af4d56fe4c..cfd567e6f4 100644
--- a/c/src/libchip/ide/ide_controller.c
+++ b/c/src/libchip/ide/ide_controller.c
@@ -163,17 +163,17 @@ ide_controller_write_register(rtems_device_minor_number minor, int reg,
* Set controller's speed of IO operations
*
* PARAMETERS:
- * minor - minor number of controller
- * modes_avaible - speeds available
+ * minor - minor number of controller
+ * modes_available - speeds available
*
* RETURNS:
* RTEMS_SUCCESSFUL on success, or error code if
* error occured
*/
rtems_status_code
-ide_controller_config_io_speed(int minor, uint8_t modes_avaible)
+ide_controller_config_io_speed(int minor, uint16_t modes_available)
{
return IDE_Controller_Table[minor].fns->ctrl_config_io_speed(
minor,
- modes_avaible);
+ modes_available);
}
diff --git a/c/src/libchip/ide/ide_ctrl_cfg.h b/c/src/libchip/ide/ide_ctrl_cfg.h
index 61ab426309..24ee3c1a7a 100644
--- a/c/src/libchip/ide/ide_ctrl_cfg.h
+++ b/c/src/libchip/ide/ide_ctrl_cfg.h
@@ -1,7 +1,7 @@
/*
* ide_ctrl_cfg.h
*
- * LibChip library IDE controller header file - structuers used for
+ * LibChip library IDE controller header file - structures used for
* configuration and plugin interface definition.
*
* Copyright (C) 2002 OKTET Ltd., St.-Petersburg, Russia
@@ -30,6 +30,27 @@ typedef enum {
IDE_CUSTOM /* BSP specific driver */
} ide_ctrl_devs_t;
+/* ATA modes: bit masks used in ctrl_config_io_speed call */
+#define ATA_MODES_PIO3 0x001
+#define ATA_MODES_PIO4 0x002
+
+#define ATA_MODES_PIO 0x003
+
+#define ATA_MODES_DMA0 0x004
+#define ATA_MODES_DMA1 0x008
+#define ATA_MODES_DMA2 0x010
+
+#define ATA_MODES_UDMA0 0x020
+#define ATA_MODES_UDMA1 0x040
+#define ATA_MODES_UDMA2 0x080
+#define ATA_MODES_UDMA3 0x100
+#define ATA_MODES_UDMA4 0x200
+#define ATA_MODES_UDMA5 0x400
+
+#define ATA_MODES_UDMA 0x7e0
+#define ATA_MODES_DMA 0x7fc
+
+
/*
* Each driver for a particular controller have to provide following
* functions in such a structure. The only field which should not be NULL
@@ -60,7 +81,7 @@ typedef struct ide_ctrl_fns_s {
uint32_t *pos);
rtems_status_code (*ctrl_config_io_speed)(int minor,
- uint8_t modes_available);
+ uint16_t modes_available);
} ide_ctrl_fns_t;
/*
diff --git a/c/src/libchip/ide/ide_ctrl_io.h b/c/src/libchip/ide/ide_ctrl_io.h
index e69c02f0c3..ab903ee4a4 100644
--- a/c/src/libchip/ide/ide_ctrl_io.h
+++ b/c/src/libchip/ide/ide_ctrl_io.h
@@ -167,15 +167,15 @@ ide_controller_write_register(rtems_device_minor_number minor,
* Set controller's speed of IO operations
*
* PARAMETERS:
- * minor - minor number of controller
- * modes_avaible - speeds available
+ * minor - minor number of controller
+ * modes_available - speeds available
*
* RETURNS:
* RTEMS_SUCCESSFUL on success, or error code if
* error occured
*/
rtems_status_code
-ide_controller_config_io_speed(int minor, uint8_t modes_avaible);
+ide_controller_config_io_speed(int minor, uint16_t modes_available);
#ifdef __cplusplus
}