# HG changeset patch # User gthomas # Date 1030188054 0 # Node ID eb332fa195ca4aebb502dbcd0b83a2fb76e35f00 # Parent 82c554739834715be819270db2ac8deaca1acda9 Add CDL control over FIS entry size - from Thomas Koeller diff --git a/packages/redboot/current/ChangeLog b/packages/redboot/current/ChangeLog --- a/packages/redboot/current/ChangeLog +++ b/packages/redboot/current/ChangeLog @@ -1,3 +1,8 @@ +2002-08-20 Thomas Koeller + + * cdl/redboot.cdl: + * include/fis.h: Allow control of FIS descriptor padding. + 2002-08-16 Jani Monoses * src/io.c: Do not add empty lines to command history. diff --git a/packages/redboot/current/cdl/redboot.cdl b/packages/redboot/current/cdl/redboot.cdl --- a/packages/redboot/current/cdl/redboot.cdl +++ b/packages/redboot/current/cdl/redboot.cdl @@ -43,7 +43,7 @@ # # Author(s): gthomas # Original data: gthomas -# Contributors: Philippe Robin, Andrew Lunn +# Contributors: Philippe Robin, Andrew Lunn, tkoeller # Date: 2000-05-01 # #####DESCRIPTIONEND#### @@ -558,6 +558,17 @@ cdl_package CYGPKG_REDBOOT { flash to be recognized as a reserved area for RedBoot by an ARM BootRom monitor." } + + cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_SIZE { + display "Size of FIS directory entry" + flavor data + default_value 256 + description " + The FIS directory is limited to one single flash + sector. If your flash has tiny sectors, you may wish + to reduce this value in order to get more slots in + the FIS directory." + } } cdl_component CYGSEM_REDBOOT_FLASH_CONFIG { diff --git a/packages/redboot/current/include/fis.h b/packages/redboot/current/include/fis.h --- a/packages/redboot/current/include/fis.h +++ b/packages/redboot/current/include/fis.h @@ -43,7 +43,7 @@ //#####DESCRIPTIONBEGIN#### // // Author(s): gthomas -// Contributors: gthomas +// Contributors: gthomas, tkoeller // Date: 2000-07-28 // Purpose: // Description: @@ -54,6 +54,13 @@ // //========================================================================== +#include +#ifdef CYGOPT_REDBOOT_FIS +#include + +#define FIS_IMAGE_DESC_SIZE_UNPADDED \ + (16 + 4 * sizeof(unsigned long) + 3 * sizeof(CYG_ADDRESS)) + struct fis_image_desc { unsigned char name[16]; // Null terminated name CYG_ADDRESS flash_base; // Address within FLASH of image @@ -61,11 +68,12 @@ struct fis_image_desc { unsigned long size; // Length of image CYG_ADDRESS entry_point; // Execution entry point unsigned long data_length; // Length of actual data - unsigned char _pad[256-(16+4*sizeof(unsigned long)+3*sizeof(CYG_ADDRESS))]; + unsigned char _pad[CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_SIZE-FIS_IMAGE_DESC_SIZE_UNPADDED]; unsigned long desc_cksum; // Checksum over image descriptor unsigned long file_cksum; // Checksum over image data }; struct fis_image_desc *fis_lookup(char *name, int *num); +#endif // CYGOPT_REDBOOT_FIS #endif // _FIS_H_