diff gsm-fw/services/ffs/cfgffs.c @ 226:4d706a4134b0

FFS in gsm-fw: generate the legacy block info table at run time
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Mon, 13 Jan 2014 10:15:59 +0000
parents fee45482aa2a
children f22b34873ea5
line wrap: on
line diff
--- a/gsm-fw/services/ffs/cfgffs.c	Mon Jan 13 09:05:01 2014 +0000
+++ b/gsm-fw/services/ffs/cfgffs.c	Mon Jan 13 10:15:59 2014 +0000
@@ -16,11 +16,8 @@
 
 #if FFS_IN_RAM
 
-extern struct block_info_s ramffs_block_info[RAMFFS_NBLOCKS];
-
 struct dev_s dev = {
     .base	   = _RAMFFS_area,
-    .binfo	   = ramffs_block_info,
     .manufact	   = MANUFACT_RAM,
     .blocksize	   = RAMFFS_BLKSIZE_BYTES,
     .blocksize_ld  = RAMFFS_BLKSIZE_LOG2,
@@ -30,19 +27,8 @@
 
 #elif CONFIG_MOKOFFS
 
-static struct block_info_s mokoffs_blocks[7] = {
-    { 0x00000, 16 },
-    { 0x10000, 16 },
-    { 0x20000, 16 },
-    { 0x30000, 16 },
-    { 0x40000, 16 },
-    { 0x50000, 16 },
-    { 0x60000, 16 }
-};
-
 struct dev_s dev = {
     .base	   = (char *) 0x380000,
-    .binfo	   = mokoffs_blocks,
     .manufact	   = MANUFACT_SAMSUNG,
     .device	   = 0x22A0,
     .blocksize	   = 0x10000,
@@ -55,24 +41,14 @@
 
 /* see ../../cfgmagic/feature.pirhack-ffs */
 
-static struct block_info_s pirhack_ffs_blocks[7] = {
-    { 0x600000, 18 },
-    { 0x640000, 18 },
-    { 0x680000, 18 },
-    { 0x6C0000, 18 },
-    { 0x700000, 18 },
-    { 0x740000, 18 },
-    { 0x780000, 18 }
-};
-
 struct dev_s dev = {
-    .base	   = (char *) FLASH2_BASE_ADDR,
-    .binfo	   = pirhack_ffs_blocks,
+    .base	   = (char *) FLASH2_BASE_ADDR +
+				CONFIG_PIRHACK_FFS_START * 0x40000,
     .manufact	   = MANUFACT_AMD,
     .blocksize	   = 0x40000,
     .blocksize_ld  = 18,
     .driver	   = FFS_DRIVER_AMD,
-    .numblocks	   = 7,
+    .numblocks	   = CONFIG_PIRHACK_FFS_NBLOCKS,
 };
 
 #else