diff options
author | Ralf Corsepius <ralf.corsepius@rtems.org> | 2004-11-20 04:03:21 +0000 |
---|---|---|
committer | Ralf Corsepius <ralf.corsepius@rtems.org> | 2004-11-20 04:03:21 +0000 |
commit | bf4748809d07941f8467b184264ce9151db5cf44 (patch) | |
tree | 8c5292284c744ee4a74fbbd41fc1e28d778a4f46 | |
parent | 2004-11-20 Ralf Corsepius <ralf.corsepius@rtems.org> (diff) | |
download | rtems-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.
-rw-r--r-- | c/src/ChangeLog | 11 | ||||
-rw-r--r-- | c/src/libchip/ide/ata.c | 6 | ||||
-rw-r--r-- | c/src/libchip/ide/ata_internal.h | 24 | ||||
-rw-r--r-- | c/src/libchip/ide/ide_controller.c | 8 | ||||
-rw-r--r-- | c/src/libchip/ide/ide_ctrl_cfg.h | 25 | ||||
-rw-r--r-- | c/src/libchip/ide/ide_ctrl_io.h | 6 |
6 files changed, 46 insertions, 34 deletions
diff --git a/c/src/ChangeLog b/c/src/ChangeLog index 1c405f2325..aa1ea07db5 100644 --- a/c/src/ChangeLog +++ b/c/src/ChangeLog @@ -1,3 +1,14 @@ +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. + 2004-11-10 Richard Campbell <richard.campbell@oarcorp.com> * libchip/network/dec21140.c: Cleanup a bit and remove message about 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 } |