summaryrefslogtreecommitdiff
path: root/firmware/target/arm/s5l8700/ipodnano2g
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/s5l8700/ipodnano2g')
-rw-r--r--firmware/target/arm/s5l8700/ipodnano2g/ftl-nano2g.c29
1 files changed, 2 insertions, 27 deletions
diff --git a/firmware/target/arm/s5l8700/ipodnano2g/ftl-nano2g.c b/firmware/target/arm/s5l8700/ipodnano2g/ftl-nano2g.c
index 90217363cc..a3d860730a 100644
--- a/firmware/target/arm/s5l8700/ipodnano2g/ftl-nano2g.c
+++ b/firmware/target/arm/s5l8700/ipodnano2g/ftl-nano2g.c
@@ -2153,8 +2153,6 @@ uint32_t ftl_init(void)
2153{ 2153{
2154 mutex_init(&ftl_mtx); 2154 mutex_init(&ftl_mtx);
2155 uint32_t i; 2155 uint32_t i;
2156 uint32_t result = 0;
2157 uint32_t foundsignature, founddevinfo, blockwiped, repaired, skip;
2158 if (nand_device_init() != 0) //return 1; 2156 if (nand_device_init() != 0) //return 1;
2159 panicf("FTL: Lowlevel NAND driver init failed!"); 2157 panicf("FTL: Lowlevel NAND driver init failed!");
2160 ftl_banks = 0; 2158 ftl_banks = 0;
@@ -2163,40 +2161,17 @@ uint32_t ftl_init(void)
2163 ftl_nand_type = nand_get_device_type(0); 2161 ftl_nand_type = nand_get_device_type(0);
2164 ppb = ftl_nand_type->pagesperblock * ftl_banks; 2162 ppb = ftl_nand_type->pagesperblock * ftl_banks;
2165 syshyperblocks = ftl_nand_type->blocks - ftl_nand_type->userblocks - 0x17; 2163 syshyperblocks = ftl_nand_type->blocks - ftl_nand_type->userblocks - 0x17;
2166 foundsignature = 0;
2167 blockwiped = 1;
2168 for (i = 0; i < ftl_nand_type->pagesperblock; i++)
2169 {
2170 result = nand_read_page(0, i, ftl_buffer, NULL, 1, 1);
2171 if ((result & 0x11F) == 0)
2172 {
2173 blockwiped = 0;
2174 if (((uint32_t*)ftl_buffer)[0] != 0x41303034) continue;
2175 foundsignature = 1;
2176 break;
2177 }
2178 else if ((result & 2) != 2) blockwiped = 0;
2179 }
2180 2164
2181 founddevinfo = ftl_has_devinfo(); 2165 if (!ftl_has_devinfo())
2182
2183 repaired = 0;
2184 skip = 0;
2185 if (founddevinfo == 0)
2186 { 2166 {
2187 DEBUGF("FTL: No DEVICEINFO found!\n"); 2167 DEBUGF("FTL: No DEVICEINFO found!\n");
2188 return -1; 2168 return -1;
2189 } 2169 }
2190 if (foundsignature != 0 && (result & 0x11F) != 0)
2191 {
2192 DEBUGF("FTL: Problem with the signature!\n");
2193 return -2;
2194 }
2195 if (ftl_vfl_open() == 0) 2170 if (ftl_vfl_open() == 0)
2196 if (ftl_open() == 0) 2171 if (ftl_open() == 0)
2197 return 0; 2172 return 0;
2198 2173
2199 DEBUGF("FTL: Initialization failed!\n"); 2174 DEBUGF("FTL: Initialization failed!\n");
2200 2175
2201 return -3; 2176 return -2;
2202} 2177}