Mercurial > nand-ecoscentric
changeset 1230:7d2ca52b341a
Improve IDE handling - better for systems where IDE may be missing
| author | gthomas |
|---|---|
| date | Sat, 20 Sep 2003 19:22:19 +0000 |
| parents | 2159dd1d9220 |
| children | 3c221a743075 |
| files | packages/hal/arm/xscale/picasso/current/ChangeLog packages/hal/arm/xscale/picasso/current/src/picasso_ide.c packages/hal/arm/xscale/uE250/current/ChangeLog packages/hal/arm/xscale/uE250/current/src/uE250_ide.c packages/hal/i386/pcmb/current/ChangeLog packages/hal/i386/pcmb/current/include/pcmb_io.h packages/hal/mips/malta/current/ChangeLog packages/hal/mips/malta/current/src/plf_misc.c packages/redboot/current/ChangeLog packages/redboot/current/src/fs/ide.c |
| diffstat | 10 files changed, 33 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/packages/hal/arm/xscale/picasso/current/ChangeLog +++ b/packages/hal/arm/xscale/picasso/current/ChangeLog @@ -1,3 +1,7 @@ +2003-09-20 Gary Thomas <gary@mlbassoc.com> + + * src/picasso_ide.c: IDE init needs to return number of controllers found. + 2003-08-22 Gary Thomas <gary@mind.be> * src/xilinx-load.c:
--- a/packages/hal/arm/xscale/picasso/current/src/picasso_ide.c +++ b/packages/hal/arm/xscale/picasso/current/src/picasso_ide.c @@ -108,7 +108,7 @@ cyg_hal_plf_ide_write_control(int ctlr, pci_io_write_8(ide_ctrl[ctlr].ctl_bar + reg, val); } -void +int cyg_hal_plf_ide_init(void) { int i; @@ -129,8 +129,10 @@ cyg_hal_plf_ide_init(void) ide_ctrl[i].cmd_bar = ide_info.base_map[(2*i)+0] & 0xFFFFFFFE; ide_ctrl[i].ctl_bar = ide_info.base_map[(2*i)+1] & 0xFFFFFFFE; } + return HAL_IDE_NUM_CONTROLLERS; } else { diag_printf("Can't find IDE controller!\n"); + return 0; } }
--- a/packages/hal/arm/xscale/uE250/current/ChangeLog +++ b/packages/hal/arm/xscale/uE250/current/ChangeLog @@ -1,3 +1,7 @@ +2003-09-20 Gary Thomas <gary@mlbassoc.com> + + * src/uE250_ide.c: IDE init needs to return number of controllers found. + 2003-08-08 Gary Thomas <gary@mind.be> * src/uE250_pci.c:
--- a/packages/hal/arm/xscale/uE250/current/src/uE250_ide.c +++ b/packages/hal/arm/xscale/uE250/current/src/uE250_ide.c @@ -108,7 +108,7 @@ cyg_hal_plf_ide_write_control(int ctlr, pci_io_write_8(ide_ctrl[ctlr].ctl_bar + reg, val); } -void +int cyg_hal_plf_ide_init(void) { int i; @@ -129,8 +129,10 @@ cyg_hal_plf_ide_init(void) ide_ctrl[i].cmd_bar = ide_info.base_map[(2*i)+0] & 0xFFFFFFFE; ide_ctrl[i].ctl_bar = ide_info.base_map[(2*i)+1] & 0xFFFFFFFE; } + return HAL_IDE_NUM_CONTROLLERS; } else { diag_printf("Can't find IDE controller!\n"); + return 0; } }
--- a/packages/hal/i386/pcmb/current/ChangeLog +++ b/packages/hal/i386/pcmb/current/ChangeLog @@ -1,3 +1,7 @@ +2003-09-20 Gary Thomas <gary@mlbassoc.com> + + * include/pcmb_io.h: IDE init needs to return number of controllers found. + 2003-07-23 Nick Garnett <nickg@balti.calivar.com> * include/pcmb_serial.h: Fixed bogus test on
--- a/packages/hal/i386/pcmb/current/include/pcmb_io.h +++ b/packages/hal/i386/pcmb/current/include/pcmb_io.h @@ -218,7 +218,7 @@ CYG_MACRO_END #define HAL_IDE_NUM_CONTROLLERS 2 // Initialize the IDE controller(s). -#define HAL_IDE_INIT() +#define HAL_IDE_INIT() (HAL_IDE_NUM_CONTROLLERS) #define __PCMB_IDE_PRI_CMD 0x1f0 #define __PCMB_IDE_PRI_CTL 0x3f4
--- a/packages/hal/mips/malta/current/ChangeLog +++ b/packages/hal/mips/malta/current/ChangeLog @@ -1,3 +1,7 @@ +2003-09-20 Gary Thomas <gary@mlbassoc.com> + + * src/plf_misc.c: IDE init needs to return number of controllers found. + 2003-07-18 Nick Garnett <nickg@balti.calivar.com> * cdl/hal_mips_malta.cdl:
--- a/packages/hal/mips/malta/current/src/plf_misc.c +++ b/packages/hal/mips/malta/current/src/plf_misc.c @@ -450,7 +450,8 @@ void cyg_hal_plf_pci_cfg_write_byte (cyg /*------------------------------------------------------------------------*/ /* IDE support */ -void cyg_hal_plf_ide_init(void) +int +cyg_hal_plf_ide_init(void) { cyg_uint32 v; @@ -460,6 +461,7 @@ void cyg_hal_plf_ide_init(void) v |= (CYG_PCI_CFG_PIIX4_IDETIM_IDE << 16) | CYG_PCI_CFG_PIIX4_IDETIM_IDE; cyg_hal_plf_pci_cfg_write_dword(0, CYG_PCI_DEV_MAKE_DEVFN(_PIIX4_PCI_ID,_PIIX4_IDE), CYG_PCI_CFG_PIIX4_IDETIM, v); + return HAL_IDE_NUM_CONTROLLERS; }
--- a/packages/redboot/current/ChangeLog +++ b/packages/redboot/current/ChangeLog @@ -1,5 +1,9 @@ 2003-09-20 Gary Thomas <gary@mlbassoc.com> + * src/fs/ide.c: Improve IDE handling by having init function return + actual number of controllers detected. This avoids really long times + for startup if the controller is missing. + * src/net/bootp.c: Rework to use full DHCP protocol. Previously, once an offer came in, RedBoot was happy, without actually making the address reservation and waiting for the final acknowledgement.
--- a/packages/redboot/current/src/fs/ide.c +++ b/packages/redboot/current/src/fs/ide.c @@ -408,18 +408,18 @@ ide_init(void) cyg_uint32 buf[SECTOR_SIZE/sizeof(cyg_uint32)], u32; cyg_uint16 u16; cyg_uint8 u8; - int i, j; + int i, j, num_controllers; disk_t disk; struct ide_priv *priv; #define DEV_INIT_VAL ((j << 4) | 0xA0) - HAL_IDE_INIT(); + num_controllers = HAL_IDE_INIT(); CYGACC_CALL_IF_DELAY_US(5); priv = ide_privs; - for (i = 0; i < HAL_IDE_NUM_CONTROLLERS; i++) { + for (i = 0; i < num_controllers; i++) { // soft reset the devices on this controller if (!ide_reset(i))
