diff options
Diffstat (limited to 'firmware/target')
-rw-r--r-- | firmware/target/arm/s5l8700/ipodnano2g/ftl-nano2g.c | 29 |
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 | } |