Lines Matching +full:- +full:- +full:id

9  * Kai-Uwe Bloem, Auerswald GmbH & Co KG, <linux-development@auerswald.de>
18 * $Id: cmdlinepart.c,v 1.17 2004/11/26 11:18:47 lavinen Exp $
19 * Copyright 2002 SYSGO Real-Time Solutions GmbH
21 * SPDX-License-Identifier: GPL-2.0+
27 * 'partition' - keeps current partition identifier
29 * partition := <part-id>
30 * <part-id> := <dev-id>,part_num
33 * 'mtdids' - linux kernel mtd device id <-> u-boot device id mapping
37 * <idmap> := <dev-id>=<mtd-id>
38 * <dev-id> := 'nand'|'nor'|'onenand'<dev-num>
39 * <dev-num> := mtd device number, 0...
40 * <mtd-id> := unique device tag used by linux kernel to find mtd device (mtd->name)
43 * 'mtdparts' - partition list
45 * mtdparts=mtdparts=<mtd-def>[;<mtd-def>...]
47 * <mtd-def> := <mtd-id>:<part-def>[,<part-def>...]
48 * <mtd-id> := unique device tag used by linux kernel to find mtd device (mtd->name)
49 * <part-def> := <size>[@<offset>][<name>][<ro-flag>]
50 * <size> := standard linux memsize OR '-' to denote all remaining space
53 * <ro-flag> := when set to 'ro' makes partition read-only (not used, passed to kernel)
56 * - each <mtd-id> used in mtdparts must albo exist in 'mtddis' mapping
57 * - if the above variables are not set defaults for a given target are used
62 * mtdids=nor0=edb7312-nor
63 * mtdparts=mtdparts=edb7312-nor:-
66 * mtdids=nor0=edb7312-nor,nand0=edb7312-nand
67 * mtdparts=mtdparts=edb7312-nor:256k(ARMboot)ro,-(root);edb7312-nand:-(home)
116 * field for read-only partitions */
139 #define cramfs_load(x,y,z) (-1)
163 MTD_DEV_TYPE(type), num, CONFIG_SYS_MAX_FLASH_BANKS - 1); in mtd_device_validate()
167 *size = mtd->size; in mtd_device_validate()
177 *size = mtd->size; in mtd_device_validate()
182 MTD_DEV_TYPE(type), num, CONFIG_SYS_MAX_NAND_DEVICE - 1); in mtd_device_validate()
200 * Parse device id string <dev-id> := 'nand'|'nor'|'onenand'<dev-num>,
203 * @param id string describing device id
209 static int mtd_id_parse(const char *id, const char **ret_id, u8 *dev_type, u8 *dev_num) in mtd_id_parse() argument
211 const char *p = id; in mtd_id_parse()
224 printf("incorrect device type in %s\n", id); in mtd_id_parse()
229 printf("incorrect device number in %s\n", id); in mtd_id_parse()
249 static inline u32 get_part_sector_size_nand(struct mtdids *id) in get_part_sector_size_nand() argument
254 mtd = get_nand_dev_by_index(id->num); in get_part_sector_size_nand()
256 return mtd->erasesize; in get_part_sector_size_nand()
263 static inline u32 get_part_sector_size_nor(struct mtdids *id, struct part_info *part) in get_part_sector_size_nor() argument
272 flash = &flash_info[id->num]; in get_part_sector_size_nor()
274 start_phys = flash->start[0] + part->offset; in get_part_sector_size_nor()
275 end_phys = start_phys + part->size - 1; in get_part_sector_size_nor()
277 for (i = 0; i < flash->sector_count; i++) { in get_part_sector_size_nor()
278 if (flash->start[i] >= end_phys) in get_part_sector_size_nor()
281 if (flash->start[i] >= start_phys) { in get_part_sector_size_nor()
282 if (i == flash->sector_count - 1) { in get_part_sector_size_nor()
283 size = flash->start[0] + flash->size - flash->start[i]; in get_part_sector_size_nor()
285 size = flash->start[i+1] - flash->start[i]; in get_part_sector_size_nor()
299 return mtd->erasesize; in get_part_sector_size_nor()
310 return mtd->erasesize; in get_part_sector_size_onenand()
317 static inline u32 get_part_sector_size(struct mtdids *id, struct part_info *part) in get_part_sector_size() argument
319 if (id->type == MTD_DEV_TYPE_NAND) in get_part_sector_size()
320 return get_part_sector_size_nand(id); in get_part_sector_size()
321 else if (id->type == MTD_DEV_TYPE_NOR) in get_part_sector_size()
322 return get_part_sector_size_nor(id, part); in get_part_sector_size()
323 else if (id->type == MTD_DEV_TYPE_ONENAND) in get_part_sector_size()
346 DEBUGF("\n---mtdparts_init---\n"); in mtdparts_init()
348 struct mtdids *id; in mtdparts_init() local
363 id = (struct mtdids *)(current_mtd_dev + 1); in mtdparts_init()
364 part = (struct part_info *)(id + 1); in mtdparts_init()
366 /* id */ in mtdparts_init()
367 id->mtd_id = "single part"; in mtdparts_init()
375 if ((mtd_id_parse(dev_name, NULL, &id->type, &id->num) != 0) || in mtdparts_init()
376 (mtd_device_validate(id->type, id->num, &size) != 0)) { in mtdparts_init()
377 printf("incorrect device: %s%d\n", MTD_DEV_TYPE(id->type), id->num); in mtdparts_init()
381 id->size = size; in mtdparts_init()
382 INIT_LIST_HEAD(&id->link); in mtdparts_init()
384 DEBUGF("dev id: type = %d, num = %d, size = 0x%08llx, mtd_id = %s\n", in mtdparts_init()
385 id->type, id->num, id->size, id->mtd_id); in mtdparts_init()
388 part->name = "static"; in mtdparts_init()
389 part->auto_name = 0; in mtdparts_init()
392 part->size = CONFIG_JFFS2_PART_SIZE; in mtdparts_init()
394 part->size = SIZE_REMAINING; in mtdparts_init()
398 part->offset = CONFIG_JFFS2_PART_OFFSET; in mtdparts_init()
400 part->offset = 0x00000000; in mtdparts_init()
403 part->dev = current_mtd_dev; in mtdparts_init()
404 INIT_LIST_HEAD(&part->link); in mtdparts_init()
407 if (part->size == SIZE_REMAINING) in mtdparts_init()
408 part->size = id->size - part->offset; in mtdparts_init()
410 part->sector_size = get_part_sector_size(id, part); in mtdparts_init()
413 part->name, part->size, part->offset); in mtdparts_init()
416 current_mtd_dev->id = id; in mtdparts_init()
417 INIT_LIST_HEAD(&current_mtd_dev->link); in mtdparts_init()
418 current_mtd_dev->num_parts = 1; in mtdparts_init()
419 INIT_LIST_HEAD(&current_mtd_dev->parts); in mtdparts_init()
420 list_add(&part->link, &current_mtd_dev->parts); in mtdparts_init()
444 DEBUGF("\n--- jffs2_part_info: partition number %d for device %s%d (%s)\n", in jffs2_part_info()
445 part_num, MTD_DEV_TYPE(dev->id->type), in jffs2_part_info()
446 dev->id->num, dev->id->mtd_id); in jffs2_part_info()
448 if (part_num >= dev->num_parts) { in jffs2_part_info()
450 part_num, MTD_DEV_TYPE(dev->id->type), in jffs2_part_info()
451 dev->id->num, dev->id->mtd_id); in jffs2_part_info()
457 list_for_each(entry, &dev->parts) { in jffs2_part_info()
469 /* U-Boot commands */
473 * Routine implementing fsload u-boot command. This routine tries to load
490 /* pre-set Boot file name */ in do_jffs2_fsload()
535 * Routine implementing u-boot ls command which lists content of a given
573 * Routine implementing u-boot fsinfo command. This routine prints out
615 " - load binary file from flash bank\n"