changeset 2630:3e8e26d3183a

Merge flashv2 branch to trunk, with eCosCentric additions
author jlarmour
date Tue, 18 Nov 2008 01:19:29 +0000
parents 50cf5ea58609
children 13376f3cfc60
files packages/devs/flash/amd/am29xxxxx/current/ChangeLog packages/devs/flash/amd/am29xxxxx/current/cdl/flash_amd_am29xxxxx.cdl packages/devs/flash/arm/aaed2000/current/ChangeLog packages/devs/flash/arm/aaed2000/current/cdl/flash_arm_aaed2000.cdl packages/devs/flash/arm/aim711/current/ChangeLog packages/devs/flash/arm/aim711/current/cdl/flash_arm_aim711.cdl packages/devs/flash/arm/aim711/current/src/arm_aim711_flash.c packages/devs/flash/arm/at91/current/ChangeLog packages/devs/flash/arm/at91/current/cdl/flash_at91.cdl packages/devs/flash/arm/at91/current/src/at91_flash.c packages/devs/flash/arm/e7t/current/ChangeLog packages/devs/flash/arm/e7t/current/cdl/flash_e7t.cdl packages/devs/flash/arm/e7t/current/src/arm_e7t_flash.c packages/devs/flash/arm/ebsa285/current/ChangeLog packages/devs/flash/arm/ebsa285/current/cdl/flash_ebsa285.cdl packages/devs/flash/arm/ebsa285/current/src/ebsa285_flash.c packages/devs/flash/arm/edb7xxx/current/ChangeLog packages/devs/flash/arm/edb7xxx/current/cdl/flash_edb7xxx.cdl packages/devs/flash/arm/edb7xxx/current/src/edb7xxx_flash.c packages/devs/flash/arm/excalibur/current/ChangeLog packages/devs/flash/arm/excalibur/current/cdl/flash_excalibur.cdl packages/devs/flash/arm/innovator/current/ChangeLog packages/devs/flash/arm/innovator/current/cdl/flash_innovator.cdl packages/devs/flash/arm/integrator/current/ChangeLog packages/devs/flash/arm/integrator/current/cdl/flash_integrator.cdl packages/devs/flash/arm/iq80310/current/ChangeLog packages/devs/flash/arm/iq80310/current/cdl/flash_iq80310.cdl packages/devs/flash/arm/iq80310/current/src/iq80310_flash.c packages/devs/flash/arm/lpc2xxx/current/ChangeLog packages/devs/flash/arm/lpc2xxx/current/cdl/flash_arm_lpc2xxx.cdl packages/devs/flash/arm/lpc2xxx/current/src/flash_arm_lpc2xxx.c packages/devs/flash/arm/sa1100mm/current/ChangeLog packages/devs/flash/arm/sa1100mm/current/cdl/flash_sa1100mm.cdl packages/devs/flash/arm/sa1100mm/current/src/sa1100mm_flash.c packages/devs/flash/arm/smdk2410/current/ChangeLog packages/devs/flash/arm/smdk2410/current/cdl/flash_smdk2410.cdl packages/devs/flash/arm/xsengine/current/ChangeLog packages/devs/flash/arm/xsengine/current/cdl/flash_xsengine.cdl packages/devs/flash/atmel/at29cxxxx/current/ChangeLog packages/devs/flash/atmel/at29cxxxx/current/cdl/flash_atmel_at29cxxxx.cdl packages/devs/flash/atmel/at49xxxx/current/ChangeLog packages/devs/flash/atmel/at49xxxx/current/cdl/flash_atmel_at49xxxx.cdl packages/devs/flash/fr30/skmb91302/current/ChangeLog packages/devs/flash/fr30/skmb91302/current/cdl/flash_skmb91302.cdl packages/devs/flash/frv/frv400/current/ChangeLog packages/devs/flash/frv/frv400/current/cdl/flash_frv_frv400.cdl packages/devs/flash/frv/pdk403/current/ChangeLog packages/devs/flash/frv/pdk403/current/cdl/flash_frv_pdk403.cdl packages/devs/flash/intel/28fxxx/current/ChangeLog packages/devs/flash/intel/28fxxx/current/cdl/flash_intel_28fxxx.cdl packages/devs/flash/intel/strata/current/ChangeLog packages/devs/flash/intel/strata/current/cdl/flash_strata.cdl packages/devs/flash/intel/strata/current/src/strata.c packages/devs/flash/mips/atlas/current/ChangeLog packages/devs/flash/mips/atlas/current/cdl/flash_atlas.cdl packages/devs/flash/mips/atlas/current/src/atlas_flash.c packages/devs/flash/mips/idt79s334a/current/ChangeLog packages/devs/flash/mips/idt79s334a/current/cdl/flash_mips_refidt334.cdl packages/devs/flash/mips/malta/current/ChangeLog packages/devs/flash/mips/malta/current/cdl/flash_malta.cdl packages/devs/flash/mips/ocelot/current/ChangeLog packages/devs/flash/mips/ocelot/current/cdl/flash_mips_ocelot.cdl packages/devs/flash/mips/vrc437x/current/ChangeLog packages/devs/flash/mips/vrc437x/current/cdl/flash_mips_vrc437x.cdl packages/devs/flash/mn10300/asb2303/current/ChangeLog packages/devs/flash/mn10300/asb2303/current/cdl/flash_asb2303.cdl packages/devs/flash/mn10300/asb2305/current/ChangeLog packages/devs/flash/mn10300/asb2305/current/cdl/flash_asb2305.cdl packages/devs/flash/mn10300/stb/current/ChangeLog packages/devs/flash/mn10300/stb/current/cdl/flash_stb.cdl packages/devs/flash/openrisc/orp/current/ChangeLog packages/devs/flash/openrisc/orp/current/cdl/flash_openrisc_orp.cdl packages/devs/flash/powerpc/adder/current/ChangeLog packages/devs/flash/powerpc/adder/current/cdl/flash_adder.cdl packages/devs/flash/powerpc/cme555/current/ChangeLog packages/devs/flash/powerpc/cme555/current/cdl/flash_cme555.cdl packages/devs/flash/powerpc/ec555/current/ChangeLog packages/devs/flash/powerpc/ec555/current/cdl/flash_ec555.cdl packages/devs/flash/powerpc/mbx/current/ChangeLog packages/devs/flash/powerpc/mbx/current/cdl/flash_mbx.cdl packages/devs/flash/powerpc/pati/current/ChangeLog packages/devs/flash/powerpc/pati/current/cdl/flash_pati.cdl packages/devs/flash/powerpc/rattler/current/ChangeLog packages/devs/flash/powerpc/rattler/current/cdl/flash_rattler.cdl packages/devs/flash/powerpc/ts1000/current/ChangeLog packages/devs/flash/powerpc/ts1000/current/cdl/flash_ts1000.cdl packages/devs/flash/powerpc/ts6/current/ChangeLog packages/devs/flash/powerpc/ts6/current/cdl/flash_ts6.cdl packages/devs/flash/powerpc/vads/current/ChangeLog packages/devs/flash/powerpc/vads/current/cdl/flash_vads.cdl packages/devs/flash/powerpc/viper/current/ChangeLog packages/devs/flash/powerpc/viper/current/cdl/flash_viper.cdl packages/devs/flash/sh/hs7729pci/current/ChangeLog packages/devs/flash/sh/hs7729pci/current/cdl/flash_sh_hs7729pci.cdl packages/devs/flash/sh/se7751/current/ChangeLog packages/devs/flash/sh/se7751/current/cdl/flash_sh_se7751.cdl packages/devs/flash/sh/se77x9/current/ChangeLog packages/devs/flash/sh/se77x9/current/cdl/flash_sh_se77x9.cdl packages/devs/flash/sst/39vf400/current/ChangeLog packages/devs/flash/sst/39vf400/current/cdl/flash_sst_39vf400.cdl packages/devs/flash/synth/current/ChangeLog packages/devs/flash/synth/current/cdl/flash_synth.cdl packages/devs/flash/synth/current/src/synth.c packages/devs/flash/synth/current/tests/flash1.c packages/devs/flash/synth/current/tests/flash2.c packages/devs/flash/toshiba/tc58xxx/current/ChangeLog packages/devs/flash/toshiba/tc58xxx/current/cdl/flash_toshiba_tc58xxx.cdl
diffstat 107 files changed, 601 insertions(+), 85 deletions(-) [+]
line wrap: on
line diff
--- a/packages/devs/flash/amd/am29xxxxx/current/ChangeLog
+++ b/packages/devs/flash/amd/am29xxxxx/current/ChangeLog
@@ -1,3 +1,8 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+	* cdl/flash_amd_am29xxxxx.cdl: Indicate that this driver uses
+	the legacy flash device API.
+
 2006-11-28 Oyvind Harboe  <oyvind.harboe@zylin.com>
 
 	* Fixed boot sectors for ST M29W320D
--- a/packages/devs/flash/amd/am29xxxxx/current/cdl/flash_amd_am29xxxxx.cdl
+++ b/packages/devs/flash/amd/am29xxxxx/current/cdl/flash_amd_am29xxxxx.cdl
@@ -58,6 +58,7 @@ cdl_package CYGPKG_DEVS_FLASH_AMD_AM29XX
     active_if     CYGINT_DEVS_FLASH_AMD_AM29XXXXX_REQUIRED
 
     implements    CYGHWR_IO_FLASH_DEVICE
+    implements    CYGHWR_IO_FLASH_DEVICE_LEGACY
 
     include_dir   cyg/io
 
--- a/packages/devs/flash/arm/aaed2000/current/ChangeLog
+++ b/packages/devs/flash/arm/aaed2000/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_arm_aaed2000.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2001-11-08  Jesper Skov  <jskov@redhat.com>
 
 	* cdl/flash_arm_aaed2000.cdl: Removed ARM Boot Monitor protection
--- a/packages/devs/flash/arm/aaed2000/current/cdl/flash_arm_aaed2000.cdl
+++ b/packages/devs/flash/arm/aaed2000/current/cdl/flash_arm_aaed2000.cdl
@@ -56,8 +56,6 @@ cdl_package CYGPKG_DEVS_FLASH_ARM_AAED20
     active_if	  CYGPKG_IO_FLASH
     requires	  CYGPKG_HAL_ARM_ARM9_AAED2000
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       aaed2000_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/arm/aim711/current/ChangeLog
+++ b/packages/devs/flash/arm/aim711/current/ChangeLog
@@ -1,3 +1,13 @@
+2004-11-22  Bart Veer  <bartv@ecoscentric.com>
+
+	* src/arm_aim711_flash.c: use updated CYG_FLASH_DRIVER() macro for
+	completely static initialization.
+
+2004-07-16  Andrew Lunn  <andrew.lunn@ascom.ch>
+
+	* src/arm_aim711_flash.c: Make us of the new sst driver which uses
+	the new flash device driver API.
+
 2003-10-02  Roland Cassebohm  <r.cassebohm@visionsystems.de>
 
 	* src/arm_aim711_flash.c: 
--- a/packages/devs/flash/arm/aim711/current/cdl/flash_arm_aim711.cdl
+++ b/packages/devs/flash/arm/aim711/current/cdl/flash_arm_aim711.cdl
@@ -57,7 +57,7 @@ cdl_package CYGPKG_DEVS_FLASH_ARM_AIM711
     active_if	  CYGPKG_IO_FLASH
     requires	  CYGPKG_HAL_ARM_AIM711
 
-    compile       arm_aim711_flash.c
+    compile       -library=libextras.a arm_aim711_flash.c
 
     # Arguably this should do in the generic package
     # but then there is a logic loop so you can never enable it.
--- a/packages/devs/flash/arm/aim711/current/src/arm_aim711_flash.c
+++ b/packages/devs/flash/arm/aim711/current/src/arm_aim711_flash.c
@@ -9,6 +9,7 @@
 // -------------------------------------------
 // This file is part of eCos, the Embedded Configurable Operating System.
 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+// Copyright (C) 2004 Andrew Lunn
 //
 // eCos is free software; you can redistribute it and/or modify it under
 // the terms of the GNU General Public License as published by the Free
@@ -41,7 +42,7 @@
 //#####DESCRIPTIONBEGIN####
 //
 // Author(s):    jskov, rcassebohm
-// Contributors: jskov, rcassebohm
+// Contributors: jskov, rcassebohm, andrew lunn
 // Date:         2001-02-21
 // Purpose:      
 // Description:  
@@ -59,8 +60,6 @@
 #define CYGNUM_FLASH_SERIES	(1)
 #define CYGNUM_FLASH_BASE 	(0x2000000u)
 
-#include "cyg/io/flash_sst_39vfxxx.inl"
-
 #elif (CYGNUM_DEVS_FLASH_ARM_AIM711_SIZE == 2)
 
 #define CYGPKG_DEVS_FLASH_SST_39VF016
@@ -68,9 +67,22 @@
 #define CYGNUM_FLASH_SERIES	(1)
 #define CYGNUM_FLASH_BASE 	(0x2000000u)
 
+#endif
+
 #include "cyg/io/flash_sst_39vfxxx.inl"
 
-#endif
+static const cyg_flash_block_info_t cyg_flash_sst_block_info[1] = {
+    { FLASH_BLOCK_SIZE, FLASH_NUM_REGIONS * CYGNUM_FLASH_SERIES }
+};
+CYG_FLASH_DRIVER(cyg_flash_sst_flashdev,
+                 &cyg_sst_funs,
+                 0,                     // Flags
+                 CYGNUM_FLASH_BASE,     // Start
+                 CYGNUM_FLASH_BASE + (FLASH_BLOCK_SIZE * FLASH_NUM_REGIONS * CYGNUM_FLASH_SERIES) - 1,    // End
+                 1,                     // Number of block infos
+                 cyg_flash_sst_block_info,
+                 NULL                   // priv
+    );
 
 // ------------------------------------------------------------------------
 // EOF arm_aim711_flash.c
--- a/packages/devs/flash/arm/at91/current/ChangeLog
+++ b/packages/devs/flash/arm/at91/current/ChangeLog
@@ -1,3 +1,11 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+	* src/at91_flash.c: Explicitly include <cyg/io/flash_dev.h> rather
+	than just defining _FLASH_PRIVATE_
+
+	* cdl/flash_at91.cdl: Indicate that this driver uses
+	the legacy flash device API.
+
 2008-11-03  Gabor Toeroek <tgabor84@gmail.com>
 
 	* src/at91_flash.c (flash_hwr_init): Add partial support for
--- a/packages/devs/flash/arm/at91/current/cdl/flash_at91.cdl
+++ b/packages/devs/flash/arm/at91/current/cdl/flash_at91.cdl
@@ -49,15 +49,16 @@
 # ====================================================================
 
 cdl_package CYGPKG_DEVS_FLASH_AT91 {
-    display       "at91 FLASH memory support"
+    display       "AT91 FLASH memory support"
 
     parent        CYGPKG_IO_FLASH
     active_if	  CYGPKG_IO_FLASH
 
     implements    CYGHWR_IO_FLASH_DEVICE
+    implements    CYGHWR_IO_FLASH_DEVICE_LEGACY
 
     include_dir   .
-    description   "FLASH memory device support for at91 EFC"
+    description   "FLASH memory device support for AT91 EFC"
     compile       at91_flash.c
     
     cdl_option    CYGBLD_DEV_FLASH_AT91_LOCKING {
--- a/packages/devs/flash/arm/at91/current/src/at91_flash.c
+++ b/packages/devs/flash/arm/at91/current/src/at91_flash.c
@@ -57,8 +57,8 @@
 #include <cyg/hal/hal_intr.h>
 #include <cyg/infra/cyg_ass.h>
 
-#define  _FLASH_PRIVATE_
 #include <cyg/io/flash.h>
+#include <cyg/io/flash_dev.h>
 
 #include <string.h>
 
--- a/packages/devs/flash/arm/e7t/current/ChangeLog
+++ b/packages/devs/flash/arm/e7t/current/ChangeLog
@@ -1,3 +1,14 @@
+2004-11-22  Bart Veer  <bartv@ecoscentric.com>
+
+	* src/arm_e7t_flash.c: use updated CYG_FLASH_DRIVER() macro for
+	completely static initialization.
+
+2004-08-03  Andrew Lunn  <andrew.lunn@ascom.ch>
+
+	* cdl/flash_e7t.cdl:
+	* src/arm_e7t_flash.c: Make use of the new sst driver which uses 
+	the new flash driver API.
+
 2003-11-04  Andrew Lunn  <andrew.lunn@ascom.ch>
 
 	* cdl/flash_e7t.cdl: 
--- a/packages/devs/flash/arm/e7t/current/cdl/flash_e7t.cdl
+++ b/packages/devs/flash/arm/e7t/current/cdl/flash_e7t.cdl
@@ -56,7 +56,7 @@ cdl_package CYGPKG_DEVS_FLASH_ARM_E7T {
     requires      CYGPKG_HAL_ARM_E7T
     requires      CYGHWR_IO_FLASH_DEVICE
     
-    compile       arm_e7t_flash.c
+    compile       -library=libextras.a arm_e7t_flash.c
 
     # Arguably this should do in the generic package
     # but then there is a logic loop so you can never enable it.
--- a/packages/devs/flash/arm/e7t/current/src/arm_e7t_flash.c
+++ b/packages/devs/flash/arm/e7t/current/src/arm_e7t_flash.c
@@ -9,7 +9,7 @@
 // -------------------------------------------
 // This file is part of eCos, the Embedded Configurable Operating System.
 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
-// Copyright (C) 2003 Andrew Lunn
+// Copyright (C) 2003, 2004 Andrew Lunn
 //
 // eCos is free software; you can redistribute it and/or modify it under
 // the terms of the GNU General Public License as published by the Free
@@ -42,7 +42,7 @@
 //#####DESCRIPTIONBEGIN####
 //
 // Author(s):    Chris Garry <cgarry@sweeneydesign.co.uk>
-// Contributors:
+// Contributors: andrew.lunn@ascom.ch
 // Date:         2003-04-21
 // Purpose:
 // Description:
@@ -70,6 +70,19 @@
 // Now include the driver code.
 #ifdef CYGINT_DEVS_FLASH_SST_39VFXXX_REQUIRED
 #include "cyg/io/flash_sst_39vfxxx.inl"
+
+static const cyg_flash_block_info_t cyg_flash_sst_block_info[1] = {
+    { FLASH_BLOCK_SIZE, FLASH_NUM_REGIONS * CYGNUM_FLASH_SERIES }
+};
+CYG_FLASH_DRIVER(cyg_flash_sst_flashdev,
+                 &cyg_sst_funs,
+                 0,                     // Flags
+                 CYGNUM_FLASH_BASE,     // Start
+                 CYGNUM_FLASH_BASE + (FLASH_BLOCK_SIZE * FLASH_NUM_REGIONS * CYGNUM_FLASH_SERIES) - 1,    // End
+                 1,                     // Number of block infos
+                 cyg_flash_sst_block_info,
+                 NULL                   // priv
+    );
 #endif
 
 #ifdef CYGINT_DEVS_FLASH_AMD_AM29XXXXX_REQUIRED
--- a/packages/devs/flash/arm/ebsa285/current/ChangeLog
+++ b/packages/devs/flash/arm/ebsa285/current/ChangeLog
@@ -1,3 +1,12 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+	* src/ebsa285_flash.c:
+	Explicitly include <cyg/io/flash_dev.h> rather than just
+	defining _FLASH_PRIVATE_. (From bartv in flash_v2 branch)
+
+	* cdl/flash_ebsa285.cdl: Indicate that this driver uses
+	the legacy flash device API.
+
 2003-09-14  Andrew Lunn  <andrew.lunn@ascom.ch>
 
 	* src/flash_query.c (flash_query): Casts to stop warnings.
--- a/packages/devs/flash/arm/ebsa285/current/cdl/flash_ebsa285.cdl
+++ b/packages/devs/flash/arm/ebsa285/current/cdl/flash_ebsa285.cdl
@@ -57,6 +57,7 @@ cdl_package CYGPKG_DEVS_FLASH_EBSA285 {
     requires	  CYGPKG_HAL_ARM_EBSA285
 
     implements    CYGHWR_IO_FLASH_DEVICE
+    implements    CYGHWR_IO_FLASH_DEVICE_LEGACY
 
     include_dir   .
     include_files ; # none _exported_ whatsoever
--- a/packages/devs/flash/arm/ebsa285/current/src/ebsa285_flash.c
+++ b/packages/devs/flash/arm/ebsa285/current/src/ebsa285_flash.c
@@ -54,8 +54,8 @@
 #include <cyg/hal/hal_arch.h>
 #include <cyg/infra/diag.h>
 
-#define  _FLASH_PRIVATE_
 #include <cyg/io/flash.h>
+#include <cyg/io/flash_dev.h>
 
 #include "flash.h"
 
--- a/packages/devs/flash/arm/edb7xxx/current/ChangeLog
+++ b/packages/devs/flash/arm/edb7xxx/current/ChangeLog
@@ -1,3 +1,13 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+	* src/edb7xxx_flash.c:
+	Explicitly include <cyg/io/flash_dev.h> rather than just
+	defining _FLASH_PRIVATE_. (From bartv in flash_v2 branch)
+
+	* cdl/flash_edb7xxx.cdl (CYGPKG_DEVS_FLASH_EP72XX): Indicate that
+	this part of the driver (i.e. not EDB7312) uses the legacy flash
+	device API.
+
 2003-11-20  Jani Monoses <jani@iv.ro>
 	
 	* cdl/flash_edb7xxx.cdl:
--- a/packages/devs/flash/arm/edb7xxx/current/cdl/flash_edb7xxx.cdl
+++ b/packages/devs/flash/arm/edb7xxx/current/cdl/flash_edb7xxx.cdl
@@ -67,6 +67,7 @@ cdl_package CYGPKG_DEVS_FLASH_EDB7XXX {
         calculated    1
         no_define
         implements    CYGHWR_IO_FLASH_DEVICE
+        implements    CYGHWR_IO_FLASH_DEVICE_LEGACY
     
         compile       edb7xxx_flash.c flash_query.c flash_program_buf.c flash_erase_block.c
     
--- a/packages/devs/flash/arm/edb7xxx/current/src/edb7xxx_flash.c
+++ b/packages/devs/flash/arm/edb7xxx/current/src/edb7xxx_flash.c
@@ -53,8 +53,8 @@
 #include <pkgconf/hal.h>
 #include <cyg/hal/hal_arch.h>
 
-#define  _FLASH_PRIVATE_
 #include <cyg/io/flash.h>
+#include <cyg/io/flash_dev.h>
 
 #include "flash.h"
 
--- a/packages/devs/flash/arm/excalibur/current/ChangeLog
+++ b/packages/devs/flash/arm/excalibur/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_excalibur.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2001-08-17  Jesper Skov  <jskov@redhat.com>
 	[from branch]
 	* src/arm_excalibur_flash.c: Use all 4 flash parts.
--- a/packages/devs/flash/arm/excalibur/current/cdl/flash_excalibur.cdl
+++ b/packages/devs/flash/arm/excalibur/current/cdl/flash_excalibur.cdl
@@ -55,8 +55,6 @@ cdl_package CYGPKG_DEVS_FLASH_ARM_EXCALI
     active_if	  CYGPKG_IO_FLASH
     requires	  CYGPKG_HAL_ARM_ARM9_EXCALIBUR
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       arm_excalibur_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/arm/innovator/current/ChangeLog
+++ b/packages/devs/flash/arm/innovator/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_innovator.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2003-02-05  Patrick Doyle <wpd@delcomsys.com>
 	* cdl/flash_innovator.cdl
 	* src/arm_innovator_flash.c: New package - support for Texas
--- a/packages/devs/flash/arm/innovator/current/cdl/flash_innovator.cdl
+++ b/packages/devs/flash/arm/innovator/current/cdl/flash_innovator.cdl
@@ -55,8 +55,6 @@ cdl_package CYGPKG_DEVS_FLASH_ARM_INNOVA
     active_if	  CYGPKG_IO_FLASH
     requires	  CYGPKG_HAL_ARM_ARM9_INNOVATOR
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       arm_innovator_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/arm/integrator/current/ChangeLog
+++ b/packages/devs/flash/arm/integrator/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_integrator.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2002-03-06  Nick Garnett  <nickg@redhat.com>
 
 	* cdl/flash_integrator.cdl: Converted to use generic 28Fxxx flash
--- a/packages/devs/flash/arm/integrator/current/cdl/flash_integrator.cdl
+++ b/packages/devs/flash/arm/integrator/current/cdl/flash_integrator.cdl
@@ -55,8 +55,6 @@ cdl_package CYGPKG_DEVS_FLASH_ARM_INTEGR
     active_if	  CYGPKG_IO_FLASH
     requires	  CYGPKG_HAL_ARM_INTEGRATOR
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       arm_integrator_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/arm/iq80310/current/ChangeLog
+++ b/packages/devs/flash/arm/iq80310/current/ChangeLog
@@ -1,3 +1,12 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+	* src/iq80310_flash.c: 	Explicitly include <cyg/io/flash_dev.h>
+	rather than just defining _FLASH_PRIVATE_.
+	(From bartv in flash_v2 branch)
+
+	* cdl/flash_iq80310.cdl: Indicate that this driver uses
+	the legacy flash device API.
+
 2003-09-16  Jani Monoses <jani@iv.ro>
 
 	* src/flash_lock_block.c (flash_lock_block): 
--- a/packages/devs/flash/arm/iq80310/current/cdl/flash_iq80310.cdl
+++ b/packages/devs/flash/arm/iq80310/current/cdl/flash_iq80310.cdl
@@ -58,6 +58,7 @@ cdl_package CYGPKG_DEVS_FLASH_ARM_XSCALE
     requires	  CYGPKG_HAL_ARM_XSCALE_IOP310
 
     implements    CYGHWR_IO_FLASH_DEVICE
+    implements    CYGHWR_IO_FLASH_DEVICE_LEGACY
     implements    CYGHWR_IO_FLASH_BLOCK_LOCKING
 
     include_dir   .
--- a/packages/devs/flash/arm/iq80310/current/src/iq80310_flash.c
+++ b/packages/devs/flash/arm/iq80310/current/src/iq80310_flash.c
@@ -54,8 +54,8 @@
 #include <cyg/hal/hal_arch.h>
 #include <cyg/infra/diag.h>
 
-#define  _FLASH_PRIVATE_
 #include <cyg/io/flash.h>
+#include <cyg/io/flash_dev.h>
 
 #include "flash.h"
 
--- a/packages/devs/flash/arm/lpc2xxx/current/ChangeLog
+++ b/packages/devs/flash/arm/lpc2xxx/current/ChangeLog
@@ -1,3 +1,12 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+	* src/flash_arm_lpc2xxx.c:
+	Explicitly include <cyg/io/flash_dev.h> rather than just
+	defining _FLASH_PRIVATE_. (From bartv in flash_v2 branch)
+
+	* cdl/flash_arm_lpc2xxx.cdl: Indicate that this driver uses
+	the legacy flash device API.
+
 2007-07-12  Hans Rosenfeld  <rosenfeld@grumpf.hope-2000.org>
 
 	* lpc2xxx: driver for on-chip flash memory
--- a/packages/devs/flash/arm/lpc2xxx/current/cdl/flash_arm_lpc2xxx.cdl
+++ b/packages/devs/flash/arm/lpc2xxx/current/cdl/flash_arm_lpc2xxx.cdl
@@ -53,6 +53,7 @@ cdl_package CYGPKG_DEVS_FLASH_ARM_LPC2XX
     active_if   CYGPKG_IO_FLASH
     requires    CYGPKG_HAL_ARM_LPC2XXX
     implements  CYGHWR_IO_FLASH_DEVICE
+    implements  CYGHWR_IO_FLASH_DEVICE_LEGACY
 
     # These chips use two erase block sizes, the access to flash is
     # limited to the last few of the 8k blocks. I don't have a chip
--- a/packages/devs/flash/arm/lpc2xxx/current/src/flash_arm_lpc2xxx.c
+++ b/packages/devs/flash/arm/lpc2xxx/current/src/flash_arm_lpc2xxx.c
@@ -53,8 +53,8 @@
 #include <pkgconf/hal_arm.h>
 #include <cyg/hal/hal_intr.h>
 
-#define _FLASH_PRIVATE_
 #include <cyg/io/flash.h>
+#include <cyg/io/flash_dev.h>
 
 #include "flash_arm_lpc2xxx.h"
 
--- a/packages/devs/flash/arm/sa1100mm/current/ChangeLog
+++ b/packages/devs/flash/arm/sa1100mm/current/ChangeLog
@@ -1,3 +1,12 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+	* src/sa1100mm_flash.c:
+	Explicitly include <cyg/io/flash_dev.h> rather than just
+	defining _FLASH_PRIVATE_. (From bartv in flash_v2 branch)
+
+	* cdl/flash_sa1100mm.cdl: Indicate that this driver uses
+	the legacy flash device API.
+
 2003-09-12  Jani Monoses <jani@iv.ro>
 
 	* src/flash_erase_block.c (flash_erase_block): 
--- a/packages/devs/flash/arm/sa1100mm/current/cdl/flash_sa1100mm.cdl
+++ b/packages/devs/flash/arm/sa1100mm/current/cdl/flash_sa1100mm.cdl
@@ -57,6 +57,7 @@ cdl_package CYGPKG_DEVS_FLASH_SA1100MM {
     requires	  CYGPKG_HAL_ARM_SA11X0
 
     implements    CYGHWR_IO_FLASH_DEVICE
+    implements    CYGHWR_IO_FLASH_DEVICE_LEGACY
 
     include_dir   .
     include_files ; # none _exported_ whatsoever
--- a/packages/devs/flash/arm/sa1100mm/current/src/sa1100mm_flash.c
+++ b/packages/devs/flash/arm/sa1100mm/current/src/sa1100mm_flash.c
@@ -53,8 +53,8 @@
 #include <pkgconf/hal.h>
 #include <cyg/hal/hal_arch.h>
 
-#define  _FLASH_PRIVATE_
 #include <cyg/io/flash.h>
+#include <cyg/io/flash_dev.h>
 
 #include "flash.h"
 
--- a/packages/devs/flash/arm/smdk2410/current/ChangeLog
+++ b/packages/devs/flash/arm/smdk2410/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_smdk2410.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2003-08-06  Michael Anburaj <embeddedeng@hotmail.com>
 
 	* cdl/flash_smdk2410.cdl:
--- a/packages/devs/flash/arm/smdk2410/current/cdl/flash_smdk2410.cdl
+++ b/packages/devs/flash/arm/smdk2410/current/cdl/flash_smdk2410.cdl
@@ -57,8 +57,6 @@ cdl_package CYGPKG_DEVS_FLASH_ARM_SMDK24
     active_if     CYGPKG_IO_FLASH
     requires      CYGPKG_HAL_ARM_ARM9_SMDK2410
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       smdk2410_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/arm/xsengine/current/ChangeLog
+++ b/packages/devs/flash/arm/xsengine/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_xsengine.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2005-02-23  Kurt Stremerch  <kurt.stremerch@exys.be>
 
         * src/xsengine_flash.c: 
--- a/packages/devs/flash/arm/xsengine/current/cdl/flash_xsengine.cdl
+++ b/packages/devs/flash/arm/xsengine/current/cdl/flash_xsengine.cdl
@@ -55,8 +55,6 @@ display       "Exys XSEngine FLASH memor
     active_if     CYGPKG_IO_FLASH
     requires      CYGPKG_HAL_ARM_XSCALE_XSENGINE
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       xsengine_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/atmel/at29cxxxx/current/ChangeLog
+++ b/packages/devs/flash/atmel/at29cxxxx/current/ChangeLog
@@ -1,3 +1,8 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+	* cdl/flash_atmel_at29cxxxx.cdl: Indicate that this driver uses
+	the legacy flash device API.
+
 2003-10-02  Roland Cassebohm  <r.cassebohm@visionsystems.de>
 
 	* include/flash_at29cxxxx.inl: Improves driver, to work with 16 bit
--- a/packages/devs/flash/atmel/at29cxxxx/current/cdl/flash_atmel_at29cxxxx.cdl
+++ b/packages/devs/flash/atmel/at29cxxxx/current/cdl/flash_atmel_at29cxxxx.cdl
@@ -57,6 +57,7 @@ cdl_package CYGPKG_DEVS_FLASH_ATMEL_AT29
     active_if     CYGINT_DEVS_FLASH_ATMEL_AT29CXXXX_REQUIRED
 
     implements    CYGHWR_IO_FLASH_DEVICE
+    implements    CYGHWR_IO_FLASH_DEVICE_LEGACY
 
     include_dir   cyg/io
 }
--- a/packages/devs/flash/atmel/at49xxxx/current/ChangeLog
+++ b/packages/devs/flash/atmel/at49xxxx/current/ChangeLog
@@ -1,3 +1,8 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+	* cdl/flash_atmel_at49xxxx.cdl: Indicate that this driver uses
+	the legacy flash device API.
+
 2005-02-15  Jacques Tinembart <Jacques.Tinembart@eig.unige.ch>
  
  	* include/flash_at49xxxx.inl, include/flash_at49xxxx_parts.inl:
--- a/packages/devs/flash/atmel/at49xxxx/current/cdl/flash_atmel_at49xxxx.cdl
+++ b/packages/devs/flash/atmel/at49xxxx/current/cdl/flash_atmel_at49xxxx.cdl
@@ -57,6 +57,7 @@ cdl_package CYGPKG_DEVS_FLASH_ATMEL_AT49
     active_if     CYGINT_DEVS_FLASH_ATMEL_AT49XXXX_REQUIRED
 
     implements    CYGHWR_IO_FLASH_DEVICE
+    implements    CYGHWR_IO_FLASH_DEVICE_LEGACY
 
     include_dir   cyg/io
     
--- a/packages/devs/flash/fr30/skmb91302/current/ChangeLog
+++ b/packages/devs/flash/fr30/skmb91302/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_skmb91302.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2008-07-01  Lars Poeschel  <larsi@wh2.tu-dresden.de>
 
 	* src/skmb91302_flash.c: Changed CYGNUM_FLASH_BASE to 0x1000000
--- a/packages/devs/flash/fr30/skmb91302/current/cdl/flash_skmb91302.cdl
+++ b/packages/devs/flash/fr30/skmb91302/current/cdl/flash_skmb91302.cdl
@@ -57,8 +57,6 @@ cdl_package CYGPKG_DEVS_FLASH_FR30_SKMB9
     active_if	  CYGPKG_IO_FLASH
     requires	  CYGPKG_HAL_FR30_MB91301_SKMB91302
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       skmb91302_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/frv/frv400/current/ChangeLog
+++ b/packages/devs/flash/frv/frv400/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_frv_frv400.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2004-09-05  Mark Salter  <msalter@redhat.com>	
             David Woodhouse  <dwmw2@redhat.com>
 
--- a/packages/devs/flash/frv/frv400/current/cdl/flash_frv_frv400.cdl
+++ b/packages/devs/flash/frv/frv400/current/cdl/flash_frv_frv400.cdl
@@ -56,8 +56,6 @@ cdl_package CYGPKG_DEVS_FLASH_FRV_FRV400
     active_if	  CYGPKG_IO_FLASH
     requires	  CYGPKG_HAL_FRV_FRV400 || CYGPKG_HAL_FRV_MB93091
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       frv400_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/frv/pdk403/current/ChangeLog
+++ b/packages/devs/flash/frv/pdk403/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_frv_pdk403.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2004-09-05  David Woodhouse  <dwmw2@redhat.com>
 
 	* cdl/flash_frv_pdk403.cdl, src/pdk403_flash.c: New port.
--- a/packages/devs/flash/frv/pdk403/current/cdl/flash_frv_pdk403.cdl
+++ b/packages/devs/flash/frv/pdk403/current/cdl/flash_frv_pdk403.cdl
@@ -56,8 +56,6 @@ cdl_package CYGPKG_DEVS_FLASH_FRV_PDK403
     active_if	  CYGPKG_IO_FLASH
     requires	  CYGPKG_HAL_FRV_MB93093
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       pdk403_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/intel/28fxxx/current/ChangeLog
+++ b/packages/devs/flash/intel/28fxxx/current/ChangeLog
@@ -1,3 +1,8 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+	* cdl/flash_intel_28fxxx.cdl: Indicate that this driver uses
+	the legacy flash device API.
+
 2008-09-04  Dave Lawrence <dlawrence@ad-holdings.co.uk>
 
 	* include/flash_28fxxx.inl: 
--- a/packages/devs/flash/intel/28fxxx/current/cdl/flash_intel_28fxxx.cdl
+++ b/packages/devs/flash/intel/28fxxx/current/cdl/flash_intel_28fxxx.cdl
@@ -58,6 +58,7 @@ cdl_package CYGPKG_DEVS_FLASH_INTEL_28FX
     active_if     CYGINT_DEVS_FLASH_INTEL_28FXXX_REQUIRED
 
     implements    CYGHWR_IO_FLASH_DEVICE
+    implements    CYGHWR_IO_FLASH_DEVICE_LEGACY
 
     include_dir   cyg/io
 
--- a/packages/devs/flash/intel/strata/current/ChangeLog
+++ b/packages/devs/flash/intel/strata/current/ChangeLog
@@ -1,3 +1,10 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+	* src/strata.c: leave _FLASH_PRIVATE_ to the private strata.h
+	(Change from bartv 2004-12-02, merged from flash_v2 branch).
+	* cdl/flash_strata.cdl: Indicate that this driver uses
+	the legacy flash device API.
+
 2005-01-14  Thomas Koeller  <thomas.koeller@baslerweb.com>
 
 	* src/flash_query.c (flash_query): Fix switching the flash back to
--- a/packages/devs/flash/intel/strata/current/cdl/flash_strata.cdl
+++ b/packages/devs/flash/intel/strata/current/cdl/flash_strata.cdl
@@ -56,6 +56,7 @@ cdl_package CYGPKG_DEVS_FLASH_STRATA {
     active_if	  CYGPKG_IO_FLASH
 
     implements    CYGHWR_IO_FLASH_DEVICE
+    implements    CYGHWR_IO_FLASH_DEVICE_LEGACY
 
     active_if     CYGINT_DEVS_FLASH_STRATA_REQUIRED
 
--- a/packages/devs/flash/intel/strata/current/src/strata.c
+++ b/packages/devs/flash/intel/strata/current/src/strata.c
@@ -54,7 +54,6 @@
 #include <pkgconf/hal.h>
 #include <cyg/hal/hal_arch.h>
 
-#define  _FLASH_PRIVATE_
 #include <cyg/io/flash.h>
 
 #include "strata.h"
--- a/packages/devs/flash/mips/atlas/current/ChangeLog
+++ b/packages/devs/flash/mips/atlas/current/ChangeLog
@@ -1,3 +1,12 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+	* src/atlas_flash.c:
+	Explicitly include <cyg/io/flash_dev.h> rather than just
+	defining _FLASH_PRIVATE_. (From bartv in flash_v2 branch)
+
+	* cdl/flash_atlas.cdl: Indicate that this driver uses
+	the legacy flash device API.
+
 2003-09-23  Andrew Lunn  <andrew.lunn@ascom.ch>
 
 	* cdl/flash_atlas.cdl: Added requirements for strncmp.
--- a/packages/devs/flash/mips/atlas/current/cdl/flash_atlas.cdl
+++ b/packages/devs/flash/mips/atlas/current/cdl/flash_atlas.cdl
@@ -58,6 +58,7 @@ cdl_package CYGPKG_DEVS_FLASH_ATLAS {
     requires      CYGINT_ISO_STRING_STRFUNCS
 
     implements    CYGHWR_IO_FLASH_DEVICE
+    implements    CYGHWR_IO_FLASH_DEVICE_LEGACY
     implements    CYGHWR_IO_FLASH_BLOCK_LOCKING
 
     include_dir   .
--- a/packages/devs/flash/mips/atlas/current/src/atlas_flash.c
+++ b/packages/devs/flash/mips/atlas/current/src/atlas_flash.c
@@ -54,8 +54,8 @@
 #include <cyg/hal/hal_arch.h>
 #include <cyg/infra/diag.h>
 
-#define  _FLASH_PRIVATE_
 #include <cyg/io/flash.h>
+#include <cyg/io/flash_dev.h>
 
 #include "flash.h"
 
--- a/packages/devs/flash/mips/idt79s334a/current/ChangeLog
+++ b/packages/devs/flash/mips/idt79s334a/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_mips_refidt334.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2003-02-13  Tim Michals  <t.michals@attbi.com>
 2003-02-13  Jonathan Larmour  <jifl@eCosCentric.com>
 
--- a/packages/devs/flash/mips/idt79s334a/current/cdl/flash_mips_refidt334.cdl
+++ b/packages/devs/flash/mips/idt79s334a/current/cdl/flash_mips_refidt334.cdl
@@ -55,8 +55,6 @@ cdl_package CYGPKG_DEVS_FLASH_MIPS_REFID
     active_if     CYGPKG_IO_FLASH
     requires      CYGPKG_HAL_MIPS_IDT32334_REFIDT334
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       mips_idt334a_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/mips/malta/current/ChangeLog
+++ b/packages/devs/flash/mips/malta/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_malta.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2001-08-10  Jesper Skov  <jskov@redhat.com>
 
 	* src/mips_malta_flash.c: Define width.
--- a/packages/devs/flash/mips/malta/current/cdl/flash_malta.cdl
+++ b/packages/devs/flash/mips/malta/current/cdl/flash_malta.cdl
@@ -55,8 +55,6 @@ cdl_package CYGPKG_DEVS_FLASH_MALTA {
     active_if	  CYGPKG_IO_FLASH
     requires	  CYGPKG_HAL_MIPS_MALTA
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       mips_malta_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/mips/ocelot/current/ChangeLog
+++ b/packages/devs/flash/mips/ocelot/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_mips_ocelot.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2001-06-08  Jesper Skov  <jskov@redhat.com>
 
 	* cdl/flash_mips_ocelot.cdl: Require AM29F040B support.
--- a/packages/devs/flash/mips/ocelot/current/cdl/flash_mips_ocelot.cdl
+++ b/packages/devs/flash/mips/ocelot/current/cdl/flash_mips_ocelot.cdl
@@ -55,8 +55,6 @@ cdl_package CYGPKG_DEVS_FLASH_MIPS_OCELO
     active_if     CYGPKG_IO_FLASH
     requires      CYGPKG_HAL_MIPS_RM7000_OCELOT
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       mips_ocelot_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/mips/vrc437x/current/ChangeLog
+++ b/packages/devs/flash/mips/vrc437x/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_mips_vrc437x.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2001-09-10  Nick Garnett  <nickg@redhat.com>
 
 	* cdl/flash_mips_vrc437x.cdl:
--- a/packages/devs/flash/mips/vrc437x/current/cdl/flash_mips_vrc437x.cdl
+++ b/packages/devs/flash/mips/vrc437x/current/cdl/flash_mips_vrc437x.cdl
@@ -55,8 +55,6 @@ cdl_package CYGPKG_DEVS_FLASH_MIPS_VRC43
     active_if     CYGPKG_IO_FLASH
     requires      CYGPKG_HAL_MIPS_VR4300_VRC437X
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       mips_vrc437x_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/mn10300/asb2303/current/ChangeLog
+++ b/packages/devs/flash/mn10300/asb2303/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_asb2303.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2002-12-05  Mark Salter  <msalter@redhat.com>
 
 	* src/mn10300_asb2303_flash.c (CYGNUM_FLASH_16AS8): Define
--- a/packages/devs/flash/mn10300/asb2303/current/cdl/flash_asb2303.cdl
+++ b/packages/devs/flash/mn10300/asb2303/current/cdl/flash_asb2303.cdl
@@ -56,8 +56,6 @@ cdl_package CYGPKG_DEVS_FLASH_MN10300_AS
     active_if     CYGPKG_IO_FLASH
     requires      CYGPKG_HAL_MN10300_AM33_ASB
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       mn10300_asb2303_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/mn10300/asb2305/current/ChangeLog
+++ b/packages/devs/flash/mn10300/asb2305/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_asb2305.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2002-12-05  Mark Salter  <msalter@redhat.com>
 
 	* src/mn10300_asb2305_flash.c (CYGNUM_FLASH_16AS8): Define
--- a/packages/devs/flash/mn10300/asb2305/current/cdl/flash_asb2305.cdl
+++ b/packages/devs/flash/mn10300/asb2305/current/cdl/flash_asb2305.cdl
@@ -56,8 +56,6 @@ cdl_package CYGPKG_DEVS_FLASH_MN10300_AS
     active_if     CYGPKG_IO_FLASH
     requires      CYGPKG_HAL_MN10300_AM33_ASB2305
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       mn10300_asb2305_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/mn10300/stb/current/ChangeLog
+++ b/packages/devs/flash/mn10300/stb/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_stb.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2002-12-05  Mark Salter  <msalter@redhat.com>
 
 	* src/mn10300_stb_flash.c (CYGNUM_FLASH_16AS8): Define
--- a/packages/devs/flash/mn10300/stb/current/cdl/flash_stb.cdl
+++ b/packages/devs/flash/mn10300/stb/current/cdl/flash_stb.cdl
@@ -56,8 +56,6 @@ cdl_package CYGPKG_DEVS_FLASH_MN10300_ST
     active_if	  CYGPKG_IO_FLASH
     requires	  CYGPKG_HAL_MN10300_AM33_STB
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       mn10300_stb_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/openrisc/orp/current/ChangeLog
+++ b/packages/devs/flash/openrisc/orp/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_openrisc_orp.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2003-03-06  Scott Furman <sfurman@rosum.com>
 
 	* src/openrisc_orp_flash.c, cdl/flash_openrisc_orp.cdl
--- a/packages/devs/flash/openrisc/orp/current/cdl/flash_openrisc_orp.cdl
+++ b/packages/devs/flash/openrisc/orp/current/cdl/flash_openrisc_orp.cdl
@@ -55,8 +55,6 @@ cdl_package CYGPKG_DEVS_FLASH_OPENRISC_O
     active_if     CYGPKG_IO_FLASH
     requires      CYGPKG_HAL_OPENRISC_ORP
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       openrisc_orp_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/powerpc/adder/current/ChangeLog
+++ b/packages/devs/flash/powerpc/adder/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_adder.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2002-11-25  Gary Thomas  <gthomas@ecoscentric.com>
 
 	* src/adder_flash.c: 
--- a/packages/devs/flash/powerpc/adder/current/cdl/flash_adder.cdl
+++ b/packages/devs/flash/powerpc/adder/current/cdl/flash_adder.cdl
@@ -57,8 +57,6 @@ cdl_package CYGPKG_DEVS_FLASH_POWERPC_AD
     active_if	  CYGPKG_IO_FLASH
     requires	  CYGPKG_HAL_POWERPC_ADDER
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       adder_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/powerpc/cme555/current/ChangeLog
+++ b/packages/devs/flash/powerpc/cme555/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_cme555.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2002-04-24  Bob Koninckx  <bob.koninckx@mech.kuleuven.ac.be>
 
 	* New package.
--- a/packages/devs/flash/powerpc/cme555/current/cdl/flash_cme555.cdl
+++ b/packages/devs/flash/powerpc/cme555/current/cdl/flash_cme555.cdl
@@ -56,8 +56,6 @@ cdl_package CYGPKG_DEVS_FLASH_CME555 {
     active_if	  CYGPKG_IO_FLASH
     requires	  CYGPKG_HAL_POWERPC_CME555
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       powerpc_cme555_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/powerpc/ec555/current/ChangeLog
+++ b/packages/devs/flash/powerpc/ec555/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_ec555.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2004-04-08  Bob Koninckx  <bob.koninckx@o-3s.com>
 
 	* src/powerpc_ec555_flash.c: Adapted flash start address to new
--- a/packages/devs/flash/powerpc/ec555/current/cdl/flash_ec555.cdl
+++ b/packages/devs/flash/powerpc/ec555/current/cdl/flash_ec555.cdl
@@ -56,8 +56,6 @@ cdl_package CYGPKG_DEVS_FLASH_EC555 {
     active_if	  CYGPKG_IO_FLASH
     requires	  CYGPKG_HAL_POWERPC_EC555
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       powerpc_ec555_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/powerpc/mbx/current/ChangeLog
+++ b/packages/devs/flash/powerpc/mbx/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_mbx.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2001-06-08  Jesper Skov  <jskov@redhat.com>
 
 	* cdl/flash_mbx.cdl: Require handling of the AM29F040.
--- a/packages/devs/flash/powerpc/mbx/current/cdl/flash_mbx.cdl
+++ b/packages/devs/flash/powerpc/mbx/current/cdl/flash_mbx.cdl
@@ -56,8 +56,6 @@ cdl_package CYGPKG_DEVS_FLASH_MBX {
     active_if	  CYGPKG_IO_FLASH
     requires	  CYGPKG_HAL_POWERPC_MBX
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       powerpc_mbx_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/powerpc/pati/current/ChangeLog
+++ b/packages/devs/flash/powerpc/pati/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_pati.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2008-06-18  Steven Clugston  <steven.clugston@ncl.ac.uk>
 
 	* src/powerpc_pati_flash.c: 
--- a/packages/devs/flash/powerpc/pati/current/cdl/flash_pati.cdl
+++ b/packages/devs/flash/powerpc/pati/current/cdl/flash_pati.cdl
@@ -53,8 +53,6 @@ cdl_package CYGPKG_DEVS_FLASH_PATI {
     active_if	  CYGPKG_IO_FLASH
     requires	  CYGPKG_HAL_POWERPC_PATI
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       powerpc_pati_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/powerpc/rattler/current/ChangeLog
+++ b/packages/devs/flash/powerpc/rattler/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_rattler.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2003-08-19  Gary Thomas  <gary@mlbassoc.com>
 
 	* src/rattler_flash.c: 
--- a/packages/devs/flash/powerpc/rattler/current/cdl/flash_rattler.cdl
+++ b/packages/devs/flash/powerpc/rattler/current/cdl/flash_rattler.cdl
@@ -57,8 +57,6 @@ cdl_package CYGPKG_DEVS_FLASH_POWERPC_RA
     active_if	  CYGPKG_IO_FLASH
     requires	  CYGPKG_HAL_POWERPC_RATTLER
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       rattler_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/powerpc/ts1000/current/ChangeLog
+++ b/packages/devs/flash/powerpc/ts1000/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_ts1000.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2002-10-18  Gary Thomas  <gthomas@ecoscentric.com>
 
 	* cdl/flash_ts1000.cdl: Package renamed for consistency.
--- a/packages/devs/flash/powerpc/ts1000/current/cdl/flash_ts1000.cdl
+++ b/packages/devs/flash/powerpc/ts1000/current/cdl/flash_ts1000.cdl
@@ -57,8 +57,6 @@ cdl_package CYGPKG_DEVS_FLASH_POWERPC_TS
     active_if	  CYGPKG_IO_FLASH
     requires	  CYGPKG_HAL_POWERPC_TS1000
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       ts1000_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/powerpc/ts6/current/ChangeLog
+++ b/packages/devs/flash/powerpc/ts6/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_ts6.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2002-12-12  Gary Thomas  <gthomas@ecoscentric.com>
 2002-12-12  Patrick Doyle <wpd@delcomsys.com>
 
--- a/packages/devs/flash/powerpc/ts6/current/cdl/flash_ts6.cdl
+++ b/packages/devs/flash/powerpc/ts6/current/cdl/flash_ts6.cdl
@@ -57,8 +57,6 @@ cdl_package CYGPKG_DEVS_FLASH_TS6 {
     active_if	  CYGPKG_IO_FLASH
     requires	  CYGPKG_HAL_POWERPC_TS6
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       powerpc_ts6_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/powerpc/vads/current/ChangeLog
+++ b/packages/devs/flash/powerpc/vads/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_vads.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2002-12-12  Gary Thomas  <gthomas@ecoscentric.com>
 2002-12-12  Patrick Doyle <wpd@delcomsys.com>
 
--- a/packages/devs/flash/powerpc/vads/current/cdl/flash_vads.cdl
+++ b/packages/devs/flash/powerpc/vads/current/cdl/flash_vads.cdl
@@ -57,7 +57,6 @@ cdl_package CYGPKG_DEVS_FLASH_VADS {
     active_if	  CYGPKG_IO_FLASH
     requires	  CYGPKG_HAL_POWERPC_VADS
 
-    implements    CYGHWR_IO_FLASH_DEVICE
 #    implements    CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM
 
     compile       powerpc_vads_flash.c
--- a/packages/devs/flash/powerpc/viper/current/ChangeLog
+++ b/packages/devs/flash/powerpc/viper/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_viper.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2003-09-05  Gary Thomas  <gary@mlbassoc.com>
 
 	* src/viper_flash.c: Need <pkgconf.h> to make platform decisions!
--- a/packages/devs/flash/powerpc/viper/current/cdl/flash_viper.cdl
+++ b/packages/devs/flash/powerpc/viper/current/cdl/flash_viper.cdl
@@ -57,8 +57,6 @@ cdl_package CYGPKG_DEVS_FLASH_VIPER {
     active_if	  CYGPKG_IO_FLASH
     requires	  CYGPKG_HAL_POWERPC_VIPER
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       viper_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/sh/hs7729pci/current/ChangeLog
+++ b/packages/devs/flash/sh/hs7729pci/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_sh_hs7729pci.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2001-06-08  Jesper Skov  <jskov@redhat.com>
 
 	* cdl/flash_sh_hs7729pci.cdl: Require AM29LV160 support.
--- a/packages/devs/flash/sh/hs7729pci/current/cdl/flash_sh_hs7729pci.cdl
+++ b/packages/devs/flash/sh/hs7729pci/current/cdl/flash_sh_hs7729pci.cdl
@@ -56,8 +56,6 @@ cdl_package CYGPKG_DEVS_FLASH_SH_HS7729P
     active_if	  CYGPKG_IO_FLASH
     requires	  CYGPKG_HAL_SH_SH7729_HS7729PCI
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       sh_hs7729pci_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/sh/se7751/current/ChangeLog
+++ b/packages/devs/flash/sh/se7751/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_sh_se7751.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2001-07-09  Jesper Skov  <jskov@redhat.com>
 
 	* Added flash support for SE7751.
--- a/packages/devs/flash/sh/se7751/current/cdl/flash_sh_se7751.cdl
+++ b/packages/devs/flash/sh/se7751/current/cdl/flash_sh_se7751.cdl
@@ -56,8 +56,6 @@ cdl_package CYGPKG_DEVS_FLASH_SH_SE7751 
     active_if	  CYGPKG_IO_FLASH
     requires	  CYGPKG_HAL_SH_SH7751_SE7751
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       sh_se7751_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/sh/se77x9/current/ChangeLog
+++ b/packages/devs/flash/sh/se77x9/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_sh_se77x9.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2001-06-12  Jesper Skov  <jskov@redhat.com>
 
 	* Added flash support for SE77x9.
--- a/packages/devs/flash/sh/se77x9/current/cdl/flash_sh_se77x9.cdl
+++ b/packages/devs/flash/sh/se77x9/current/cdl/flash_sh_se77x9.cdl
@@ -56,8 +56,6 @@ cdl_package CYGPKG_DEVS_FLASH_SH_SE77X9 
     active_if	  CYGPKG_IO_FLASH
     requires	  CYGPKG_HAL_SH_SH77X9_SE77X9
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     compile       sh_se77x9_flash.c
 
     # Arguably this should do in the generic package
--- a/packages/devs/flash/sst/39vf400/current/ChangeLog
+++ b/packages/devs/flash/sst/39vf400/current/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+        * cdl/flash_sst_39vf400.cdl:
+        Don't implement CYGHWR_IO_FLASH_DEVICE here. Leave it for
+        the chip driver.
+
 2003-07-24  Chris Garry  <cgarry@sweeneydesign.co.uk>
 
 	* include/flash_sst_39vf400.inl: 
--- a/packages/devs/flash/sst/39vf400/current/cdl/flash_sst_39vf400.cdl
+++ b/packages/devs/flash/sst/39vf400/current/cdl/flash_sst_39vf400.cdl
@@ -56,9 +56,7 @@ cdl_package CYGPKG_DEVS_FLASH_SST_39VF40
     active_if	  CYGPKG_IO_FLASH
     active_if     CYGINT_DEVS_FLASH_SST_39VF400_REQUIRED
 
-    implements    CYGHWR_IO_FLASH_DEVICE
-
     include_dir   cyg/io
 }
 
-# EOF flash_sst_39vf400.cdl
\ No newline at end of file
+# EOF flash_sst_39vf400.cdl
--- a/packages/devs/flash/synth/current/ChangeLog
+++ b/packages/devs/flash/synth/current/ChangeLog
@@ -1,3 +1,23 @@
+2008-11-17  Jonathan Larmour  <jifl@eCosCentric.com>
+
+	* Merge from flash_v2 branch:
+	
+ 2004-12-02  Bart Veer  <bartv@ecoscentric.com>
+
+	* src/synth.c: explicitly include <cyg/io/flash_dev.h> rather than
+	just defining _FLASH_PRIVATE_
+	* tests/flash2.c (cyg_user_start): update as per the v2 testcase
+
+ 2004-11-22  Bart Veer  <bartv@ecoscentric.com>
+
+	* cdl/flash_synth.cdl: fix testcase definitions
+
+ 2004-08-03  Andrew Lunn  <andrew.lunn@ascom.ch>
+
+	* cdl/flash_synth.cdl: Indicate we need the legacy device API.
+	* cdl/flash_synth.cdl: 
+	* tests/flash2.c: Added a second test case for the new API.
+
 2005-08-02  Andrew Lunn  <andrew.lunn@ascom.ch>
 
 	* tests/flash1.c (cyg_user_start): Fix a compiler warning about
@@ -18,7 +38,7 @@ 2004-12-15  Andrew Lunn  <andrew.lunn@as
 
 2003-11-20  Jani Monoses <jani@iv.ro>
 	
-	tests/flash1.c: Update flash_init() call to reflect
+	* tests/flash1.c: Update flash_init() call to reflect
 	new prototype.
 	
 2002-01-23  Jonathan Larmour  <jlarmour@redhat.com>
--- a/packages/devs/flash/synth/current/cdl/flash_synth.cdl
+++ b/packages/devs/flash/synth/current/cdl/flash_synth.cdl
@@ -56,6 +56,7 @@ cdl_package CYGPKG_DEVS_FLASH_SYNTH {
     requires      CYGINT_ISO_ERRNO_CODES
 
     implements    CYGHWR_IO_FLASH_DEVICE
+    implements    CYGHWR_IO_FLASH_DEVICE_LEGACY
 
     include_dir   .
     include_files ; # none _exported_ whatsoever
@@ -121,7 +122,7 @@ cdl_package CYGPKG_DEVS_FLASH_SYNTH {
         display "Synth flash tests"
         flavor  data
         no_define
-        calculated { "tests/flash1.c"}
+        calculated { "tests/flash1 tests/flash2"}
             description   "
                 This option specifies the set of tests for the synth flash package."
     }
--- a/packages/devs/flash/synth/current/src/synth.c
+++ b/packages/devs/flash/synth/current/src/synth.c
@@ -57,8 +57,8 @@
 #include <errno.h>
 #include <string.h>
 
-#define  _FLASH_PRIVATE_
 #include <cyg/io/flash.h>
+#include <cyg/io/flash_dev.h>
 
 #include "synth.h"
 
@@ -130,7 +130,7 @@ flash_hwr_init(void)
         return FLASH_ERR_HWR;
     }
     flash_info.start = cyg_dev_flash_synth_base;
-    flash_info.end = (void *)(((char *)cyg_dev_flash_synth_base) +
+    flash_info.end = (void *)(((char *)cyg_dev_flash_synth_base) -1 +
         (CYGNUM_FLASH_SYNTH_BLOCKSIZE * CYGNUM_FLASH_SYNTH_NUMBLOCKS));
 
     return FLASH_ERR_OK;
--- a/packages/devs/flash/synth/current/tests/flash1.c
+++ b/packages/devs/flash/synth/current/tests/flash1.c
@@ -1,4 +1,4 @@
-/* Hay, the copyright is usefull for something! */
+/* Hey, the copyright is useful for something! */
 
 static char copyright[] = 
 "//=========================================================================="
@@ -64,6 +64,9 @@ static char copyright[] =
 #ifndef CYGINT_ISO_STRING_STRFUNCS
 # define NA_MSG "Need string functions for test"
 #endif
+#ifndef CYGSEM_IO_FLASH_LEGACY_API
+# define NA_MSG "Need legacy IO FLASH API for test"
+#endif
 
 #ifdef NA_MSG
 void cyg_user_start(void)
new file mode 100644
--- /dev/null
+++ b/packages/devs/flash/synth/current/tests/flash2.c
@@ -0,0 +1,209 @@
+/* Hey, the copyright is useful for something! */
+
+static char copyright[] = 
+"//=========================================================================="
+"//"
+"//      flash1.c"
+"//"
+"//      Test flash operations for the synth target synth flash driver"
+"//"
+"//=========================================================================="
+"//####ECOSGPLCOPYRIGHTBEGIN####"
+"// -------------------------------------------"
+"// This file is part of eCos, the Embedded Configurable Operating System."
+"// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc."
+"//"
+"// eCos is free software; you can redistribute it and/or modify it under"
+"// the terms of the GNU General Public License as published by the Free"
+"// Software Foundation; either version 2 or (at your option) any later version."
+"//"
+"// eCos is distributed in the hope that it will be useful, but WITHOUT ANY"
+"// WARRANTY; without even the implied warranty of MERCHANTABILITY or"
+"// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License"
+"// for more details."
+"//"
+"// You should have received a copy of the GNU General Public License along"
+"// with eCos; if not, write to the Free Software Foundation, Inc.,"
+"// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA."
+"//"
+"// As a special exception, if other files instantiate templates or use macros"
+"// or inline functions from this file, or you compile this file and link it"
+"// with other works to produce a work based on this file, this file does not"
+"// by itself cause the resulting work to be covered by the GNU General Public"
+"// License. However the source code for this file must still be made available"
+"// in accordance with section (3) of the GNU General Public License."
+"//"
+"// This exception does not invalidate any other reasons why a work based on"
+"// this file might be covered by the GNU General Public License."
+"//"
+"// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc."
+"// at http://sources.redhat.com/ecos/ecos-license/"
+"// -------------------------------------------"
+"//####ECOSGPLCOPYRIGHTEND####"
+"//=========================================================================="
+"//#####DESCRIPTIONBEGIN####"
+"//"
+"// Author(s):           andrew.lunn@ascom.ch"
+"// Contributors:        andrew.lunn"
+"// Date:                2000-10-31"
+"// Purpose:             Test a flash driver"
+"// Description:         Try out a number of flash operations and make sure"
+"//                      what is in the flash is what we expeect."
+"//                      "
+"//####DESCRIPTIONEND####"
+"//"
+"//==========================================================================&"
+;
+
+#include <pkgconf/devs_flash_synth.h>
+#include <cyg/io/flash.h>
+#include <cyg/infra/testcase.h>
+#include <cyg/infra/diag.h>
+
+#include <string.h>
+
+#ifndef CYGINT_ISO_STRING_STRFUNCS
+# define NA_MSG "Need string functions for test"
+#endif
+
+#ifdef NA_MSG
+void cyg_user_start(void)
+{
+    CYG_TEST_INIT();
+    CYG_TEST_NA( NA_MSG );
+}
+#else
+
+//==========================================================================
+// main
+
+void cyg_user_start(void)
+{
+    int ret;
+    cyg_flashaddr_t flash_start=0, flash_end=0;
+    cyg_flash_info_t info;
+    int block_size=0, blocks=0;
+    cyg_flashaddr_t prog_start;
+    unsigned char * ptr;
+    cyg_uint32 i=0;
+    cyg_uint32 j;
+    
+    CYG_TEST_INIT();
+  
+    ret=cyg_flash_init((cyg_flash_printf *)diag_printf);
+  
+    CYG_TEST_PASS_FAIL((ret == CYG_FLASH_ERR_OK),"flash_init");
+
+    do {
+      ret = cyg_flash_get_info(i, &info);
+      if (ret == CYG_FLASH_ERR_OK) {
+        diag_printf("INFO: Nth=%d, start=%p, end=%p\n",
+                    i, info.start, info.end);
+        if (i == 0) {
+          flash_start = info.start;
+          flash_end = info.end;
+          block_size = info.block_info[0].block_size;
+          blocks = info.block_info[0].blocks;
+        }
+        for (j=0;j < info.num_block_infos; j++) {
+          diag_printf("INFO:\t block_size %d, blocks %d\n",
+                      info.block_info[j].block_size,
+                      info.block_info[j].blocks);
+        }
+      }
+      i++;
+    } while (ret != CYG_FLASH_ERR_INVALID);
+    
+    /* Erase the whole flash. Not recommended on real hardware since this
+     will probably erase the bootloader etc!!! */
+    ret=cyg_flash_erase(flash_start,block_size * blocks,NULL);
+    CYG_TEST_PASS_FAIL((ret == CYG_FLASH_ERR_OK),"flash_erase1");
+
+    /* check that its actually been erased, and test the mmap area */
+    for (ptr=(unsigned char *)flash_start,ret=0; 
+         ptr <= (unsigned char *)flash_end; ptr++) {
+        if (*ptr != 0xff) {
+            ret++;
+        }
+    }
+  
+    CYG_TEST_PASS_FAIL((ret == 0),"flash empty check");
+
+    ret = cyg_flash_program(flash_start,&copyright,sizeof(copyright),NULL);
+    CYG_TEST_PASS_FAIL((ret == CYG_FLASH_ERR_OK),"flash_program1");
+  
+    /* Check the contents made it into the flash */
+    CYG_TEST_PASS_FAIL(!strncmp((void *)flash_start,
+                                copyright,sizeof(copyright)),
+                       "flash program contents");
+
+    /* .. and check nothing else changed */
+    for (ptr=(unsigned char *)flash_start+sizeof(copyright),ret=0; 
+         ptr < (unsigned char *)flash_end; ptr++) {
+        if (*ptr != 0xff) {
+            ret++;
+        }
+    }
+  
+    CYG_TEST_PASS_FAIL((ret == 0),"flash program overrun check");
+
+    /* Program over a block boundary */
+    prog_start = flash_start + block_size - sizeof(copyright)/2;
+    ret = cyg_flash_program(prog_start,&copyright,sizeof(copyright),NULL);
+    CYG_TEST_PASS_FAIL((ret == CYG_FLASH_ERR_OK),"flash_program2");
+  
+    /* Check the first version is still OK */
+    CYG_TEST_PASS_FAIL(!strncmp((void *)flash_start,
+                                copyright,
+                                sizeof(copyright)),
+                       "Original contents");
+  
+    CYG_TEST_PASS_FAIL(!strncmp((void *)prog_start,
+                                copyright,
+                                sizeof(copyright)),
+                       "New program contents");
+
+    /* Check the bit in between is still erased */
+    for (ptr=(unsigned char *)flash_start+sizeof(copyright),ret=0; 
+         ptr < (unsigned char *)prog_start; ptr++) {
+        if (*ptr != 0xff) {
+            ret++;
+        }
+    }
+    CYG_TEST_PASS_FAIL((ret == 0),"flash erase check1");
+  
+    /* Erase the second block and make sure the first is not erased */
+    ret=cyg_flash_erase(flash_start+block_size,block_size,NULL);
+    CYG_TEST_PASS_FAIL((ret == CYG_FLASH_ERR_OK),"flash_erase2");
+
+    /* Check the erase worked */
+    for (ptr=(unsigned char *)flash_start+block_size,ret=0; 
+         ptr < (unsigned char *)flash_start+block_size*2; 
+         ptr++) {
+        if (*ptr != 0xff) {
+            ret++;
+        }
+    }
+
+    CYG_TEST_PASS_FAIL((ret == 0), "flash erase check2");
+  
+    /* Lastly check the first half of the copyright message is still there */
+    CYG_TEST_PASS_FAIL(!strncmp((void *)prog_start,
+                                copyright,
+                                sizeof(copyright)/2),
+                       "Block 1 OK");
+
+#if 0
+    /* This test is be fatal! Its not run by default!
+     Check the flash is read only, by trying to write to it. We expect
+     to get an exception */
+
+    *(char *)flash_start = 'a';
+#endif
+
+    CYG_TEST_PASS_FINISH("flash1");
+}
+
+#endif /* ifndef NA_MSG */
+
+/* EOF flash2.c */
--- a/packages/devs/flash/toshiba/tc58xxx/current/ChangeLog
+++ b/packages/devs/flash/toshiba/tc58xxx/current/ChangeLog
@@ -1,3 +1,12 @@
+2004-11-20  Bart Veer  <bartv@ecoscentric.com>
+
+	* cdl/flash_toshiba_tc58xxx.cdl: NAND flash requires indirect read
+	support in the main flash code
+
+2004-08-03  Andrew Lunn  <andrew.lunn@ascom.ch>
+
+	* cdl/flash_toshiba_tc58xxx.cdl: Indicate we need the legacy device API
+
 2004-08-24  Gary Thomas  <gary@mlbassoc.com>
 
 	* include/flash_tc58xxx.inl: Initial implementation of NAND ECC 
--- a/packages/devs/flash/toshiba/tc58xxx/current/cdl/flash_toshiba_tc58xxx.cdl
+++ b/packages/devs/flash/toshiba/tc58xxx/current/cdl/flash_toshiba_tc58xxx.cdl
@@ -61,6 +61,8 @@ cdl_package CYGPKG_DEVS_FLASH_TOSHIBA_TC
     active_if     CYGINT_DEVS_FLASH_TOSHIBA_TC58XXX_REQUIRED
 
     implements    CYGHWR_IO_FLASH_DEVICE
+    implements    CYGHWR_IO_FLASH_DEVICE_LEGACY
+    implements    CYGHWR_IO_FLASH_INDIRECT_READS
 
     include_dir   cyg/io
 }