Mercurial > flash_v2
diff packages/hal/common/current/src/hal_if.c @ 791:a2dfa8bf3c57
Export RedBoot FIS functions - from Knud Woehler <knud.woehler@microplex.de>
| author | gthomas |
|---|---|
| date | Mon, 03 Mar 2003 17:09:56 +0000 |
| parents | 44f818173f96 |
| children | 72c6adb4efe1 |
line wrap: on
line diff
--- a/packages/hal/common/current/src/hal_if.c +++ b/packages/hal/common/current/src/hal_if.c @@ -42,7 +42,7 @@ //#####DESCRIPTIONBEGIN#### // // Author(s): jskov -// Contributors:jskov +// Contributors:jskov, woehler // Date: 2000-06-07 // //####DESCRIPTIONEND#### @@ -75,6 +75,9 @@ #include <redboot.h> #include <flash_config.h> #endif +#ifdef CYGOPT_REDBOOT_FIS +#include <fis.h> +#endif #endif //-------------------------------------------------------------------------- @@ -112,6 +115,39 @@ flash_config_op( int op, char * key, voi } #endif +#ifdef CYGOPT_REDBOOT_FIS + +static __call_if_flash_fis_op_fn_t flash_fis_op; + +static cyg_bool +flash_fis_op( int op, char *name, void *val) +{ + cyg_bool res = false; + struct fis_image_desc *fis; + int num; + + CYGARC_HAL_SAVE_GP(); + fis = fis_lookup(name, &num); + if(fis != NULL) + { + switch ( op ) { + case CYGNUM_CALL_IF_FLASH_FIS_GET_FLASH_BASE: + *(CYG_ADDRESS *)val = fis->flash_base; + res = true; + break; + case CYGNUM_CALL_IF_FLASH_FIS_GET_SIZE: + *(unsigned long *)val = fis->size; + res = true; + break; + default: + break; + } + } + CYGARC_HAL_RESTORE_GP(); + return res; +} +#endif + //---------------------------- // Delay uS #ifdef CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US @@ -891,6 +927,10 @@ hal_if_init(void) CYGACC_CALL_IF_FLASH_CFG_OP_SET(flash_config_op); #endif +#ifdef CYGOPT_REDBOOT_FIS + CYGACC_CALL_IF_FLASH_FIS_OP_SET(flash_fis_op); +#endif + // Data entries not currently supported in eCos #ifdef CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA CYGACC_CALL_IF_DBG_DATA_SET(0); @@ -971,3 +1011,4 @@ hal_if_init(void) plf_if_init(); #endif } +
