From: Wolfgang Denk Date: Wed, 29 Jul 2009 07:15:36 +0000 (+0200) Subject: Merge branch 'master' of git://git.denx.de/u-boot-mpc83xx X-Git-Tag: v2009.08-rc2~42 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=03a14104f1ccd395caa774c077b4305963afebf7;hp=c2e49f706ba13213f3c8da3a33e88010214e1997;p=platform%2Fkernel%2Fu-boot.git Merge branch 'master' of git://git.denx.de/u-boot-mpc83xx --- diff --git a/common/cmd_ext2.c b/common/cmd_ext2.c index 6ee60c6..b7e4048 100644 --- a/common/cmd_ext2.c +++ b/common/cmd_ext2.c @@ -67,51 +67,50 @@ int do_ext2ls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) if (argc < 3) { cmd_usage(cmdtp); - return(1); + return 1; } dev = (int)simple_strtoul (argv[2], &ep, 16); dev_desc = get_dev(argv[1],dev); if (dev_desc == NULL) { printf ("\n** Block device %s %d not supported\n", argv[1], dev); - return(1); + return 1; } if (*ep) { if (*ep != ':') { puts ("\n** Invalid boot device, use `dev[:part]' **\n"); - return(1); + return 1; } part = (int)simple_strtoul(++ep, NULL, 16); } - if (argc == 4) { - filename = argv[3]; - } + if (argc == 4) + filename = argv[3]; PRINTF("Using device %s %d:%d, directory: %s\n", argv[1], dev, part, filename); if ((part_length = ext2fs_set_blk_dev(dev_desc, part)) == 0) { printf ("** Bad partition - %s %d:%d **\n", argv[1], dev, part); ext2fs_close(); - return(1); + return 1; } if (!ext2fs_mount(part_length)) { printf ("** Bad ext2 partition or disk - %s %d:%d **\n", argv[1], dev, part); ext2fs_close(); - return(1); + return 1; } if (ext2fs_ls (filename)) { printf ("** Error ext2fs_ls() **\n"); ext2fs_close(); - return(1); + return 1; }; ext2fs_close(); - return(0); + return 0; } U_BOOT_CMD( @@ -140,11 +139,11 @@ int do_ext2load (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) switch (argc) { case 3: addr_str = getenv("loadaddr"); - if (addr_str != NULL) { + if (addr_str != NULL) addr = simple_strtoul (addr_str, NULL, 16); - } else { + else addr = CONFIG_SYS_LOAD_ADDR; - } + filename = getenv ("bootfile"); count = 0; break; @@ -166,24 +165,24 @@ int do_ext2load (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) default: cmd_usage(cmdtp); - return(1); + return 1; } if (!filename) { - puts ("\n** No boot file defined **\n"); - return(1); + puts ("** No boot file defined **\n"); + return 1; } dev = (int)simple_strtoul (argv[2], &ep, 16); dev_desc = get_dev(argv[1],dev); if (dev_desc==NULL) { - printf ("\n** Block device %s %d not supported\n", argv[1], dev); - return(1); + printf ("** Block device %s %d not supported\n", argv[1], dev); + return 1; } if (*ep) { if (*ep != ':') { - puts ("\n** Invalid boot device, use `dev[:part]' **\n"); - return(1); + puts ("** Invalid boot device, use `dev[:part]' **\n"); + return 1; } part = (int)simple_strtoul(++ep, NULL, 16); } @@ -193,50 +192,53 @@ int do_ext2load (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) if (part != 0) { if (get_partition_info (dev_desc, part, &info)) { printf ("** Bad partition %d **\n", part); - return(1); + return 1; } if (strncmp((char *)info.type, BOOT_PART_TYPE, sizeof(info.type)) != 0) { - printf ("\n** Invalid partition type \"%.32s\"" + printf ("** Invalid partition type \"%.32s\"" " (expect \"" BOOT_PART_TYPE "\")\n", info.type); - return(1); + return 1; } - PRINTF ("\nLoading from block device %s device %d, partition %d: " - "Name: %.32s Type: %.32s File:%s\n", - argv[1], dev, part, info.name, info.type, filename); + printf ("Loading file \"%s\" " + "from %s device %d:%d (%.32s)\n", + filename, + argv[1], dev, part, info.name); } else { - PRINTF ("\nLoading from block device %s device %d, File:%s\n", - argv[1], dev, filename); + printf ("Loading file \"%s\" from %s device %d\n", + filename, argv[1], dev); } if ((part_length = ext2fs_set_blk_dev(dev_desc, part)) == 0) { printf ("** Bad partition - %s %d:%d **\n", argv[1], dev, part); ext2fs_close(); - return(1); + return 1; } if (!ext2fs_mount(part_length)) { - printf ("** Bad ext2 partition or disk - %s %d:%d **\n", argv[1], dev, part); + printf ("** Bad ext2 partition or disk - %s %d:%d **\n", + argv[1], dev, part); ext2fs_close(); - return(1); + return 1; } filelen = ext2fs_open(filename); if (filelen < 0) { printf("** File not found %s\n", filename); ext2fs_close(); - return(1); + return 1; } if ((count < filelen) && (count != 0)) { filelen = count; } if (ext2fs_read((char *)addr, filelen) != filelen) { - printf("\n** Unable to read \"%s\" from %s %d:%d **\n", filename, argv[1], dev, part); + printf("** Unable to read \"%s\" from %s %d:%d **\n", + filename, argv[1], dev, part); ext2fs_close(); - return(1); + return 1; } ext2fs_close(); @@ -244,11 +246,11 @@ int do_ext2load (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) /* Loading ok, update default load address */ load_addr = addr; - printf ("\n%d bytes read\n", filelen); + printf ("%d bytes read\n", filelen); sprintf(buf, "%X", filelen); setenv("filesize", buf); - return(filelen); + return 0; } U_BOOT_CMD( diff --git a/fs/ext2/ext2fs.c b/fs/ext2/ext2fs.c index 436f4a4..d54f60b 100644 --- a/fs/ext2/ext2fs.c +++ b/fs/ext2/ext2fs.c @@ -110,7 +110,7 @@ struct ext2_block_group { uint32_t inode_table_id; uint16_t free_blocks; uint16_t free_inodes; - uint16_t pad; + uint16_t used_dir_cnt; uint32_t reserved[3]; }; @@ -182,14 +182,22 @@ int indir2_blkno = -1; static int ext2fs_blockgroup (struct ext2_data *data, int group, struct ext2_block_group *blkgrp) { + unsigned int blkno; + unsigned int blkoff; + unsigned int desc_per_blk; + + desc_per_blk = EXT2_BLOCK_SIZE(data) / sizeof(struct ext2_block_group); + + blkno = __le32_to_cpu(data->sblock.first_data_block) + 1 + + group / desc_per_blk; + blkoff = (group % desc_per_blk) * sizeof(struct ext2_block_group); #ifdef DEBUG - printf ("ext2fs read blockgroup\n"); + printf ("ext2fs read %d group descriptor (blkno %d blkoff %d)\n", + group, blkno, blkoff); #endif - return (ext2fs_devread - (((__le32_to_cpu (data->sblock.first_data_block) + - 1) << LOG2_EXT2_BLOCK_SIZE (data)), - group * sizeof (struct ext2_block_group), - sizeof (struct ext2_block_group), (char *) blkgrp)); + return (ext2fs_devread (blkno << LOG2_EXT2_BLOCK_SIZE(data), + blkoff, sizeof(struct ext2_block_group), (char *)blkgrp)); + } @@ -203,34 +211,37 @@ static int ext2fs_read_inode unsigned int blkno; unsigned int blkoff; - /* It is easier to calculate if the first inode is 0. */ - ino--; #ifdef DEBUG printf ("ext2fs read inode %d\n", ino); #endif - status = ext2fs_blockgroup (data, - ino / - __le32_to_cpu (sblock->inodes_per_group), - &blkgrp); + /* It is easier to calculate if the first inode is 0. */ + ino--; + status = ext2fs_blockgroup (data, ino / __le32_to_cpu + (sblock->inodes_per_group), &blkgrp); if (status == 0) { return (0); } - inodes_per_block = EXT2_BLOCK_SIZE (data) / 128; - blkno = (ino % __le32_to_cpu (sblock->inodes_per_group)) / - inodes_per_block; - blkoff = (ino % __le32_to_cpu (sblock->inodes_per_group)) % - inodes_per_block; + + inodes_per_block = EXT2_BLOCK_SIZE(data) / __le16_to_cpu(sblock->inode_size); + +#ifdef DEBUG + printf ("ext2fs read inode blkno %d blkoff %d\n", blkno, blkoff); +#endif + + blkno = __le32_to_cpu (blkgrp.inode_table_id) + + (ino % __le32_to_cpu (sblock->inodes_per_group)) + / inodes_per_block; + blkoff = (ino % inodes_per_block) * __le16_to_cpu (sblock->inode_size); #ifdef DEBUG printf ("ext2fs read inode blkno %d blkoff %d\n", blkno, blkoff); #endif /* Read the inode. */ - status = ext2fs_devread (((__le32_to_cpu (blkgrp.inode_table_id) + - blkno) << LOG2_EXT2_BLOCK_SIZE (data)), - sizeof (struct ext2_inode) * blkoff, + status = ext2fs_devread (blkno << LOG2_EXT2_BLOCK_SIZE (data), blkoff, sizeof (struct ext2_inode), (char *) inode); if (status == 0) { return (0); } + return (1); } diff --git a/include/configs/FPS850L.h b/include/configs/FPS850L.h index aceecd8..1190656 100644 --- a/include/configs/FPS850L.h +++ b/include/configs/FPS850L.h @@ -36,9 +36,9 @@ #define CONFIG_MPC850 1 /* This is a MPC850 CPU */ #define CONFIG_FPS850L 1 /* ...on a FingerPrint Sensor */ -#undef CONFIG_8xx_CONS_SMC1 #define CONFIG_8xx_CONS_SMC2 1 /* Console is on SMC2 */ -#undef CONFIG_8xx_CONS_NONE +#define CONFIG_SYS_SMC_RXBUFLEN 128 +#define CONFIG_SYS_MAXIDLE 10 #define CONFIG_BAUDRATE 115200 #define CONFIG_BOOTCOUNT_LIMIT diff --git a/include/configs/FPS860L.h b/include/configs/FPS860L.h index 4a61d7c..73bcccc 100644 --- a/include/configs/FPS860L.h +++ b/include/configs/FPS860L.h @@ -36,9 +36,9 @@ #define CONFIG_MPC860 1 /* This is a MPC860 CPU */ #define CONFIG_FPS860L 1 /* ...on a FingerPrint Sensor */ -#undef CONFIG_8xx_CONS_SMC1 #define CONFIG_8xx_CONS_SMC2 1 /* Console is on SMC2 */ -#undef CONFIG_8xx_CONS_NONE +#define CONFIG_SYS_SMC_RXBUFLEN 128 +#define CONFIG_SYS_MAXIDLE 10 #define CONFIG_BAUDRATE 115200 #define CONFIG_BOOTCOUNT_LIMIT diff --git a/include/configs/HMI10.h b/include/configs/HMI10.h index 6c8e81f..88e1946 100644 --- a/include/configs/HMI10.h +++ b/include/configs/HMI10.h @@ -45,8 +45,8 @@ #endif #define CONFIG_8xx_CONS_SMC1 1 /* Console is on SMC1 */ -#undef CONFIG_8xx_CONS_SMC2 -#undef CONFIG_8xx_CONS_NONE +#define CONFIG_SYS_SMC_RXBUFLEN 128 +#define CONFIG_SYS_MAXIDLE 10 #define CONFIG_BAUDRATE 115200 /* console baudrate = 115kbps */ #define CONFIG_PS2KBD /* AT-PS/2 Keyboard */ diff --git a/include/configs/NSCU.h b/include/configs/NSCU.h index 6abd3f1..5dd72ff 100644 --- a/include/configs/NSCU.h +++ b/include/configs/NSCU.h @@ -38,6 +38,8 @@ #define CONFIG_NSCU 1 #define CONFIG_8xx_CONS_SCC1 1 /* Console is on SMC1 */ +#define CONFIG_SYS_SMC_RXBUFLEN 128 +#define CONFIG_SYS_MAXIDLE 10 #define CONFIG_66MHz 1 /* running at 66 MHz, 1:1 clock */ diff --git a/include/configs/SM850.h b/include/configs/SM850.h index 4c469e3..7266f9a 100644 --- a/include/configs/SM850.h +++ b/include/configs/SM850.h @@ -38,15 +38,11 @@ #define CONFIG_MPC850 1 /* This is a MPC850 CPU */ #define CONFIG_SM850 1 /*...on a MPC850 Service Module */ -#undef CONFIG_8xx_CONS_SMC1 /* SMC1 not usable because Ethernet on SCC3 */ #define CONFIG_8xx_CONS_SMC2 1 /* Console is on SMC2 */ -#undef CONFIG_8xx_CONS_NONE +#define CONFIG_SYS_SMC_RXBUFLEN 128 +#define CONFIG_SYS_MAXIDLE 10 #define CONFIG_BAUDRATE 115200 -#if 0 -#define CONFIG_BOOTDELAY -1 /* autoboot disabled */ -#else #define CONFIG_BOOTDELAY 5 /* autoboot after 5 seconds */ -#endif #define CONFIG_CLOCKS_IN_MHZ 1 /* clocks passsed to Linux in MHz */ diff --git a/include/configs/TK885D.h b/include/configs/TK885D.h index 14ff62c..1e6d9ce 100644 --- a/include/configs/TK885D.h +++ b/include/configs/TK885D.h @@ -48,7 +48,8 @@ /* 'cpuclk' variable with valid value) */ #define CONFIG_8xx_CONS_SMC1 1 /* Console is on SMC1 */ - +#define CONFIG_SYS_SMC_RXBUFLEN 128 +#define CONFIG_SYS_MAXIDLE 10 #define CONFIG_BAUDRATE 115200 /* console baudrate = 115kbps */ #define CONFIG_BOOTCOUNT_LIMIT diff --git a/include/configs/TQM823L.h b/include/configs/TQM823L.h index 1f816f3..966beae 100644 --- a/include/configs/TQM823L.h +++ b/include/configs/TQM823L.h @@ -43,8 +43,8 @@ #endif #define CONFIG_8xx_CONS_SMC1 1 /* Console is on SMC1 */ -#undef CONFIG_8xx_CONS_SMC2 -#undef CONFIG_8xx_CONS_NONE +#define CONFIG_SYS_SMC_RXBUFLEN 128 +#define CONFIG_SYS_MAXIDLE 10 #define CONFIG_BAUDRATE 115200 /* console baudrate = 115kbps */ #define CONFIG_BOOTCOUNT_LIMIT diff --git a/include/configs/TQM823M.h b/include/configs/TQM823M.h index 42dcbfc..cfa693d 100644 --- a/include/configs/TQM823M.h +++ b/include/configs/TQM823M.h @@ -41,8 +41,8 @@ #endif #define CONFIG_8xx_CONS_SMC1 1 /* Console is on SMC1 */ -#undef CONFIG_8xx_CONS_SMC2 -#undef CONFIG_8xx_CONS_NONE +#define CONFIG_SYS_SMC_RXBUFLEN 128 +#define CONFIG_SYS_MAXIDLE 10 #define CONFIG_BAUDRATE 115200 /* console baudrate = 115kbps */ #define CONFIG_BOOTCOUNT_LIMIT diff --git a/include/configs/TQM850L.h b/include/configs/TQM850L.h index 290e211..dc0498e 100644 --- a/include/configs/TQM850L.h +++ b/include/configs/TQM850L.h @@ -37,8 +37,8 @@ #define CONFIG_TQM850L 1 /* ...on a TQM8xxL module */ #define CONFIG_8xx_CONS_SMC1 1 /* Console is on SMC1 */ -#undef CONFIG_8xx_CONS_SMC2 -#undef CONFIG_8xx_CONS_NONE +#define CONFIG_SYS_SMC_RXBUFLEN 128 +#define CONFIG_SYS_MAXIDLE 10 #define CONFIG_BAUDRATE 115200 /* console baudrate = 115kbps */ #define CONFIG_BOOTCOUNT_LIMIT diff --git a/include/configs/TQM850M.h b/include/configs/TQM850M.h index 2170df5..cdabc53 100644 --- a/include/configs/TQM850M.h +++ b/include/configs/TQM850M.h @@ -37,8 +37,8 @@ #define CONFIG_TQM850M 1 /* ...on a TQM8xxM module */ #define CONFIG_8xx_CONS_SMC1 1 /* Console is on SMC1 */ -#undef CONFIG_8xx_CONS_SMC2 -#undef CONFIG_8xx_CONS_NONE +#define CONFIG_SYS_SMC_RXBUFLEN 128 +#define CONFIG_SYS_MAXIDLE 10 #define CONFIG_BAUDRATE 115200 /* console baudrate = 115kbps */ #define CONFIG_BOOTCOUNT_LIMIT diff --git a/include/configs/TQM855L.h b/include/configs/TQM855L.h index 3d7dc42..1255928 100644 --- a/include/configs/TQM855L.h +++ b/include/configs/TQM855L.h @@ -37,9 +37,8 @@ #define CONFIG_TQM855L 1 /* ...on a TQM8xxL module */ #define CONFIG_8xx_CONS_SMC1 1 /* Console is on SMC1 */ -#undef CONFIG_8xx_CONS_SMC2 -#undef CONFIG_8xx_CONS_NONE - +#define CONFIG_SYS_SMC_RXBUFLEN 128 +#define CONFIG_SYS_MAXIDLE 10 #define CONFIG_BAUDRATE 115200 /* console baudrate = 115kbps */ #define CONFIG_BOOTCOUNT_LIMIT diff --git a/include/configs/TQM855M.h b/include/configs/TQM855M.h index 35cfa08..584d40b 100644 --- a/include/configs/TQM855M.h +++ b/include/configs/TQM855M.h @@ -37,9 +37,8 @@ #define CONFIG_TQM855M 1 /* ...on a TQM8xxM module */ #define CONFIG_8xx_CONS_SMC1 1 /* Console is on SMC1 */ -#undef CONFIG_8xx_CONS_SMC2 -#undef CONFIG_8xx_CONS_NONE - +#define CONFIG_SYS_SMC_RXBUFLEN 128 +#define CONFIG_SYS_MAXIDLE 10 #define CONFIG_BAUDRATE 115200 /* console baudrate = 115kbps */ #define CONFIG_BOOTCOUNT_LIMIT diff --git a/include/configs/TQM860L.h b/include/configs/TQM860L.h index 4ac485d..a772a27 100644 --- a/include/configs/TQM860L.h +++ b/include/configs/TQM860L.h @@ -37,9 +37,8 @@ #define CONFIG_TQM860L 1 /* ...on a TQM8xxL module */ #define CONFIG_8xx_CONS_SMC1 1 /* Console is on SMC1 */ -#undef CONFIG_8xx_CONS_SMC2 -#undef CONFIG_8xx_CONS_NONE - +#define CONFIG_SYS_SMC_RXBUFLEN 128 +#define CONFIG_SYS_MAXIDLE 10 #define CONFIG_BAUDRATE 115200 /* console baudrate = 115kbps */ #define CONFIG_BOOTCOUNT_LIMIT diff --git a/include/configs/TQM860M.h b/include/configs/TQM860M.h index 39da0bb..7c34786 100644 --- a/include/configs/TQM860M.h +++ b/include/configs/TQM860M.h @@ -37,9 +37,8 @@ #define CONFIG_TQM860M 1 /* ...on a TQM8xxM module */ #define CONFIG_8xx_CONS_SMC1 1 /* Console is on SMC1 */ -#undef CONFIG_8xx_CONS_SMC2 -#undef CONFIG_8xx_CONS_NONE - +#define CONFIG_SYS_SMC_RXBUFLEN 128 +#define CONFIG_SYS_MAXIDLE 10 #define CONFIG_BAUDRATE 115200 /* console baudrate = 115kbps */ #define CONFIG_BOOTCOUNT_LIMIT diff --git a/include/configs/TQM862L.h b/include/configs/TQM862L.h index 1f79b17..75d2dac 100644 --- a/include/configs/TQM862L.h +++ b/include/configs/TQM862L.h @@ -40,9 +40,8 @@ #define CONFIG_TQM862L 1 /* ...on a TQM8xxL module */ #define CONFIG_8xx_CONS_SMC1 1 /* Console is on SMC1 */ -#undef CONFIG_8xx_CONS_SMC2 -#undef CONFIG_8xx_CONS_NONE - +#define CONFIG_SYS_SMC_RXBUFLEN 128 +#define CONFIG_SYS_MAXIDLE 10 #define CONFIG_BAUDRATE 115200 /* console baudrate = 115kbps */ #define CONFIG_BOOTCOUNT_LIMIT diff --git a/include/configs/TQM862M.h b/include/configs/TQM862M.h index 86d5b01..0c7aacd 100644 --- a/include/configs/TQM862M.h +++ b/include/configs/TQM862M.h @@ -40,9 +40,8 @@ #define CONFIG_TQM862M 1 /* ...on a TQM8xxM module */ #define CONFIG_8xx_CONS_SMC1 1 /* Console is on SMC1 */ -#undef CONFIG_8xx_CONS_SMC2 -#undef CONFIG_8xx_CONS_NONE - +#define CONFIG_SYS_SMC_RXBUFLEN 128 +#define CONFIG_SYS_MAXIDLE 10 #define CONFIG_BAUDRATE 115200 /* console baudrate = 115kbps */ #define CONFIG_BOOTCOUNT_LIMIT diff --git a/include/configs/TQM866M.h b/include/configs/TQM866M.h index 04f538c..071afd4 100644 --- a/include/configs/TQM866M.h +++ b/include/configs/TQM866M.h @@ -51,7 +51,8 @@ #endif #define CONFIG_8xx_CONS_SMC1 1 /* Console is on SMC1 */ - +#define CONFIG_SYS_SMC_RXBUFLEN 128 +#define CONFIG_SYS_MAXIDLE 10 #define CONFIG_BAUDRATE 115200 /* console baudrate = 115kbps */ #define CONFIG_BOOTCOUNT_LIMIT diff --git a/include/configs/TQM885D.h b/include/configs/TQM885D.h index 4c80bad..d435819 100644 --- a/include/configs/TQM885D.h +++ b/include/configs/TQM885D.h @@ -47,7 +47,8 @@ /* 'cpuclk' variable with valid value) */ #define CONFIG_8xx_CONS_SMC1 1 /* Console is on SMC1 */ - +#define CONFIG_SYS_SMC_RXBUFLEN 128 +#define CONFIG_SYS_MAXIDLE 10 #define CONFIG_BAUDRATE 115200 /* console baudrate = 115kbps */ #define CONFIG_BOOTCOUNT_LIMIT diff --git a/include/configs/virtlab2.h b/include/configs/virtlab2.h index 9ebafcc..f7813a1 100644 --- a/include/configs/virtlab2.h +++ b/include/configs/virtlab2.h @@ -38,8 +38,8 @@ #define CONFIG_TQM8xxL 1 #define CONFIG_8xx_CONS_SMC1 1 /* Console is on SMC1 */ -#undef CONFIG_8xx_CONS_SMC2 -#undef CONFIG_8xx_CONS_NONE +#define CONFIG_SYS_SMC_RXBUFLEN 128 +#define CONFIG_SYS_MAXIDLE 10 #define CONFIG_BAUDRATE 115200 /* console baudrate = 115kbps */ #define CONFIG_BOOTCOUNT_LIMIT