.. | .. |
---|
44 | 44 | #endif |
---|
45 | 45 | |
---|
46 | 46 | #ifdef CONFIG_DM_MMC |
---|
47 | | -static int pmbr_part_valid(struct partition *part) |
---|
48 | | -{ |
---|
49 | | - if (part->sys_ind == EFI_PMBR_OSTYPE_EFI_GPT && |
---|
50 | | - get_unaligned_le32(&part->start_sect) == 1UL) { |
---|
51 | | - return 1; |
---|
52 | | - } |
---|
53 | | - |
---|
54 | | - return 0; |
---|
55 | | -} |
---|
56 | | - |
---|
57 | 47 | static int is_pmbr_valid(legacy_mbr * mbr) |
---|
58 | 48 | { |
---|
59 | 49 | int i = 0; |
---|
.. | .. |
---|
62 | 52 | return 0; |
---|
63 | 53 | |
---|
64 | 54 | for (i = 0; i < 4; i++) { |
---|
65 | | - if (pmbr_part_valid(&mbr->partition_record[i])) { |
---|
| 55 | + if (mbr->partition_record[i].sys_ind == 0xc) |
---|
66 | 56 | return 1; |
---|
67 | | - } |
---|
68 | 57 | } |
---|
| 58 | + |
---|
69 | 59 | return 0; |
---|
70 | 60 | } |
---|
71 | 61 | |
---|
.. | .. |
---|
76 | 66 | /* Read legacy MBR from block 0 and validate it */ |
---|
77 | 67 | if ((blk_dread(dev_desc, 0, 1, (ulong *)legacymbr) != 1) |
---|
78 | 68 | || (is_pmbr_valid(legacymbr) != 1)) { |
---|
79 | | - return -1; |
---|
| 69 | + return 0; |
---|
80 | 70 | } |
---|
81 | 71 | |
---|
82 | | - return 0; |
---|
| 72 | + return 1; |
---|
83 | 73 | } |
---|
84 | 74 | #endif |
---|
85 | 75 | |
---|
.. | .. |
---|
262 | 252 | return envf_num; |
---|
263 | 253 | } |
---|
264 | 254 | |
---|
265 | | -#ifdef CONFIG_ENV_PARTITION |
---|
266 | | -static int envf_add_partition_bootargs(void) |
---|
267 | | -{ |
---|
268 | | - char *part_list; |
---|
269 | | - char *bootargs; |
---|
270 | | - int i; |
---|
271 | | - |
---|
272 | | - for (i = 0; i < ARRAY_SIZE(part_type); i++) { |
---|
273 | | - part_list = env_get(part_type[i]); |
---|
274 | | - if (part_list) |
---|
275 | | - break; |
---|
276 | | - } |
---|
277 | | - if (!part_list) |
---|
278 | | - return -EINVAL; |
---|
279 | | - |
---|
280 | | - bootargs = calloc(1, strlen(part_list) + strlen(part_type[i]) + 2); |
---|
281 | | - if (!bootargs) |
---|
282 | | - return -ENOMEM; |
---|
283 | | - |
---|
284 | | - strcat(bootargs, part_type[i]); |
---|
285 | | - strcat(bootargs, "="); |
---|
286 | | - strcat(bootargs, part_list); |
---|
287 | | - env_update("bootargs", bootargs); |
---|
288 | | - free(bootargs); |
---|
289 | | - |
---|
290 | | - return 0; |
---|
291 | | -} |
---|
292 | | -#endif |
---|
293 | | - |
---|
294 | 255 | static int envf_load(void) |
---|
295 | 256 | { |
---|
296 | 257 | struct blk_desc *desc; |
---|
.. | .. |
---|
313 | 274 | return -EINTR; |
---|
314 | 275 | } |
---|
315 | 276 | } |
---|
316 | | - |
---|
317 | | -#ifdef CONFIG_ENV_PARTITION |
---|
318 | | - envf_add_partition_bootargs(); |
---|
319 | | -#endif |
---|
320 | 277 | |
---|
321 | 278 | return 0; |
---|
322 | 279 | } |
---|