summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/Makefile6
-rw-r--r--common/cmd_boot.c5
-rw-r--r--common/cmd_bootm.c31
-rw-r--r--common/cmd_console.c2
-rw-r--r--common/cmd_date.c2
-rw-r--r--common/cmd_echo.c2
-rw-r--r--common/cmd_exit.c2
-rw-r--r--common/cmd_ext2.c16
-rw-r--r--common/cmd_ext4.c23
-rw-r--r--common/cmd_ext_common.c197
-rw-r--r--common/cmd_fat.c88
-rw-r--r--common/cmd_fdt.c27
-rw-r--r--common/cmd_flash.c6
-rw-r--r--common/cmd_fs.c53
-rw-r--r--common/cmd_help.c2
-rw-r--r--common/cmd_i2c.c20
-rw-r--r--common/cmd_ide.c27
-rw-r--r--common/cmd_irq.c3
-rw-r--r--common/cmd_itest.c4
-rw-r--r--common/cmd_load.c303
-rw-r--r--common/cmd_mdio.c20
-rw-r--r--common/cmd_mem.c25
-rw-r--r--common/cmd_misc.c6
-rw-r--r--common/cmd_mmc.c6
-rw-r--r--common/cmd_mp.c22
-rw-r--r--common/cmd_mtdparts.c26
-rw-r--r--common/cmd_nand.c19
-rw-r--r--common/cmd_net.c76
-rw-r--r--common/cmd_nvedit.c25
-rw-r--r--common/cmd_pci.c17
-rw-r--r--common/cmd_reginfo.c3
-rw-r--r--common/cmd_sata.c4
-rw-r--r--common/cmd_scsi.c255
-rw-r--r--common/cmd_setexpr.c2
-rw-r--r--common/cmd_source.c11
-rw-r--r--common/cmd_test.c6
-rw-r--r--common/cmd_usb.c30
-rw-r--r--common/cmd_version.c2
-rw-r--r--common/cmd_ximg.c13
-rw-r--r--common/cmd_zfs.c4
-rw-r--r--common/command.c9
-rw-r--r--common/dlmalloc.c36
-rw-r--r--common/hush.c31
-rw-r--r--common/image.c8
-rw-r--r--common/main.c10
-rw-r--r--common/update.c1
-rw-r--r--common/usb_storage.c20
-rw-r--r--common/xyzModem.c6
48 files changed, 758 insertions, 754 deletions
diff --git a/common/Makefile b/common/Makefile
index eac63605ce..9e43322211 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -90,11 +90,6 @@ COBJS-$(CONFIG_CMD_ELF) += cmd_elf.o
COBJS-$(CONFIG_SYS_HUSH_PARSER) += cmd_exit.o
COBJS-$(CONFIG_CMD_EXT4) += cmd_ext4.o
COBJS-$(CONFIG_CMD_EXT2) += cmd_ext2.o
-ifdef CONFIG_CMD_EXT4
-COBJS-y += cmd_ext_common.o
-else
-COBJS-$(CONFIG_CMD_EXT2) += cmd_ext_common.o
-endif
COBJS-$(CONFIG_CMD_FAT) += cmd_fat.o
COBJS-$(CONFIG_CMD_FDC)$(CONFIG_CMD_FDOS) += cmd_fdc.o
COBJS-$(CONFIG_OF_LIBFDT) += cmd_fdt.o fdt_support.o
@@ -104,6 +99,7 @@ COBJS-$(CONFIG_CMD_FLASH) += cmd_flash.o
ifdef CONFIG_FPGA
COBJS-$(CONFIG_CMD_FPGA) += cmd_fpga.o
endif
+COBJS-$(CONFIG_CMD_FS_GENERIC) += cmd_fs.o
COBJS-$(CONFIG_CMD_GPIO) += cmd_gpio.o
COBJS-$(CONFIG_CMD_I2C) += cmd_i2c.o
COBJS-$(CONFIG_CMD_IDE) += cmd_ide.o
diff --git a/common/cmd_boot.c b/common/cmd_boot.c
index a799b338a4..d3836fdfd8 100644
--- a/common/cmd_boot.c
+++ b/common/cmd_boot.c
@@ -32,12 +32,13 @@
/* Allow ports to override the default behavior */
__attribute__((weak))
-unsigned long do_go_exec (ulong (*entry)(int, char * const []), int argc, char * const argv[])
+unsigned long do_go_exec(ulong (*entry)(int, char * const []), int argc,
+ char * const argv[])
{
return entry (argc, argv);
}
-int do_go (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_go(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
ulong addr, rc;
int rcode = 0;
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index 83fa5d7bd8..d256ddfaa6 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -161,7 +161,7 @@ static boot_os_fn *boot_os[] = {
bootm_headers_t images; /* pointers to os/initrd/fdt images */
/* Allow for arch specific config before we boot */
-void __arch_preboot_os(void)
+static void __arch_preboot_os(void)
{
/* please define platform specific arch_preboot_os() */
}
@@ -474,7 +474,7 @@ static cmd_tbl_t cmd_bootm_sub[] = {
U_BOOT_CMD_MKENT(go, 0, 1, (void *)BOOTM_STATE_OS_GO, "", ""),
};
-int do_bootm_subcommand(cmd_tbl_t *cmdtp, int flag, int argc,
+static int do_bootm_subcommand(cmd_tbl_t *cmdtp, int flag, int argc,
char * const argv[])
{
int ret = 0;
@@ -1013,9 +1013,8 @@ static void *boot_get_kernel(cmd_tbl_t *cmdtp, int flag, int argc,
return (void *)img_addr;
}
-U_BOOT_CMD(
- bootm, CONFIG_SYS_MAXARGS, 1, do_bootm,
- "boot application image from memory",
+#ifdef CONFIG_SYS_LONGHELP
+static char bootm_help_text[] =
"[addr [arg ...]]\n - boot application image stored in memory\n"
"\tpassing arguments 'arg ...'; when booting a Linux kernel,\n"
"\t'arg' can be the address of an initrd image\n"
@@ -1048,7 +1047,12 @@ U_BOOT_CMD(
"\tcmdline - OS specific command line processing/setup\n"
"\tbdt - OS specific bd_t processing\n"
"\tprep - OS specific prep before relocation or go\n"
- "\tgo - start OS"
+ "\tgo - start OS";
+#endif
+
+U_BOOT_CMD(
+ bootm, CONFIG_SYS_MAXARGS, 1, do_bootm,
+ "boot application image from memory", bootm_help_text
);
/*******************************************************************/
@@ -1084,7 +1088,7 @@ U_BOOT_CMD(
/* iminfo - print header info for a requested image */
/*******************************************************************/
#if defined(CONFIG_CMD_IMI)
-int do_iminfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_iminfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
int arg;
ulong addr;
@@ -1171,7 +1175,7 @@ U_BOOT_CMD(
/* imls - list all images found in flash */
/*******************************************************************/
#if defined(CONFIG_CMD_IMLS)
-int do_imls(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_imls(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
flash_info_t *info;
int i, j;
@@ -1643,9 +1647,8 @@ static int do_bootz(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
return 1;
}
-U_BOOT_CMD(
- bootz, CONFIG_SYS_MAXARGS, 1, do_bootz,
- "boot Linux zImage image from memory",
+#ifdef CONFIG_SYS_LONGHELP
+static char bootz_help_text[] =
"[addr [initrd[:size]] [fdt]]\n"
" - boot Linux zImage stored in memory\n"
"\tThe argument 'initrd' is optional and specifies the address\n"
@@ -1658,5 +1661,11 @@ U_BOOT_CMD(
"\tuse a '-' for the second argument. If you do not pass a third\n"
"\ta bd_info struct will be passed instead\n"
#endif
+ "";
+#endif
+
+U_BOOT_CMD(
+ bootz, CONFIG_SYS_MAXARGS, 1, do_bootz,
+ "boot Linux zImage image from memory", bootz_help_text
);
#endif /* CONFIG_CMD_BOOTZ */
diff --git a/common/cmd_console.c b/common/cmd_console.c
index d8cad6b917..e8d9f11bde 100644
--- a/common/cmd_console.c
+++ b/common/cmd_console.c
@@ -29,7 +29,7 @@
#include <stdio_dev.h>
extern void _do_coninfo (void);
-int do_coninfo (cmd_tbl_t * cmd, int flag, int argc, char * const argv[])
+static int do_coninfo(cmd_tbl_t *cmd, int flag, int argc, char * const argv[])
{
int l;
struct list_head *list = stdio_get_list();
diff --git a/common/cmd_date.c b/common/cmd_date.c
index 335bc05f2a..0ac032cf30 100644
--- a/common/cmd_date.c
+++ b/common/cmd_date.c
@@ -43,7 +43,7 @@ static const char * const weekdays[] = {
int mk_date (const char *, struct rtc_time *);
-int do_date (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_date(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
struct rtc_time tm;
int rcode = 0;
diff --git a/common/cmd_echo.c b/common/cmd_echo.c
index 1e499fb0db..52123fee2a 100644
--- a/common/cmd_echo.c
+++ b/common/cmd_echo.c
@@ -24,7 +24,7 @@
#include <common.h>
#include <command.h>
-int do_echo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_echo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
int i;
int putnl = 1;
diff --git a/common/cmd_exit.c b/common/cmd_exit.c
index f3fc8f5e79..0f2ee4046f 100644
--- a/common/cmd_exit.c
+++ b/common/cmd_exit.c
@@ -24,7 +24,7 @@
#include <common.h>
#include <command.h>
-int do_exit(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_exit(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
int r;
diff --git a/common/cmd_ext2.c b/common/cmd_ext2.c
index c27d9c7ede..f25e22b0a8 100644
--- a/common/cmd_ext2.c
+++ b/common/cmd_ext2.c
@@ -37,15 +37,11 @@
/*
* Ext2fs support
*/
-#include <common.h>
-#include <ext_common.h>
+#include <fs.h>
int do_ext2ls (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
- if (do_ext_ls(cmdtp, flag, argc, argv))
- return -1;
-
- return 0;
+ return do_ls(cmdtp, flag, argc, argv, FS_TYPE_EXT);
}
/******************************************************************************
@@ -53,10 +49,7 @@ int do_ext2ls (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
*/
int do_ext2load (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
- if (do_ext_load(cmdtp, flag, argc, argv))
- return -1;
-
- return 0;
+ return do_load(cmdtp, flag, argc, argv, FS_TYPE_EXT, 16);
}
U_BOOT_CMD(
@@ -71,5 +64,6 @@ U_BOOT_CMD(
"load binary file from a Ext2 filesystem",
"<interface> <dev[:part]> [addr] [filename] [bytes]\n"
" - load binary file 'filename' from 'dev' on 'interface'\n"
- " to address 'addr' from ext2 filesystem"
+ " to address 'addr' from ext2 filesystem.\n"
+ " All numeric parameters are assumed to be hex."
);
diff --git a/common/cmd_ext4.c b/common/cmd_ext4.c
index ca4656184c..dcf76a50cd 100644
--- a/common/cmd_ext4.c
+++ b/common/cmd_ext4.c
@@ -47,10 +47,10 @@
#include <image.h>
#include <linux/ctype.h>
#include <asm/byteorder.h>
-#include <ext_common.h>
#include <ext4fs.h>
#include <linux/stat.h>
#include <malloc.h>
+#include <fs.h>
#if defined(CONFIG_CMD_USB) && defined(CONFIG_USB_STORAGE)
#include <usb.h>
@@ -59,18 +59,12 @@
int do_ext4_load(cmd_tbl_t *cmdtp, int flag, int argc,
char *const argv[])
{
- if (do_ext_load(cmdtp, flag, argc, argv))
- return -1;
-
- return 0;
+ return do_load(cmdtp, flag, argc, argv, FS_TYPE_EXT, 16);
}
int do_ext4_ls(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
{
- if (do_ext_ls(cmdtp, flag, argc, argv))
- return -1;
-
- return 0;
+ return do_ls(cmdtp, flag, argc, argv, FS_TYPE_EXT);
}
#if defined(CONFIG_CMD_EXT4_WRITE)
@@ -107,7 +101,7 @@ int do_ext4_write(cmd_tbl_t *cmdtp, int flag, int argc,
/* mount the filesystem */
if (!ext4fs_mount(info.size)) {
- printf("Bad ext4 partition %s %d:%lu\n", argv[1], dev, part);
+ printf("Bad ext4 partition %s %d:%d\n", argv[1], dev, part);
goto fail;
}
@@ -129,17 +123,18 @@ fail:
U_BOOT_CMD(ext4write, 6, 1, do_ext4_write,
"create a file in the root directory",
"<interface> <dev[:part]> [Absolute filename path] [Address] [sizebytes]\n"
- " - create a file in / directory");
+ " - create a file in / directory");
#endif
U_BOOT_CMD(ext4ls, 4, 1, do_ext4_ls,
"list files in a directory (default /)",
"<interface> <dev[:part]> [directory]\n"
- " - list files from 'dev' on 'interface' in a 'directory'");
+ " - list files from 'dev' on 'interface' in a 'directory'");
U_BOOT_CMD(ext4load, 6, 0, do_ext4_load,
"load binary file from a Ext4 filesystem",
"<interface> <dev[:part]> [addr] [filename] [bytes]\n"
- " - load binary file 'filename' from 'dev' on 'interface'\n"
- " to address 'addr' from ext4 filesystem");
+ " - load binary file 'filename' from 'dev' on 'interface'\n"
+ " to address 'addr' from ext4 filesystem.\n"
+ " All numeric parameters are assumed to be hex.");
diff --git a/common/cmd_ext_common.c b/common/cmd_ext_common.c
deleted file mode 100644
index 1952f4d1e1..0000000000
--- a/common/cmd_ext_common.c
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * (C) Copyright 2011 - 2012 Samsung Electronics
- * EXT2/4 filesystem implementation in Uboot by
- * Uma Shankar <uma.shankar@samsung.com>
- * Manjunatha C Achar <a.manjunatha@samsung.com>
- *
- * Ext4fs support
- * made from existing cmd_ext2.c file of Uboot
- *
- * (C) Copyright 2004
- * esd gmbh <www.esd-electronics.com>
- * Reinhard Arlt <reinhard.arlt@esd-electronics.com>
- *
- * made from cmd_reiserfs by
- *
- * (C) Copyright 2003 - 2004
- * Sysgo Real-Time Solutions, AG <www.elinos.com>
- * Pavel Bartusek <pba@sysgo.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- */
-
-/*
- * Changelog:
- * 0.1 - Newly created file for ext4fs support. Taken from cmd_ext2.c
- * file in uboot. Added ext4fs ls load and write support.
- */
-
-#include <common.h>
-#include <part.h>
-#include <config.h>
-#include <command.h>
-#include <image.h>
-#include <linux/ctype.h>
-#include <asm/byteorder.h>
-#include <ext_common.h>
-#include <ext4fs.h>
-#include <linux/stat.h>
-#include <malloc.h>
-
-#if defined(CONFIG_CMD_USB) && defined(CONFIG_USB_STORAGE)
-#include <usb.h>
-#endif
-
-#if !defined(CONFIG_DOS_PARTITION) && !defined(CONFIG_EFI_PARTITION)
-#error DOS or EFI partition support must be selected
-#endif
-
-#define DOS_PART_MAGIC_OFFSET 0x1fe
-#define DOS_FS_TYPE_OFFSET 0x36
-#define DOS_FS32_TYPE_OFFSET 0x52
-
-int do_ext_load(cmd_tbl_t *cmdtp, int flag, int argc,
- char *const argv[])
-{
- char *filename = NULL;
- int dev, part;
- ulong addr = 0;
- int filelen;
- disk_partition_t info;
- block_dev_desc_t *dev_desc;
- char buf[12];
- unsigned long count;
- const char *addr_str;
-
- count = 0;
- addr = simple_strtoul(argv[3], NULL, 16);
- filename = getenv("bootfile");
- switch (argc) {
- case 3:
- addr_str = getenv("loadaddr");
- if (addr_str != NULL)
- addr = simple_strtoul(addr_str, NULL, 16);
- else
- addr = CONFIG_SYS_LOAD_ADDR;
-
- break;
- case 4:
- break;
- case 5:
- filename = argv[4];
- break;
- case 6:
- filename = argv[4];
- count = simple_strtoul(argv[5], NULL, 16);
- break;
-
- default:
- return cmd_usage(cmdtp);
- }
-
- if (!filename) {
- puts("** No boot file defined **\n");
- return 1;
- }
-
- part = get_device_and_partition(argv[1], argv[2], &dev_desc, &info, 1);
- if (part < 0)
- return 1;
-
- dev = dev_desc->dev;
- printf("Loading file \"%s\" from %s device %d%c%c\n",
- filename, argv[1], dev,
- part ? ':' : ' ', part ? part + '0' : ' ');
-
- ext4fs_set_blk_dev(dev_desc, &info);
-
- if (!ext4fs_mount(info.size)) {
- printf("** Bad ext2 partition or disk - %s %d:%d **\n",
- argv[1], dev, part);
- ext4fs_close();
- goto fail;
- }
-
- filelen = ext4fs_open(filename);
- if (filelen < 0) {
- printf("** File not found %s\n", filename);
- ext4fs_close();
- goto fail;
- }
- if ((count < filelen) && (count != 0))
- filelen = count;
-
- if (ext4fs_read((char *)addr, filelen) != filelen) {
- printf("** Unable to read \"%s\" from %s %d:%d **\n",
- filename, argv[1], dev, part);
- ext4fs_close();
- goto fail;
- }
-
- ext4fs_close();
- /* Loading ok, update default load address */
- load_addr = addr;
-
- printf("%d bytes read\n", filelen);
- sprintf(buf, "%X", filelen);
- setenv("filesize", buf);
-
- return 0;
-fail:
- return 1;
-}
-
-int do_ext_ls(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
-{
- const char *filename = "/";
- int dev;
- int part;
- block_dev_desc_t *dev_desc;
- disk_partition_t info;
-
- if (argc < 2)
- return cmd_usage(cmdtp);
-
- part = get_device_and_partition(argv[1], argv[2], &dev_desc, &info, 1);
- if (part < 0)
- return 1;
-
- if (argc == 4)
- filename = argv[3];
-
- dev = dev_desc->dev;
- ext4fs_set_blk_dev(dev_desc, &info);
-
- if (!ext4fs_mount(info.size)) {
- printf("** Bad ext2 partition or disk - %s %d:%d **\n",
- argv[1], dev, part);
- ext4fs_close();
- goto fail;
- }
-
- if (ext4fs_ls(filename)) {
- printf("** Error extfs_ls() **\n");
- ext4fs_close();
- goto fail;
- };
-
- ext4fs_close();
- return 0;
-
-fail:
- return 1;
-}
diff --git a/common/cmd_fat.c b/common/cmd_fat.c
index 5a5698b056..86be044725 100644
--- a/common/cmd_fat.c
+++ b/common/cmd_fat.c
@@ -31,54 +31,11 @@
#include <ata.h>
#include <part.h>
#include <fat.h>
-
+#include <fs.h>
int do_fat_fsload (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
- long size;
- unsigned long offset;
- unsigned long count = 0;
- unsigned long pos = 0;
- char buf [12];
- block_dev_desc_t *dev_desc=NULL;
- disk_partition_t info;
- int part, dev;
-
- if (argc < 5) {
- printf("usage: fatload <interface> [<dev[:part]>] "
- "<addr> <filename> [bytes [pos]]\n");
- return 1;
- }
-
- part = get_device_and_partition(argv[1], argv[2], &dev_desc, &info, 1);
- if (part < 0)
- return 1;
-
- dev = dev_desc->dev;
- if (fat_register_device(dev_desc,part)!=0) {
- printf("\n** Unable to use %s %d:%d for fatload **\n",
- argv[1], dev, part);
- return 1;
- }
- offset = simple_strtoul(argv[3], NULL, 16);
- if (argc >= 6)
- count = simple_strtoul(argv[5], NULL, 16);
- if (argc >= 7)
- pos = simple_strtoul(argv[6], NULL, 16);
- size = file_fat_read_at(argv[4], pos, (unsigned char *)offset, count);
-
- if(size==-1) {
- printf("\n** Unable to read \"%s\" from %s %d:%d **\n",
- argv[4], argv[1], dev, part);
- return 1;
- }
-
- printf("\n%ld bytes read\n", size);
-
- sprintf(buf, "%lX", size);
- setenv("filesize", buf);
-
- return 0;
+ return do_load(cmdtp, flag, argc, argv, FS_TYPE_FAT, 16);
}
@@ -91,39 +48,13 @@ U_BOOT_CMD(
" 'pos' gives the file position to start loading from.\n"
" If 'pos' is omitted, 0 is used. 'pos' requires 'bytes'.\n"
" 'bytes' gives the size to load. If 'bytes' is 0 or omitted,\n"
- " the load stops on end of file."
+ " the load stops on end of file.\n"
+ " All numeric parameters are assumed to be hex."
);
-int do_fat_ls (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_fat_ls(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
- char *filename = "/";
- int ret, dev, part;
- block_dev_desc_t *dev_desc=NULL;
- disk_partition_t info;
-
- if (argc < 2) {
- printf("usage: fatls <interface> [<dev[:part]>] [directory]\n");
- return 0;
- }
-
- part = get_device_and_partition(argv[1], argv[2], &dev_desc, &info, 1);
- if (part < 0)
- return 1;
-
- dev = dev_desc->dev;
- if (fat_register_device(dev_desc,part)!=0) {
- printf("\n** Unable to use %s %d:%d for fatls **\n",
- argv[1], dev, part);
- return 1;
- }
- if (argc == 4)
- ret = file_fat_ls(argv[3]);
- else
- ret = file_fat_ls(filename);
-
- if(ret!=0)
- printf("No Fat FS detected\n");
- return ret;
+ return do_ls(cmdtp, flag, argc, argv, FS_TYPE_FAT);
}
U_BOOT_CMD(
@@ -133,7 +64,8 @@ U_BOOT_CMD(
" - list files from 'dev' on 'interface' in a 'directory'"
);
-int do_fat_fsinfo (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_fat_fsinfo(cmd_tbl_t *cmdtp, int flag, int argc,
+ char * const argv[])
{
int dev, part;
block_dev_desc_t *dev_desc;
@@ -149,7 +81,7 @@ int do_fat_fsinfo (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
return 1;
dev = dev_desc->dev;
- if (fat_register_device(dev_desc,part)!=0) {
+ if (fat_set_blk_dev(dev_desc, &info) != 0) {
printf("\n** Unable to use %s %d:%d for fatinfo **\n",
argv[1], dev, part);
return 1;
@@ -185,7 +117,7 @@ static int do_fat_fswrite(cmd_tbl_t *cmdtp, int flag,
dev = dev_desc->dev;
- if (fat_register_device(dev_desc, part) != 0) {
+ if (fat_set_blk_dev(dev_desc, &info) != 0) {
printf("\n** Unable to use %s %d:%d for fatwrite **\n",
argv[1], dev, part);
return 1;
diff --git a/common/cmd_fdt.c b/common/cmd_fdt.c
index a5e2cfcbfa..9e2de34737 100644
--- a/common/cmd_fdt.c
+++ b/common/cmd_fdt.c
@@ -95,7 +95,7 @@ static int fdt_value_setenv(const void *nodep, int len, const char *var)
/*
* Flattened Device Tree command, see the help for parameter definitions.
*/
-int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
+static int do_fdt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
if (argc < 2)
return CMD_RET_USAGE;
@@ -375,7 +375,7 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
/* Get address */
char buf[11];
- sprintf(buf, "0x%08X", (uint32_t)nodep);
+ sprintf(buf, "0x%p", nodep);
setenv(var, buf);
} else if (subcmd[0] == 's') {
/* Get size */
@@ -682,7 +682,7 @@ static int fdt_parse_prop(char * const *newval, int count, char *data, int *len)
cp = newp;
tmp = simple_strtoul(cp, &newp, 0);
- *(uint32_t *)data = __cpu_to_be32(tmp);
+ *(__be32 *)data = __cpu_to_be32(tmp);
data += 4;
*len += 4;
@@ -816,9 +816,9 @@ static void print_data(const void *data, int len)
if ((len %4) == 0) {
if (len > CONFIG_CMD_FDT_MAX_DUMP)
- printf("* 0x%08x [0x%08x]", (unsigned int)data, len);
+ printf("* 0x%p [0x%08x]", data, len);
else {
- const u32 *p;
+ const __be32 *p;
printf("<");
for (j = 0, p = data; j < len/4; j++)
@@ -828,7 +828,7 @@ static void print_data(const void *data, int len)
}
} else { /* anything else... hexdump */
if (len > CONFIG_CMD_FDT_MAX_DUMP)
- printf("* 0x%08x [0x%08x]", (unsigned int)data, len);
+ printf("* 0x%p [0x%08x]", data, len);
else {
const u8 *s;
@@ -964,11 +964,9 @@ static int fdt_print(const char *pathp, char *prop, int depth)
}
/********************************************************************/
-
-U_BOOT_CMD(
- fdt, 255, 0, do_fdt,
- "flattened device tree utility commands",
- "addr <addr> [<length>] - Set the fdt location to <addr>\n"
+#ifdef CONFIG_SYS_LONGHELP
+static char fdt_help_text[] =
+ "addr <addr> [<length>] - Set the fdt location to <addr>\n"
#ifdef CONFIG_OF_BOARD_SETUP
"fdt boardsetup - Do board-specific set up\n"
#endif
@@ -992,5 +990,10 @@ U_BOOT_CMD(
"fdt chosen [<start> <end>] - Add/update the /chosen branch in the tree\n"
" <start>/<end> - initrd start/end addr\n"
"NOTE: Dereference aliases by omiting the leading '/', "
- "e.g. fdt print ethernet0."
+ "e.g. fdt print ethernet0.";
+#endif
+
+U_BOOT_CMD(
+ fdt, 255, 0, do_fdt,
+ "flattened device tree utility commands", fdt_help_text
);
diff --git a/common/cmd_flash.c b/common/cmd_flash.c
index e55d366c65..687eb68db1 100644
--- a/common/cmd_flash.c
+++ b/common/cmd_flash.c
@@ -289,7 +289,7 @@ flash_fill_sect_ranges (ulong addr_first, ulong addr_last,
}
#endif /* CONFIG_SYS_NO_FLASH */
-int do_flinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_flinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
#ifndef CONFIG_SYS_NO_FLASH
ulong bank;
@@ -321,7 +321,7 @@ int do_flinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
return 0;
}
-int do_flerase (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_flerase(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
#ifndef CONFIG_SYS_NO_FLASH
flash_info_t *info = NULL;
@@ -454,7 +454,7 @@ int flash_sect_erase (ulong addr_first, ulong addr_last)
}
#endif /* CONFIG_SYS_NO_FLASH */
-int do_protect (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_protect(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
int rcode = 0;
#ifndef CONFIG_SYS_NO_FLASH
diff --git a/common/cmd_fs.c b/common/cmd_fs.c
new file mode 100644
index 0000000000..a681d03d1b
--- /dev/null
+++ b/common/cmd_fs.c
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2012, NVIDIA CORPORATION. All rights reserved.
+ *
+ * Inspired by cmd_ext_common.c, cmd_fat.c.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <common.h>
+#include <command.h>
+#include <fs.h>
+
+int do_load_wrapper(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+ return do_load(cmdtp, flag, argc, argv, FS_TYPE_ANY, 0);
+}
+
+U_BOOT_CMD(
+ load, 7, 0, do_load_wrapper,
+ "load binary file from a filesystem",
+ "<interface> [<dev[:part]> [<addr> [<filename> [bytes [pos]]]]]\n"
+ " - Load binary file 'filename' from partition 'part' on device\n"
+ " type 'interface' instance 'dev' to address 'addr' in memory.\n"
+ " 'bytes' gives the size to load in bytes.\n"
+ " If 'bytes' is 0 or omitted, the file is read until the end.\n"
+ " 'pos' gives the file byte position to start reading from.\n"
+ " If 'pos' is 0 or omitted, the file is read from the start.\n"
+ " All numeric parameters are assumed to be decimal,\n"
+ " unless specified otherwise using a leading \"0x\"."
+);
+
+int do_ls_wrapper(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+ return do_ls(cmdtp, flag, argc, argv, FS_TYPE_ANY);
+}
+
+U_BOOT_CMD(
+ ls, 4, 1, do_ls_wrapper,
+ "list files in a directory (default /)",
+ "<interface> [<dev[:part]> [directory]]\n"
+ " - List files in directory 'directory' of partition 'part' on\n"
+ " device type 'interface' instance 'dev'."
+);
diff --git a/common/cmd_help.c b/common/cmd_help.c
index 3178a1aa42..f832a96971 100644
--- a/common/cmd_help.c
+++ b/common/cmd_help.c
@@ -24,7 +24,7 @@
#include <common.h>
#include <command.h>
-int do_help(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
+static int do_help(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
cmd_tbl_t *start = ll_entry_start(cmd_tbl_t, cmd);
const int len = ll_entry_count(cmd_tbl_t, cmd);
diff --git a/common/cmd_i2c.c b/common/cmd_i2c.c
index 82e63e1322..4438db594c 100644
--- a/common/cmd_i2c.c
+++ b/common/cmd_i2c.c
@@ -133,7 +133,7 @@ DECLARE_GLOBAL_DATA_PTR;
#define DISP_LINE_LEN 16
/* implement possible board specific board init */
-void __def_i2c_init_board(void)
+static void __def_i2c_init_board(void)
{
return;
}
@@ -141,14 +141,14 @@ void i2c_init_board(void)
__attribute__((weak, alias("__def_i2c_init_board")));
/* TODO: Implement architecture-specific get/set functions */
-unsigned int __def_i2c_get_bus_speed(void)
+static unsigned int __def_i2c_get_bus_speed(void)
{
return CONFIG_SYS_I2C_SPEED;
}
unsigned int i2c_get_bus_speed(void)
__attribute__((weak, alias("__def_i2c_get_bus_speed")));
-int __def_i2c_set_bus_speed(unsigned int speed)
+static int __def_i2c_set_bus_speed(unsigned int speed)
{
if (speed != CONFIG_SYS_I2C_SPEED)
return -1;
@@ -1376,10 +1376,8 @@ static int do_i2c(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
}
/***************************************************/
-
-U_BOOT_CMD(
- i2c, 6, 1, do_i2c,
- "I2C sub-system",
+#ifdef CONFIG_SYS_LONGHELP
+static char i2c_help_text[] =
#if defined(CONFIG_I2C_MUX)
"bus [muxtype:muxaddr:muxchannel] - add a new bus reached over muxes\ni2c "
#endif /* CONFIG_I2C_MUX */
@@ -1399,7 +1397,13 @@ U_BOOT_CMD(
#if defined(CONFIG_CMD_SDRAM)
"i2c sdram chip - print SDRAM configuration information\n"
#endif
- "i2c speed [speed] - show or set I2C bus speed"
+ "i2c speed [speed] - show or set I2C bus speed";
+#endif
+
+U_BOOT_CMD(
+ i2c, 6, 1, do_i2c,
+ "I2C sub-system",
+ i2c_help_text
);
#if defined(CONFIG_I2C_MUX)
diff --git a/common/cmd_ide.c b/common/cmd_ide.c
index d508e9f75b..0105bdbb7f 100644
--- a/common/cmd_ide.c
+++ b/common/cmd_ide.c
@@ -96,7 +96,8 @@ static void ident_cpy (unsigned char *dest, unsigned char *src, unsigned int len
#ifdef CONFIG_ATAPI
static void atapi_inquiry(block_dev_desc_t *dev_desc);
-ulong atapi_read (int device, lbaint_t blknr, ulong blkcnt, void *buffer);
+static ulong atapi_read(int device, ulong blknr, lbaint_t blkcnt,
+ void *buffer);
#endif
@@ -826,7 +827,7 @@ static void ide_ident(block_dev_desc_t *dev_desc)
/* ------------------------------------------------------------------------- */
-ulong ide_read(int device, lbaint_t blknr, ulong blkcnt, void *buffer)
+ulong ide_read(int device, ulong blknr, lbaint_t blkcnt, void *buffer)
{
ulong n = 0;
unsigned char c;
@@ -840,7 +841,7 @@ ulong ide_read(int device, lbaint_t blknr, ulong blkcnt, void *buffer)
lba48 = 1;
}
#endif
- debug("ide_read dev %d start %lX, blocks %lX buffer at %lX\n",
+ debug("ide_read dev %d start %lX, blocks " LBAF " buffer at %lX\n",
device, blknr, blkcnt, (ulong) buffer);
ide_led(DEVICE_LED(device), 1); /* LED on */
@@ -930,13 +931,8 @@ ulong ide_read(int device, lbaint_t blknr, ulong blkcnt, void *buffer)
if ((c & (ATA_STAT_DRQ | ATA_STAT_BUSY | ATA_STAT_ERR)) !=
ATA_STAT_DRQ) {
-#if defined(CONFIG_SYS_64BIT_LBA)
- printf("Error (no IRQ) dev %d blk %lld: status 0x%02x\n",
+ printf("Error (no IRQ) dev %d blk %ld: status %#02x\n",
device, blknr, c);
-#else
- printf("Error (no IRQ) dev %d blk %ld: status 0x%02x\n",
- device, (ulong) blknr, c);
-#endif
break;
}
@@ -955,7 +951,7 @@ IDE_READ_E:
/* ------------------------------------------------------------------------- */
-ulong ide_write(int device, lbaint_t blknr, ulong blkcnt, const void *buffer)
+ulong ide_write(int device, ulong blknr, lbaint_t blkcnt, const void *buffer)
{
ulong n = 0;
unsigned char c;
@@ -1023,13 +1019,8 @@ ulong ide_write(int device, lbaint_t blknr, ulong blkcnt, const void *buffer)
if ((c & (ATA_STAT_DRQ | ATA_STAT_BUSY | ATA_STAT_ERR)) !=
ATA_STAT_DRQ) {
-#if defined(CONFIG_SYS_64BIT_LBA)
- printf("Error (no IRQ) dev %d blk %lld: status 0x%02x\n",
+ printf("Error (no IRQ) dev %d blk %ld: status %#02x\n",
device, blknr, c);
-#else
- printf("Error (no IRQ) dev %d blk %ld: status 0x%02x\n",
- device, (ulong) blknr, c);
-#endif
goto WR_OUT;
}
@@ -1518,13 +1509,13 @@ static void atapi_inquiry(block_dev_desc_t *dev_desc)
#define ATAPI_READ_BLOCK_SIZE 2048 /* assuming CD part */
#define ATAPI_READ_MAX_BLOCK (ATAPI_READ_MAX_BYTES/ATAPI_READ_BLOCK_SIZE)
-ulong atapi_read(int device, lbaint_t blknr, ulong blkcnt, void *buffer)
+ulong atapi_read(int device, ulong blknr, lbaint_t blkcnt, void *buffer)
{
ulong n = 0;
unsigned char ccb[12]; /* Command descriptor block */
ulong cnt;
- debug("atapi_read dev %d start %lX, blocks %lX buffer at %lX\n",
+ debug("atapi_read dev %d start %lX, blocks " LBAF " buffer at %lX\n",
device, blknr, blkcnt, (ulong) buffer);
do {
diff --git a/common/cmd_irq.c b/common/cmd_irq.c
index 9f158ef6e3..1e82883bd4 100644
--- a/common/cmd_irq.c
+++ b/common/cmd_irq.c
@@ -24,7 +24,8 @@
#include <config.h>
#include <command.h>
-int do_interrupts(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_interrupts(cmd_tbl_t *cmdtp, int flag, int argc,
+ char * const argv[])
{
if (argc != 2)
diff --git a/common/cmd_itest.c b/common/cmd_itest.c
index d5df758a1f..2c8e5d05e1 100644
--- a/common/cmd_itest.c
+++ b/common/cmd_itest.c
@@ -130,7 +130,7 @@ static int arithcomp (char *s, char *t, int op, int w)
return (0);
}
-int binary_test (char *op, char *arg1, char *arg2, int w)
+static int binary_test(char *op, char *arg1, char *arg2, int w)
{
int len, i;
const op_tbl_t *optp;
@@ -155,7 +155,7 @@ int binary_test (char *op, char *arg1, char *arg2, int w)
}
/* command line interface to the shell test */
-int do_itest ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[] )
+static int do_itest(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
int value, w;
diff --git a/common/cmd_load.c b/common/cmd_load.c
index f4d66deae3..2c8dab1a0a 100644
--- a/common/cmd_load.c
+++ b/common/cmd_load.c
@@ -34,15 +34,15 @@
DECLARE_GLOBAL_DATA_PTR;
#if defined(CONFIG_CMD_LOADB)
-static ulong load_serial_ymodem (ulong offset);
+static ulong load_serial_ymodem(ulong offset);
#endif
#if defined(CONFIG_CMD_LOADS)
-static ulong load_serial (long offset);
-static int read_record (char *buf, ulong len);
+static ulong load_serial(long offset);
+static int read_record(char *buf, ulong len);
# if defined(CONFIG_CMD_SAVES)
-static int save_serial (ulong offset, ulong size);
-static int write_record (char *buf);
+static int save_serial(ulong offset, ulong size);
+static int write_record(char *buf);
#endif
static int do_echo = 1;
@@ -51,7 +51,8 @@ static int do_echo = 1;
/* -------------------------------------------------------------------- */
#if defined(CONFIG_CMD_LOADS)
-int do_load_serial (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_load_serial(cmd_tbl_t *cmdtp, int flag, int argc,
+ char * const argv[])
{
long offset = 0;
ulong addr;
@@ -82,11 +83,11 @@ int do_load_serial (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
load_baudrate = current_baudrate;
}
if (load_baudrate != current_baudrate) {
- printf ("## Switch baudrate to %d bps and press ENTER ...\n",
+ printf("## Switch baudrate to %d bps and press ENTER ...\n",
load_baudrate);
udelay(50000);
gd->baudrate = load_baudrate;
- serial_setbrg ();
+ serial_setbrg();
udelay(50000);
for (;;) {
if (getc() == '\r')
@@ -99,9 +100,9 @@ int do_load_serial (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
}
#endif /* CONFIG_SYS_LOADS_BAUD_CHANGE */
- printf ("## Ready for S-Record download ...\n");
+ printf("## Ready for S-Record download ...\n");
- addr = load_serial (offset);
+ addr = load_serial(offset);
/*
* Gather any trailing characters (for instance, the ^D which
@@ -116,21 +117,21 @@ int do_load_serial (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
}
if (addr == ~0) {
- printf ("## S-Record download aborted\n");
+ printf("## S-Record download aborted\n");
rcode = 1;
} else {
- printf ("## Start Addr = 0x%08lX\n", addr);
+ printf("## Start Addr = 0x%08lX\n", addr);
load_addr = addr;
}
#ifdef CONFIG_SYS_LOADS_BAUD_CHANGE
if (load_baudrate != current_baudrate) {
- printf ("## Switch baudrate to %d bps and press ESC ...\n",
+ printf("## Switch baudrate to %d bps and press ESC ...\n",
current_baudrate);
- udelay (50000);
+ udelay(50000);
gd->baudrate = current_baudrate;
- serial_setbrg ();
- udelay (50000);
+ serial_setbrg();
+ udelay(50000);
for (;;) {
if (getc() == 0x1B) /* ESC */
break;
@@ -140,8 +141,7 @@ int do_load_serial (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
return rcode;
}
-static ulong
-load_serial (long offset)
+static ulong load_serial(long offset)
{
char record[SREC_MAXRECLEN + 1]; /* buffer for one S-Record */
char binbuf[SREC_MAXBINLEN]; /* buffer for binary data */
@@ -156,7 +156,7 @@ load_serial (long offset)
int line_count = 0;
while (read_record(record, SREC_MAXRECLEN + 1) >= 0) {
- type = srec_decode (record, &binlen, &addr, binbuf);
+ type = srec_decode(record, &binlen, &addr, binbuf);
if (type < 0) {
return (~0); /* Invalid S-Record */
@@ -173,13 +173,13 @@ load_serial (long offset)
rc = flash_write((char *)binbuf,store_addr,binlen);
if (rc != 0) {
- flash_perror (rc);
+ flash_perror(rc);
return (~0);
}
} else
#endif
{
- memcpy ((char *)(store_addr), binbuf, binlen);
+ memcpy((char *)(store_addr), binbuf, binlen);
}
if ((store_addr) < start_addr)
start_addr = store_addr;
@@ -189,15 +189,15 @@ load_serial (long offset)
case SREC_END2:
case SREC_END3:
case SREC_END4:
- udelay (10000);
+ udelay(10000);
size = end_addr - start_addr + 1;
- printf ("\n"
+ printf("\n"
"## First Load Addr = 0x%08lX\n"
"## Last Load Addr = 0x%08lX\n"
"## Total Size = 0x%08lX = %ld Bytes\n",
start_addr, end_addr, size, size
);
- flush_cache (start_addr, size);
+ flush_cache(start_addr, size);
sprintf(buf, "%lX", size);
setenv("filesize", buf);
return (addr);
@@ -208,15 +208,14 @@ load_serial (long offset)
}
if (!do_echo) { /* print a '.' every 100 lines */
if ((++line_count % 100) == 0)
- putc ('.');
+ putc('.');
}
}
return (~0); /* Download aborted */
}
-static int
-read_record (char *buf, ulong len)
+static int read_record(char *buf, ulong len)
{
char *p;
char c;
@@ -226,7 +225,7 @@ read_record (char *buf, ulong len)
for (p=buf; p < buf+len; ++p) {
c = getc(); /* read character */
if (do_echo)
- putc (c); /* ... and echo it */
+ putc(c); /* ... and echo it */
switch (c) {
case '\r':
@@ -280,11 +279,11 @@ int do_save_serial (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
save_baudrate = current_baudrate;
}
if (save_baudrate != current_baudrate) {
- printf ("## Switch baudrate to %d bps and press ENTER ...\n",
+ printf("## Switch baudrate to %d bps and press ENTER ...\n",
save_baudrate);
udelay(50000);
gd->baudrate = save_baudrate;
- serial_setbrg ();
+ serial_setbrg();
udelay(50000);
for (;;) {
if (getc() == '\r')
@@ -297,24 +296,24 @@ int do_save_serial (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
}
#endif /* CONFIG_SYS_LOADS_BAUD_CHANGE */
- printf ("## Ready for S-Record upload, press ENTER to proceed ...\n");
+ printf("## Ready for S-Record upload, press ENTER to proceed ...\n");
for (;;) {
if (getc() == '\r')
break;
}
- if(save_serial (offset, size)) {
- printf ("## S-Record upload aborted\n");
+ if (save_serial(offset, size)) {
+ printf("## S-Record upload aborted\n");
} else {
- printf ("## S-Record upload complete\n");
+ printf("## S-Record upload complete\n");
}
#ifdef CONFIG_SYS_LOADS_BAUD_CHANGE
if (save_baudrate != current_baudrate) {
- printf ("## Switch baudrate to %d bps and press ESC ...\n",
+ printf("## Switch baudrate to %d bps and press ESC ...\n",
(int)current_baudrate);
- udelay (50000);
+ udelay(50000);
gd->baudrate = current_baudrate;
- serial_setbrg ();
- udelay (50000);
+ serial_setbrg();
+ udelay(50000);
for (;;) {
if (getc() == 0x1B) /* ESC */
break;
@@ -329,7 +328,7 @@ int do_save_serial (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
#define SREC3_END "S70500000000FA\n"
#define SREC_BYTES_PER_RECORD 16
-static int save_serial (ulong address, ulong count)
+static int save_serial(ulong address, ulong count)
{
int i, c, reclen, checksum, length;
char *hex = "0123456789ABCDEF";
@@ -384,8 +383,7 @@ static int save_serial (ulong address, ulong count)
return(0);
}
-static int
-write_record (char *buf)
+static int write_record(char *buf)
{
char c;
@@ -425,15 +423,16 @@ write_record (char *buf)
static void set_kerm_bin_mode(unsigned long *);
static int k_recv(void);
-static ulong load_serial_bin (ulong offset);
+static ulong load_serial_bin(ulong offset);
-char his_eol; /* character he needs at end of packet */
-int his_pad_count; /* number of pad chars he needs */
-char his_pad_char; /* pad chars he needs */
-char his_quote; /* quote chars he'll use */
+static char his_eol; /* character he needs at end of packet */
+static int his_pad_count; /* number of pad chars he needs */
+static char his_pad_char; /* pad chars he needs */
+static char his_quote; /* quote chars he'll use */
-int do_load_serial_bin (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_load_serial_bin(cmd_tbl_t *cmdtp, int flag, int argc,
+ char * const argv[])
{
ulong offset = 0;
ulong addr;
@@ -463,11 +462,11 @@ int do_load_serial_bin (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[
}
if (load_baudrate != current_baudrate) {
- printf ("## Switch baudrate to %d bps and press ENTER ...\n",
+ printf("## Switch baudrate to %d bps and press ENTER ...\n",
load_baudrate);
udelay(50000);
gd->baudrate = load_baudrate;
- serial_setbrg ();
+ serial_setbrg();
udelay(50000);
for (;;) {
if (getc() == '\r')
@@ -476,37 +475,37 @@ int do_load_serial_bin (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[
}
if (strcmp(argv[0],"loady")==0) {
- printf ("## Ready for binary (ymodem) download "
+ printf("## Ready for binary (ymodem) download "
"to 0x%08lX at %d bps...\n",
offset,
load_baudrate);
- addr = load_serial_ymodem (offset);
+ addr = load_serial_ymodem(offset);
} else {
- printf ("## Ready for binary (kermit) download "
+ printf("## Ready for binary (kermit) download "
"to 0x%08lX at %d bps...\n",
offset,
load_baudrate);
- addr = load_serial_bin (offset);
+ addr = load_serial_bin(offset);
if (addr == ~0) {
load_addr = 0;
- printf ("## Binary (kermit) download aborted\n");
+ printf("## Binary (kermit) download aborted\n");
rcode = 1;
} else {
- printf ("## Start Addr = 0x%08lX\n", addr);
+ printf("## Start Addr = 0x%08lX\n", addr);
load_addr = addr;
}
}
if (load_baudrate != current_baudrate) {
- printf ("## Switch baudrate to %d bps and press ESC ...\n",
+ printf("## Switch baudrate to %d bps and press ESC ...\n",
current_baudrate);
- udelay (50000);
+ udelay(50000);
gd->baudrate = current_baudrate;
- serial_setbrg ();
- udelay (50000);
+ serial_setbrg();
+ udelay(50000);
for (;;) {
if (getc() == 0x1B) /* ESC */
break;
@@ -517,13 +516,13 @@ int do_load_serial_bin (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[
}
-static ulong load_serial_bin (ulong offset)
+static ulong load_serial_bin(ulong offset)
{
int size, i;
char buf[32];
- set_kerm_bin_mode ((ulong *) offset);
- size = k_recv ();
+ set_kerm_bin_mode((ulong *) offset);
+ size = k_recv();
/*
* Gather any trailing characters (for instance, the ^D which
@@ -537,7 +536,7 @@ static ulong load_serial_bin (ulong offset)
udelay(1000);
}
- flush_cache (offset, size);
+ flush_cache(offset, size);
printf("## Total Size = 0x%08x = %d Bytes\n", size, size);
sprintf(buf, "%X", size);
@@ -546,16 +545,16 @@ static ulong load_serial_bin (ulong offset)
return offset;
}
-void send_pad (void)
+static void send_pad(void)
{
int count = his_pad_count;
while (count-- > 0)
- putc (his_pad_char);
+ putc(his_pad_char);
}
/* converts escaped kermit char to binary char */
-char ktrans (char in)
+static char ktrans(char in)
{
if ((in & 0x60) == 0x40) {
return (char) (in & ~0x40);
@@ -565,7 +564,7 @@ char ktrans (char in)
return in;
}
-int chk1 (char *buffer)
+static int chk1(char *buffer)
{
int total = 0;
@@ -575,67 +574,67 @@ int chk1 (char *buffer)
return (int) ((total + ((total >> 6) & 0x03)) & 0x3f);
}
-void s1_sendpacket (char *packet)
+static void s1_sendpacket(char *packet)
{
- send_pad ();
+ send_pad();
while (*packet) {
- putc (*packet++);
+ putc(*packet++);
}
}
static char a_b[24];
-void send_ack (int n)
+static void send_ack(int n)
{
a_b[0] = START_CHAR;
- a_b[1] = tochar (3);
- a_b[2] = tochar (n);
+ a_b[1] = tochar(3);
+ a_b[2] = tochar(n);
a_b[3] = ACK_TYPE;
a_b[4] = '\0';
- a_b[4] = tochar (chk1 (&a_b[1]));
+ a_b[4] = tochar(chk1(&a_b[1]));
a_b[5] = his_eol;
a_b[6] = '\0';
- s1_sendpacket (a_b);
+ s1_sendpacket(a_b);
}
-void send_nack (int n)
+static void send_nack(int n)
{
a_b[0] = START_CHAR;
- a_b[1] = tochar (3);
- a_b[2] = tochar (n);
+ a_b[1] = tochar(3);
+ a_b[2] = tochar(n);
a_b[3] = NACK_TYPE;
a_b[4] = '\0';
- a_b[4] = tochar (chk1 (&a_b[1]));
+ a_b[4] = tochar(chk1(&a_b[1]));
a_b[5] = his_eol;
a_b[6] = '\0';
- s1_sendpacket (a_b);
+ s1_sendpacket(a_b);
}
-void (*os_data_init) (void);
-void (*os_data_char) (char new_char);
+static void (*os_data_init)(void);
+static void (*os_data_char)(char new_char);
static int os_data_state, os_data_state_saved;
static char *os_data_addr, *os_data_addr_saved;
static char *bin_start_address;
-static void bin_data_init (void)
+static void bin_data_init(void)
{
os_data_state = 0;
os_data_addr = bin_start_address;
}
-static void os_data_save (void)
+static void os_data_save(void)
{
os_data_state_saved = os_data_state;
os_data_addr_saved = os_data_addr;
}
-static void os_data_restore (void)
+static void os_data_restore(void)
{
os_data_state = os_data_state_saved;
os_data_addr = os_data_addr_saved;
}
-static void bin_data_char (char new_char)
+static void bin_data_char(char new_char)
{
switch (os_data_state) {
case 0: /* data */
@@ -644,7 +643,7 @@ static void bin_data_char (char new_char)
}
}
-static void set_kerm_bin_mode (unsigned long *addr)
+static void set_kerm_bin_mode(unsigned long *addr)
{
bin_start_address = (char *) addr;
os_data_init = bin_data_init;
@@ -654,29 +653,29 @@ static void set_kerm_bin_mode (unsigned long *addr)
/* k_data_* simply handles the kermit escape translations */
static int k_data_escape, k_data_escape_saved;
-void k_data_init (void)
+static void k_data_init(void)
{
k_data_escape = 0;
- os_data_init ();
+ os_data_init();
}
-void k_data_save (void)
+static void k_data_save(void)
{
k_data_escape_saved = k_data_escape;
- os_data_save ();
+ os_data_save();
}
-void k_data_restore (void)
+static void k_data_restore(void)
{
k_data_escape = k_data_escape_saved;
- os_data_restore ();
+ os_data_restore();
}
-void k_data_char (char new_char)
+static void k_data_char(char new_char)
{
if (k_data_escape) {
/* last char was escape - translate this character */
- os_data_char (ktrans (new_char));
+ os_data_char(ktrans(new_char));
k_data_escape = 0;
} else {
if (new_char == his_quote) {
@@ -684,18 +683,18 @@ void k_data_char (char new_char)
k_data_escape = 1;
} else {
/* otherwise send this char as-is */
- os_data_char (new_char);
+ os_data_char(new_char);
}
}
}
#define SEND_DATA_SIZE 20
-char send_parms[SEND_DATA_SIZE];
-char *send_ptr;
+static char send_parms[SEND_DATA_SIZE];
+static char *send_ptr;
/* handle_send_packet interprits the protocol info and builds and
sends an appropriate ack for what we can do */
-void handle_send_packet (int n)
+static void handle_send_packet(int n)
{
int length = 3;
int bytes;
@@ -715,30 +714,30 @@ void handle_send_packet (int n)
break;
/* handle MAXL - max length */
/* ignore what he says - most I'll take (here) is 94 */
- a_b[++length] = tochar (94);
+ a_b[++length] = tochar(94);
if (bytes-- <= 0)
break;
/* handle TIME - time you should wait for my packets */
/* ignore what he says - don't wait for my ack longer than 1 second */
- a_b[++length] = tochar (1);
+ a_b[++length] = tochar(1);
if (bytes-- <= 0)
break;
/* handle NPAD - number of pad chars I need */
/* remember what he says - I need none */
- his_pad_count = untochar (send_parms[2]);
- a_b[++length] = tochar (0);
+ his_pad_count = untochar(send_parms[2]);
+ a_b[++length] = tochar(0);
if (bytes-- <= 0)
break;
/* handle PADC - pad chars I need */
/* remember what he says - I need none */
- his_pad_char = ktrans (send_parms[3]);
+ his_pad_char = ktrans(send_parms[3]);
a_b[++length] = 0x40; /* He should ignore this */
if (bytes-- <= 0)
break;
/* handle EOL - end of line he needs */
/* remember what he says - I need CR */
- his_eol = untochar (send_parms[4]);
- a_b[++length] = tochar (END_CHAR);
+ his_eol = untochar(send_parms[4]);
+ a_b[++length] = tochar(END_CHAR);
if (bytes-- <= 0)
break;
/* handle QCTL - quote control char he'll use */
@@ -764,25 +763,25 @@ void handle_send_packet (int n)
break;
/* handle CAPAS - the capabilities mask */
/* ignore what he says - I only do long packets - I don't do windows */
- a_b[++length] = tochar (2); /* only long packets */
- a_b[++length] = tochar (0); /* no windows */
- a_b[++length] = tochar (94); /* large packet msb */
- a_b[++length] = tochar (94); /* large packet lsb */
+ a_b[++length] = tochar(2); /* only long packets */
+ a_b[++length] = tochar(0); /* no windows */
+ a_b[++length] = tochar(94); /* large packet msb */
+ a_b[++length] = tochar(94); /* large packet lsb */
} while (0);
a_b[0] = START_CHAR;
- a_b[1] = tochar (length);
- a_b[2] = tochar (n);
+ a_b[1] = tochar(length);
+ a_b[2] = tochar(n);
a_b[3] = ACK_TYPE;
a_b[++length] = '\0';
- a_b[length] = tochar (chk1 (&a_b[1]));
+ a_b[length] = tochar(chk1(&a_b[1]));
a_b[++length] = his_eol;
a_b[++length] = '\0';
- s1_sendpacket (a_b);
+ s1_sendpacket(a_b);
}
/* k_recv receives a OS Open image file over kermit line */
-static int k_recv (void)
+static int k_recv(void)
{
char new_char;
char k_state, k_state_saved;
@@ -801,9 +800,9 @@ static int k_recv (void)
/* initialize the k_recv and k_data state machine */
done = 0;
k_state = 0;
- k_data_init ();
+ k_data_init();
k_state_saved = k_state;
- k_data_save ();
+ k_data_save();
n = 0; /* just to get rid of a warning */
last_n = -1;
@@ -848,17 +847,17 @@ static int k_recv (void)
START:
/* get length of packet */
sum = 0;
- new_char = getc ();
+ new_char = getc();
if ((new_char & 0xE0) == 0)
goto packet_error;
sum += new_char & 0xff;
- length = untochar (new_char);
+ length = untochar(new_char);
/* get sequence number */
- new_char = getc ();
+ new_char = getc();
if ((new_char & 0xE0) == 0)
goto packet_error;
sum += new_char & 0xff;
- n = untochar (new_char);
+ n = untochar(new_char);
--length;
/* NEW CODE - check sequence numbers for retried packets */
@@ -871,17 +870,17 @@ START:
if (n == last_n) {
/* same sequence number, restore the previous state */
k_state = k_state_saved;
- k_data_restore ();
+ k_data_restore();
} else {
/* new sequence number, checkpoint the download */
last_n = n;
k_state_saved = k_state;
- k_data_save ();
+ k_data_save();
}
/* END NEW CODE */
/* get packet type */
- new_char = getc ();
+ new_char = getc();
if ((new_char & 0xE0) == 0)
goto packet_error;
sum += new_char & 0xff;
@@ -891,29 +890,29 @@ START:
if (length == -2) {
/* (length byte was 0, decremented twice) */
/* get the two length bytes */
- new_char = getc ();
+ new_char = getc();
if ((new_char & 0xE0) == 0)
goto packet_error;
sum += new_char & 0xff;
- len_hi = untochar (new_char);
- new_char = getc ();
+ len_hi = untochar(new_char);
+ new_char = getc();
if ((new_char & 0xE0) == 0)
goto packet_error;
sum += new_char & 0xff;
- len_lo = untochar (new_char);
+ len_lo = untochar(new_char);
length = len_hi * 95 + len_lo;
/* check header checksum */
- new_char = getc ();
+ new_char = getc();
if ((new_char & 0xE0) == 0)
goto packet_error;
- if (new_char != tochar ((sum + ((sum >> 6) & 0x03)) & 0x3f))
+ if (new_char != tochar((sum + ((sum >> 6) & 0x03)) & 0x3f))
goto packet_error;
sum += new_char & 0xff;
/* --length; */ /* new length includes only data and block check to come */
}
/* bring in rest of packet */
while (length > 1) {
- new_char = getc ();
+ new_char = getc();
if ((new_char & 0xE0) == 0)
goto packet_error;
sum += new_char & 0xff;
@@ -930,26 +929,26 @@ START:
}
}
/* get and validate checksum character */
- new_char = getc ();
+ new_char = getc();
if ((new_char & 0xE0) == 0)
goto packet_error;
- if (new_char != tochar ((sum + ((sum >> 6) & 0x03)) & 0x3f))
+ if (new_char != tochar((sum + ((sum >> 6) & 0x03)) & 0x3f))
goto packet_error;
/* get END_CHAR */
- new_char = getc ();
+ new_char = getc();
if (new_char != END_CHAR) {
packet_error:
/* restore state machines */
k_state = k_state_saved;
- k_data_restore ();
+ k_data_restore();
/* send a negative acknowledge packet in */
- send_nack (n);
+ send_nack(n);
} else if (k_state == SEND_TYPE) {
/* crack the protocol parms, build an appropriate ack packet */
- handle_send_packet (n);
+ handle_send_packet(n);
} else {
/* send simple acknowledge packet in */
- send_ack (n);
+ send_ack(n);
/* quit if end of transmission */
if (k_state == BREAK_TYPE)
done = 1;
@@ -963,7 +962,7 @@ static int getcxmodem(void) {
return (getc());
return -1;
}
-static ulong load_serial_ymodem (ulong offset)
+static ulong load_serial_ymodem(ulong offset)
{
int size;
char buf[32];
@@ -976,19 +975,19 @@ static ulong load_serial_ymodem (ulong offset)
size = 0;
info.mode = xyzModem_ymodem;
- res = xyzModem_stream_open (&info, &err);
+ res = xyzModem_stream_open(&info, &err);
if (!res) {
while ((res =
- xyzModem_stream_read (ymodemBuf, 1024, &err)) > 0) {
+ xyzModem_stream_read(ymodemBuf, 1024, &err)) > 0) {
store_addr = addr + offset;
size += res;
addr += res;
#ifndef CONFIG_SYS_NO_FLASH
- if (addr2info (store_addr)) {
+ if (addr2info(store_addr)) {
int rc;
- rc = flash_write ((char *) ymodemBuf,
+ rc = flash_write((char *) ymodemBuf,
store_addr, res);
if (rc != 0) {
flash_perror (rc);
@@ -997,24 +996,24 @@ static ulong load_serial_ymodem (ulong offset)
} else
#endif
{
- memcpy ((char *) (store_addr), ymodemBuf,
+ memcpy((char *)(store_addr), ymodemBuf,
res);
}
}
} else {
- printf ("%s\n", xyzModem_error (err));
+ printf("%s\n", xyzModem_error(err));
}
- xyzModem_stream_close (&err);
- xyzModem_stream_terminate (false, &getcxmodem);
+ xyzModem_stream_close(&err);
+ xyzModem_stream_terminate(false, &getcxmodem);
- flush_cache (offset, size);
+ flush_cache(offset, size);
- printf ("## Total Size = 0x%08x = %d Bytes\n", size, size);
- sprintf (buf, "%X", size);
- setenv ("filesize", buf);
+ printf("## Total Size = 0x%08x = %d Bytes\n", size, size);
+ sprintf(buf, "%X", size);
+ setenv("filesize", buf);
return offset;
}
@@ -1091,7 +1090,7 @@ U_BOOT_CMD(
/* -------------------------------------------------------------------- */
#if defined(CONFIG_CMD_HWFLOW)
-int do_hwflow (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_hwflow(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
extern int hwflow_onoff(int);
diff --git a/common/cmd_mdio.c b/common/cmd_mdio.c
index 77d8df12c5..ff0063b30d 100644
--- a/common/cmd_mdio.c
+++ b/common/cmd_mdio.c
@@ -57,9 +57,9 @@ static int extract_range(char *input, int *plo, int *phi)
return 0;
}
-int mdio_write_ranges(struct mii_dev *bus, int addrlo,
- int addrhi, int devadlo, int devadhi,
- int reglo, int reghi, unsigned short data)
+static int mdio_write_ranges(struct mii_dev *bus, int addrlo,
+ int addrhi, int devadlo, int devadhi,
+ int reglo, int reghi, unsigned short data)
{
int addr, devad, reg;
int err = 0;
@@ -79,9 +79,9 @@ err_out:
return err;
}
-int mdio_read_ranges(struct mii_dev *bus, int addrlo,
- int addrhi, int devadlo, int devadhi,
- int reglo, int reghi)
+static int mdio_read_ranges(struct mii_dev *bus, int addrlo,
+ int addrhi, int devadlo, int devadhi,
+ int reglo, int reghi)
{
int addr, devad, reg;
@@ -112,8 +112,8 @@ int mdio_read_ranges(struct mii_dev *bus, int addrlo,
}
/* The register will be in the form [a[-b].]x[-y] */
-int extract_reg_range(char *input, int *devadlo, int *devadhi,
- int *reglo, int *reghi)
+static int extract_reg_range(char *input, int *devadlo, int *devadhi,
+ int *reglo, int *reghi)
{
char *regstr;
@@ -141,8 +141,8 @@ int extract_reg_range(char *input, int *devadlo, int *devadhi,
return extract_range(regstr, reglo, reghi);
}
-int extract_phy_range(char *const argv[], int argc, struct mii_dev **bus,
- int *addrlo, int *addrhi)
+static int extract_phy_range(char *const argv[], int argc, struct mii_dev **bus,
+ int *addrlo, int *addrhi)
{
struct phy_device *phydev;
diff --git a/common/cmd_mem.c b/common/cmd_mem.c
index 18f0a3f50f..4d64cfffde 100644
--- a/common/cmd_mem.c
+++ b/common/cmd_mem.c
@@ -51,7 +51,7 @@ static ulong base_address = 0;
* md{.b, .w, .l} {addr} {len}
*/
#define DISP_LINE_LEN 16
-int do_mem_md ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mem_md(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
ulong addr, length;
#if defined(CONFIG_HAS_DATAFLASH)
@@ -147,16 +147,16 @@ int do_mem_md ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
return (rc);
}
-int do_mem_mm ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mem_mm(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
return mod_mem (cmdtp, 1, flag, argc, argv);
}
-int do_mem_nm ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mem_nm(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
return mod_mem (cmdtp, 0, flag, argc, argv);
}
-int do_mem_mw ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mem_mw(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
ulong addr, writeval, count;
int size;
@@ -253,7 +253,7 @@ int do_mem_mwc ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
}
#endif /* CONFIG_MX_CYCLIC */
-int do_mem_cmp (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mem_cmp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
ulong addr1, addr2, count, ngood;
int size;
@@ -323,7 +323,7 @@ int do_mem_cmp (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
return rcode;
}
-int do_mem_cp ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mem_cp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
ulong addr, dest, count;
int size;
@@ -433,7 +433,8 @@ int do_mem_cp ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
return 0;
}
-int do_mem_base (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mem_base(cmd_tbl_t *cmdtp, int flag, int argc,
+ char * const argv[])
{
if (argc > 1) {
/* Set new base address.
@@ -446,7 +447,8 @@ int do_mem_base (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
return 0;
}
-int do_mem_loop (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mem_loop(cmd_tbl_t *cmdtp, int flag, int argc,
+ char * const argv[])
{
ulong addr, length, i;
int size;
@@ -592,7 +594,8 @@ int do_mem_loopw (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
* configured using CONFIG_SYS_ALT_MEMTEST. The complete test loops until
* interrupted by ctrl-c or by a failure of one of the sub-tests.
*/
-int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mem_mtest(cmd_tbl_t *cmdtp, int flag, int argc,
+ char * const argv[])
{
vu_long *addr, *start, *end;
ulong val;
@@ -612,7 +615,7 @@ int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
#if defined(CONFIG_SYS_MEMTEST_SCRATCH)
vu_long *dummy = (vu_long*)CONFIG_SYS_MEMTEST_SCRATCH;
#else
- vu_long *dummy = 0; /* yes, this is address 0x0, not NULL */
+ vu_long *dummy = NULL; /* yes, this is address 0x0, not NULL */
#endif
int j;
@@ -1054,7 +1057,7 @@ mod_mem(cmd_tbl_t *cmdtp, int incrflag, int flag, int argc, char * const argv[])
#ifndef CONFIG_CRC32_VERIFY
-int do_mem_crc (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mem_crc(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
ulong addr, length;
ulong crc;
diff --git a/common/cmd_misc.c b/common/cmd_misc.c
index 3b47a0c095..dc2772e85d 100644
--- a/common/cmd_misc.c
+++ b/common/cmd_misc.c
@@ -27,7 +27,7 @@
#include <common.h>
#include <command.h>
-int do_sleep (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_sleep(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
ulong start = get_timer(0);
ulong delay;
@@ -38,10 +38,10 @@ int do_sleep (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
delay = simple_strtoul(argv[1], NULL, 10) * CONFIG_SYS_HZ;
while (get_timer(start) < delay) {
- if (ctrlc ())
+ if (ctrlc())
return (-1);
- udelay (100);
+ udelay(100);
}
return 0;
diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c
index 79a1088f3b..62a1c224d3 100644
--- a/common/cmd_mmc.c
+++ b/common/cmd_mmc.c
@@ -115,7 +115,7 @@ static void print_mmcinfo(struct mmc *mmc)
printf("Bus Width: %d-bit\n", mmc->bus_width);
}
-int do_mmcinfo (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mmcinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
struct mmc *mmc;
@@ -147,7 +147,7 @@ U_BOOT_CMD(
"- dislay info of the current MMC device"
);
-int do_mmcops(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mmcops(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
enum mmc_state state;
@@ -269,7 +269,7 @@ int do_mmcops(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
addr = (void *)simple_strtoul(argv[idx], NULL, 16);
++idx;
} else
- addr = 0;
+ addr = NULL;
blk = simple_strtoul(argv[idx], NULL, 16);
cnt = simple_strtoul(argv[idx + 1], NULL, 16);
diff --git a/common/cmd_mp.c b/common/cmd_mp.c
index 4b27be4956..2143814d4f 100644
--- a/common/cmd_mp.c
+++ b/common/cmd_mp.c
@@ -23,7 +23,7 @@
#include <common.h>
#include <command.h>
-int
+static int
cpu_cmd(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
unsigned long cpuid;
@@ -61,8 +61,14 @@ cpu_cmd(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
return 0;
}
+#ifdef CONFIG_SYS_LONGHELP
+static char cpu_help_text[] =
+ "<num> reset - Reset cpu <num>\n"
+ "cpu <num> status - Status of cpu <num>\n"
+ "cpu <num> disable - Disable cpu <num>\n"
+ "cpu <num> release <addr> [args] - Release cpu <num> at <addr> with [args]"
#ifdef CONFIG_PPC
-#define CPU_ARCH_HELP \
+ "\n"
" [args] : <pir> <r3> <r6>\n" \
" pir - processor id (if writeable)\n" \
" r3 - value for gpr 3\n" \
@@ -74,16 +80,10 @@ cpu_cmd(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
" When cpu <num> is released r4 and r5 = 0.\n" \
" r7 will contain the size of the initial mapped area"
#endif
+ "";
+#endif
U_BOOT_CMD(
cpu, CONFIG_SYS_MAXARGS, 1, cpu_cmd,
- "Multiprocessor CPU boot manipulation and release",
- "<num> reset - Reset cpu <num>\n"
- "cpu <num> status - Status of cpu <num>\n"
- "cpu <num> disable - Disable cpu <num>\n"
- "cpu <num> release <addr> [args] - Release cpu <num> at <addr> with [args]"
-#ifdef CPU_ARCH_HELP
- "\n"
- CPU_ARCH_HELP
-#endif
+ "Multiprocessor CPU boot manipulation and release", cpu_help_text
);
diff --git a/common/cmd_mtdparts.c b/common/cmd_mtdparts.c
index 22688293ae..06fc171fe3 100644
--- a/common/cmd_mtdparts.c
+++ b/common/cmd_mtdparts.c
@@ -147,10 +147,10 @@ static char last_partition[PARTITION_MAXLEN];
extern void jffs2_free_cache(struct part_info *part);
/* mtdids mapping list, filled by parse_ids() */
-struct list_head mtdids;
+static struct list_head mtdids;
/* device/partition list, parse_cmdline() parses into here */
-struct list_head devices;
+static struct list_head devices;
/* current active device and partition number */
struct mtd_device *current_mtd_dev = NULL;
@@ -710,7 +710,7 @@ static int part_parse(const char *const partdef, const char **ret, struct part_i
* @param size a pointer to the size of the mtd device (output)
* @return 0 if device is valid, 1 otherwise
*/
-int mtd_device_validate(u8 type, u8 num, u32 *size)
+static int mtd_device_validate(u8 type, u8 num, u32 *size)
{
struct mtd_info *mtd = NULL;
@@ -1042,7 +1042,8 @@ static struct mtdids* id_find_by_mtd_id(const char *mtd_id, unsigned int mtd_id_
* @param dev_num parsed device number (output)
* @return 0 on success, 1 otherwise
*/
-int mtd_id_parse(const char *id, const char **ret_id, u8 *dev_type, u8 *dev_num)
+int mtd_id_parse(const char *id, const char **ret_id, u8 *dev_type,
+ u8 *dev_num)
{
const char *p = id;
@@ -1884,7 +1885,7 @@ static struct part_info* mtd_part_info(struct mtd_device *dev, unsigned int part
* @param argv arguments list
* @return 0 on success, 1 otherwise
*/
-int do_chpart(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_chpart(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
/* command line only */
struct mtd_device *dev;
@@ -1922,7 +1923,8 @@ int do_chpart(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
* @param argv arguments list
* @return 0 on success, 1 otherwise
*/
-int do_mtdparts(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mtdparts(cmd_tbl_t *cmdtp, int flag, int argc,
+ char * const argv[])
{
if (argc == 2) {
if (strcmp(argv[1], "default") == 0) {
@@ -2046,9 +2048,8 @@ U_BOOT_CMD(
" - change active partition (e.g. part-id = nand0,1)"
);
-U_BOOT_CMD(
- mtdparts, 6, 0, do_mtdparts,
- "define flash/nand partitions",
+#ifdef CONFIG_SYS_LONGHELP
+static char mtdparts_help_text[] =
"\n"
" - list partition table\n"
"mtdparts delall\n"
@@ -2090,6 +2091,11 @@ U_BOOT_CMD(
"<size> := standard linux memsize OR '-' to denote all remaining space\n"
"<offset> := partition start offset within the device\n"
"<name> := '(' NAME ')'\n"
- "<ro-flag> := when set to 'ro' makes partition read-only (not used, passed to kernel)"
+ "<ro-flag> := when set to 'ro' makes partition read-only (not used, passed to kernel)";
+#endif
+
+U_BOOT_CMD(
+ mtdparts, 6, 0, do_mtdparts,
+ "define flash/nand partitions", mtdparts_help_text
);
/***************************************************/
diff --git a/common/cmd_nand.c b/common/cmd_nand.c
index e24ed7f9c4..4b1606972b 100644
--- a/common/cmd_nand.c
+++ b/common/cmd_nand.c
@@ -373,8 +373,7 @@ static void nand_print_and_set_info(int idx)
{
nand_info_t *nand = &nand_info[idx];
struct nand_chip *chip = nand->priv;
- const int bufsz = 32;
- char buf[bufsz];
+ char buf[32];
printf("Device %d: ", idx);
if (chip->numchips > 1)
@@ -429,7 +428,7 @@ static int raw_access(nand_info_t *nand, ulong addr, loff_t off, ulong count,
return ret;
}
-int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
+static int do_nand(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
int i, ret = 0;
ulong addr;
@@ -781,9 +780,8 @@ usage:
return CMD_RET_USAGE;
}
-U_BOOT_CMD(
- nand, CONFIG_SYS_MAXARGS, 1, do_nand,
- "NAND sub-system",
+#ifdef CONFIG_SYS_LONGHELP
+static char nand_help_text[] =
"info - show available NAND devices\n"
"nand device [dev] - show or set current device\n"
"nand read - addr off|partition size\n"
@@ -829,6 +827,12 @@ U_BOOT_CMD(
"nand env.oob set off|partition - set enviromnent offset\n"
"nand env.oob get - get environment offset"
#endif
+ "";
+#endif
+
+U_BOOT_CMD(
+ nand, CONFIG_SYS_MAXARGS, 1, do_nand,
+ "NAND sub-system", nand_help_text
);
static int nand_load_image(cmd_tbl_t *cmdtp, nand_info_t *nand,
@@ -913,7 +917,8 @@ static int nand_load_image(cmd_tbl_t *cmdtp, nand_info_t *nand,
return bootm_maybe_autostart(cmdtp, cmd);
}
-int do_nandboot(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
+static int do_nandboot(cmd_tbl_t *cmdtp, int flag, int argc,
+ char * const argv[])
{
char *boot_device = NULL;
int idx;
diff --git a/common/cmd_net.c b/common/cmd_net.c
index a9ade8b927..3b93ef27c0 100644
--- a/common/cmd_net.c
+++ b/common/cmd_net.c
@@ -30,9 +30,9 @@
static int netboot_common(enum proto_t, cmd_tbl_t *, int, char * const []);
-int do_bootp (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_bootp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
- return netboot_common (BOOTP, cmdtp, argc, argv);
+ return netboot_common(BOOTP, cmdtp, argc, argv);
}
U_BOOT_CMD(
@@ -41,7 +41,7 @@ U_BOOT_CMD(
"[loadAddress] [[hostIPaddr:]bootfilename]"
);
-int do_tftpb (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_tftpb(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
int ret;
@@ -91,9 +91,9 @@ U_BOOT_CMD(
#ifdef CONFIG_CMD_RARP
-int do_rarpb (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_rarpb(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
- return netboot_common (RARP, cmdtp, argc, argv);
+ return netboot_common(RARP, cmdtp, argc, argv);
}
U_BOOT_CMD(
@@ -104,7 +104,7 @@ U_BOOT_CMD(
#endif
#if defined(CONFIG_CMD_DHCP)
-int do_dhcp (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_dhcp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
return netboot_common(DHCP, cmdtp, argc, argv);
}
@@ -117,7 +117,7 @@ U_BOOT_CMD(
#endif
#if defined(CONFIG_CMD_NFS)
-int do_nfs (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_nfs(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
return netboot_common(NFS, cmdtp, argc, argv);
}
@@ -129,29 +129,29 @@ U_BOOT_CMD(
);
#endif
-static void netboot_update_env (void)
+static void netboot_update_env(void)
{
char tmp[22];
if (NetOurGatewayIP) {
- ip_to_string (NetOurGatewayIP, tmp);
- setenv ("gatewayip", tmp);
+ ip_to_string(NetOurGatewayIP, tmp);
+ setenv("gatewayip", tmp);
}
if (NetOurSubnetMask) {
- ip_to_string (NetOurSubnetMask, tmp);
- setenv ("netmask", tmp);
+ ip_to_string(NetOurSubnetMask, tmp);
+ setenv("netmask", tmp);
}
if (NetOurHostName[0])
- setenv ("hostname", NetOurHostName);
+ setenv("hostname", NetOurHostName);
if (NetOurRootPath[0])
- setenv ("rootpath", NetOurRootPath);
+ setenv("rootpath", NetOurRootPath);
if (NetOurIP) {
- ip_to_string (NetOurIP, tmp);
- setenv ("ipaddr", tmp);
+ ip_to_string(NetOurIP, tmp);
+ setenv("ipaddr", tmp);
}
#if !defined(CONFIG_BOOTP_SERVERIP)
/*
@@ -159,35 +159,35 @@ static void netboot_update_env (void)
* could have set it
*/
if (NetServerIP) {
- ip_to_string (NetServerIP, tmp);
- setenv ("serverip", tmp);
+ ip_to_string(NetServerIP, tmp);
+ setenv("serverip", tmp);
}
#endif
if (NetOurDNSIP) {
- ip_to_string (NetOurDNSIP, tmp);
- setenv ("dnsip", tmp);
+ ip_to_string(NetOurDNSIP, tmp);
+ setenv("dnsip", tmp);
}
#if defined(CONFIG_BOOTP_DNS2)
if (NetOurDNS2IP) {
- ip_to_string (NetOurDNS2IP, tmp);
- setenv ("dnsip2", tmp);
+ ip_to_string(NetOurDNS2IP, tmp);
+ setenv("dnsip2", tmp);
}
#endif
if (NetOurNISDomain[0])
- setenv ("domain", NetOurNISDomain);
+ setenv("domain", NetOurNISDomain);
#if defined(CONFIG_CMD_SNTP) \
&& defined(CONFIG_BOOTP_TIMEOFFSET)
if (NetTimeOffset) {
- sprintf (tmp, "%d", NetTimeOffset);
- setenv ("timeoffset", tmp);
+ sprintf(tmp, "%d", NetTimeOffset);
+ setenv("timeoffset", tmp);
}
#endif
#if defined(CONFIG_CMD_SNTP) \
&& defined(CONFIG_BOOTP_NTPSERVER)
if (NetNtpServerIP) {
- ip_to_string (NetNtpServerIP, tmp);
- setenv ("ntpserverip", tmp);
+ ip_to_string(NetNtpServerIP, tmp);
+ setenv("ntpserverip", tmp);
}
#endif
}
@@ -224,7 +224,7 @@ static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc,
break;
case 3: load_addr = simple_strtoul(argv[1], NULL, 16);
- copy_filename (BootFile, argv[2], sizeof(BootFile));
+ copy_filename(BootFile, argv[2], sizeof(BootFile));
break;
@@ -274,7 +274,7 @@ static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc,
}
#if defined(CONFIG_CMD_PING)
-int do_ping (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_ping(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
if (argc < 2)
return -1;
@@ -322,7 +322,7 @@ static void cdp_update_env(void)
}
-int do_cdp (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_cdp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
int r;
@@ -345,27 +345,29 @@ U_BOOT_CMD(
#endif
#if defined(CONFIG_CMD_SNTP)
-int do_sntp (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_sntp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
char *toff;
if (argc < 2) {
- NetNtpServerIP = getenv_IPaddr ("ntpserverip");
+ NetNtpServerIP = getenv_IPaddr("ntpserverip");
if (NetNtpServerIP == 0) {
- printf ("ntpserverip not set\n");
+ printf("ntpserverip not set\n");
return (1);
}
} else {
NetNtpServerIP = string_to_ip(argv[1]);
if (NetNtpServerIP == 0) {
- printf ("Bad NTP server IP address\n");
+ printf("Bad NTP server IP address\n");
return (1);
}
}
- toff = getenv ("timeoffset");
- if (toff == NULL) NetTimeOffset = 0;
- else NetTimeOffset = simple_strtol (toff, NULL, 10);
+ toff = getenv("timeoffset");
+ if (toff == NULL)
+ NetTimeOffset = 0;
+ else
+ NetTimeOffset = simple_strtol(toff, NULL, 10);
if (NetLoop(SNTP) < 0) {
printf("SNTP failed: host %pI4 not responding\n",
diff --git a/common/cmd_nvedit.c b/common/cmd_nvedit.c
index 68c38f4e5c..006131f45c 100644
--- a/common/cmd_nvedit.c
+++ b/common/cmd_nvedit.c
@@ -136,7 +136,8 @@ static int env_print(char *name)
return 0;
}
-int do_env_print (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_env_print(cmd_tbl_t *cmdtp, int flag, int argc,
+ char * const argv[])
{
int i;
int rcode = 0;
@@ -322,7 +323,7 @@ int env_check_apply(const char *name, const char *oldval,
* Set a new environment variable,
* or replace or delete an existing one.
*/
-int _do_env_set(int flag, int argc, char * const argv[])
+static int _do_env_set(int flag, int argc, char * const argv[])
{
int i, len;
char *name, *value, *s;
@@ -435,7 +436,7 @@ int setenv_addr(const char *varname, const void *addr)
}
#ifndef CONFIG_SPL_BUILD
-int do_env_set(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_env_set(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
if (argc < 2)
return CMD_RET_USAGE;
@@ -514,7 +515,8 @@ int do_env_ask(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
* Interactively edit an environment variable
*/
#if defined(CONFIG_CMD_EDITENV)
-int do_env_edit(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_env_edit(cmd_tbl_t *cmdtp, int flag, int argc,
+ char * const argv[])
{
char buffer[CONFIG_SYS_CBSIZE];
char *init_val;
@@ -622,7 +624,8 @@ ulong getenv_ulong(const char *name, int base, ulong default_val)
#ifndef CONFIG_SPL_BUILD
#if defined(CONFIG_CMD_SAVEENV) && !defined(CONFIG_ENV_IS_NOWHERE)
-int do_env_save(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_env_save(cmd_tbl_t *cmdtp, int flag, int argc,
+ char * const argv[])
{
printf("Saving Environment to %s...\n", env_name_spec);
@@ -1020,9 +1023,8 @@ static int do_env(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
return CMD_RET_USAGE;
}
-U_BOOT_CMD(
- env, CONFIG_SYS_MAXARGS, 1, do_env,
- "environment handling commands",
+#ifdef CONFIG_SYS_LONGHELP
+static char env_help_text[] =
#if defined(CONFIG_CMD_ASKENV)
"ask name [message] [size] - ask for environment variable\nenv "
#endif
@@ -1047,7 +1049,12 @@ U_BOOT_CMD(
#if defined(CONFIG_CMD_SAVEENV) && !defined(CONFIG_ENV_IS_NOWHERE)
"env save - save environment\n"
#endif
- "env set [-f] name [arg ...]\n"
+ "env set [-f] name [arg ...]\n";
+#endif
+
+U_BOOT_CMD(
+ env, CONFIG_SYS_MAXARGS, 1, do_env,
+ "environment handling commands", env_help_text
);
/*
diff --git a/common/cmd_pci.c b/common/cmd_pci.c
index a1fe519f61..8550b64008 100644
--- a/common/cmd_pci.c
+++ b/common/cmd_pci.c
@@ -35,8 +35,6 @@
#include <asm/io.h>
#include <pci.h>
-unsigned char ShortPCIListing = 1;
-
/*
* Follows routines for the output of infos about devices on PCI bus.
*/
@@ -408,7 +406,7 @@ pci_cfg_modify (pci_dev_t bdf, ulong addr, ulong size, ulong value, int incrflag
* pci modify[.b, .w, .l] bus.device.function [addr]
* pci write[.b, .w, .l] bus.device.function addr value
*/
-int do_pci (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_pci(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
ulong addr = 0, value = 0, size = 0;
pci_dev_t bdf = 0;
@@ -485,10 +483,8 @@ int do_pci (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
/***************************************************/
-
-U_BOOT_CMD(
- pci, 5, 1, do_pci,
- "list and access PCI Configuration Space",
+#ifdef CONFIG_SYS_LONGHELP
+static char pci_help_text[] =
"[bus] [long]\n"
" - short or long list of PCI devices on bus 'bus'\n"
#ifdef CONFIG_CMD_PCI_ENUM
@@ -504,5 +500,10 @@ U_BOOT_CMD(
"pci modify[.b, .w, .l] b.d.f address\n"
" - modify, auto increment CFG address\n"
"pci write[.b, .w, .l] b.d.f address value\n"
- " - write to CFG address"
+ " - write to CFG address";
+#endif
+
+U_BOOT_CMD(
+ pci, 5, 1, do_pci,
+ "list and access PCI Configuration Space", pci_help_text
);
diff --git a/common/cmd_reginfo.c b/common/cmd_reginfo.c
index 908876ce45..08a6563448 100644
--- a/common/cmd_reginfo.c
+++ b/common/cmd_reginfo.c
@@ -37,7 +37,8 @@ extern void mpc86xx_reginfo(void);
extern void mpc85xx_reginfo(void);
#endif
-int do_reginfo (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_reginfo(cmd_tbl_t *cmdtp, int flag, int argc,
+ char * const argv[])
{
#if defined(CONFIG_8xx)
volatile immap_t *immap = (immap_t *)CONFIG_SYS_IMMR;
diff --git a/common/cmd_sata.c b/common/cmd_sata.c
index 3f98235a38..b401bd1024 100644
--- a/common/cmd_sata.c
+++ b/common/cmd_sata.c
@@ -28,7 +28,7 @@
#include <part.h>
#include <sata.h>
-int sata_curr_device = -1;
+static int sata_curr_device = -1;
block_dev_desc_t sata_dev_desc[CONFIG_SYS_SATA_MAX_DEVICE];
int __sata_initialize(void)
@@ -67,7 +67,7 @@ block_dev_desc_t *sata_get_dev(int dev)
}
#endif
-int do_sata(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_sata(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
int rc = 0;
diff --git a/common/cmd_scsi.c b/common/cmd_scsi.c
index 22d0119814..266bfa6905 100644
--- a/common/cmd_scsi.c
+++ b/common/cmd_scsi.c
@@ -34,6 +34,9 @@
#include <image.h>
#include <pci.h>
+#ifdef CONFIG_SCSI_DEV_LIST
+#define SCSI_DEV_LIST CONFIG_SCSI_DEV_LIST
+#else
#ifdef CONFIG_SCSI_SYM53C8XX
#define SCSI_VEND_ID 0x1000
#ifndef CONFIG_SCSI_DEV_ID
@@ -49,8 +52,12 @@
#elif !defined(CONFIG_SCSI_AHCI_PLAT)
#error no scsi device defined
#endif
+#define SCSI_DEV_LIST {SCSI_VEND_ID, SCSI_DEV_ID}
+#endif
-
+#ifdef CONFIG_PCI
+const struct pci_device_id scsi_device_list[] = { SCSI_DEV_LIST };
+#endif
static ccb tempccb; /* temporary scsi command buffer */
static unsigned char tempbuff[512]; /* temporary data buffer */
@@ -65,14 +72,19 @@ static block_dev_desc_t scsi_dev_desc[CONFIG_SYS_SCSI_MAX_DEVICE];
* forward declerations of some Setup Routines
*/
void scsi_setup_test_unit_ready(ccb * pccb);
-void scsi_setup_read_capacity(ccb * pccb);
void scsi_setup_read6(ccb * pccb, unsigned long start, unsigned short blocks);
void scsi_setup_read_ext(ccb * pccb, unsigned long start, unsigned short blocks);
+static void scsi_setup_write_ext(ccb *pccb, unsigned long start,
+ unsigned short blocks);
void scsi_setup_inquiry(ccb * pccb);
void scsi_ident_cpy (unsigned char *dest, unsigned char *src, unsigned int len);
-ulong scsi_read(int device, ulong blknr, ulong blkcnt, void *buffer);
+static int scsi_read_capacity(ccb *pccb, lbaint_t *capacity,
+ unsigned long *blksz);
+static ulong scsi_read(int device, ulong blknr, lbaint_t blkcnt, void *buffer);
+static ulong scsi_write(int device, ulong blknr,
+ lbaint_t blkcnt, const void *buffer);
/*********************************************************************************
@@ -82,7 +94,8 @@ ulong scsi_read(int device, ulong blknr, ulong blkcnt, void *buffer);
void scsi_scan(int mode)
{
unsigned char i,perq,modi,lun;
- unsigned long capacity,blksz;
+ lbaint_t capacity;
+ unsigned long blksz;
ccb* pccb=(ccb *)&tempccb;
if(mode==1) {
@@ -102,6 +115,7 @@ void scsi_scan(int mode)
scsi_dev_desc[i].dev=i;
scsi_dev_desc[i].part_type=PART_TYPE_UNKNOWN;
scsi_dev_desc[i].block_read=scsi_read;
+ scsi_dev_desc[i].block_write = scsi_write;
}
scsi_max_devs=0;
for(i=0;i<CONFIG_SYS_SCSI_MAX_SCSI_ID;i++) {
@@ -146,16 +160,10 @@ void scsi_scan(int mode)
scsi_print_error(pccb);
continue;
}
- pccb->datalen=8;
- scsi_setup_read_capacity(pccb);
- if(scsi_exec(pccb)!=TRUE) {
+ if (scsi_read_capacity(pccb, &capacity, &blksz)) {
scsi_print_error(pccb);
continue;
}
- capacity=((unsigned long)tempbuff[0]<<24)|((unsigned long)tempbuff[1]<<16)|
- ((unsigned long)tempbuff[2]<<8)|((unsigned long)tempbuff[3]);
- blksz=((unsigned long)tempbuff[4]<<24)|((unsigned long)tempbuff[5]<<16)|
- ((unsigned long)tempbuff[6]<<8)|((unsigned long)tempbuff[7]);
scsi_dev_desc[scsi_max_devs].lba=capacity;
scsi_dev_desc[scsi_max_devs].blksz=blksz;
scsi_dev_desc[scsi_max_devs].type=perq;
@@ -172,21 +180,52 @@ removable:
scsi_curr_dev=0;
else
scsi_curr_dev = -1;
+
+ printf("Found %d device(s).\n", scsi_max_devs);
+ setenv_ulong("scsidevs", scsi_max_devs);
+}
+
+int scsi_get_disk_count(void)
+{
+ return scsi_max_devs;
}
#ifdef CONFIG_PCI
void scsi_init(void)
{
int busdevfunc;
+ int i;
+ /*
+ * Find a device from the list, this driver will support a single
+ * controller.
+ */
+ for (i = 0; i < ARRAY_SIZE(scsi_device_list); i++) {
+ /* get PCI Device ID */
+ busdevfunc = pci_find_device(scsi_device_list[i].vendor,
+ scsi_device_list[i].device,
+ 0);
+ if (busdevfunc != -1)
+ break;
+ }
- busdevfunc=pci_find_device(SCSI_VEND_ID,SCSI_DEV_ID,0); /* get PCI Device ID */
- if(busdevfunc==-1) {
- printf("Error SCSI Controller (%04X,%04X) not found\n",SCSI_VEND_ID,SCSI_DEV_ID);
+ if (busdevfunc == -1) {
+ printf("Error: SCSI Controller(s) ");
+ for (i = 0; i < ARRAY_SIZE(scsi_device_list); i++) {
+ printf("%04X:%04X ",
+ scsi_device_list[i].vendor,
+ scsi_device_list[i].device);
+ }
+ printf("not found\n");
return;
}
#ifdef DEBUG
else {
- printf("SCSI Controller (%04X,%04X) found (%d:%d:%d)\n",SCSI_VEND_ID,SCSI_DEV_ID,(busdevfunc>>16)&0xFF,(busdevfunc>>11)&0x1F,(busdevfunc>>8)&0x7);
+ printf("SCSI Controller (%04X,%04X) found (%d:%d:%d)\n",
+ scsi_device_list[i].vendor,
+ scsi_device_list[i].device,
+ (busdevfunc >> 16) & 0xFF,
+ (busdevfunc >> 11) & 0x1F,
+ (busdevfunc >> 8) & 0x7);
}
#endif
scsi_low_level_init(busdevfunc);
@@ -305,6 +344,19 @@ int do_scsi (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
n = scsi_read(scsi_curr_dev, blk, cnt, (ulong *)addr);
printf ("%ld blocks read: %s\n",n,(n==cnt) ? "OK" : "ERROR");
return 0;
+ } else if (strcmp(argv[1], "write") == 0) {
+ ulong addr = simple_strtoul(argv[2], NULL, 16);
+ ulong blk = simple_strtoul(argv[3], NULL, 16);
+ ulong cnt = simple_strtoul(argv[4], NULL, 16);
+ ulong n;
+ printf("\nSCSI write: device %d block # %ld, "
+ "count %ld ... ",
+ scsi_curr_dev, blk, cnt);
+ n = scsi_write(scsi_curr_dev, blk, cnt,
+ (ulong *)addr);
+ printf("%ld blocks written: %s\n", n,
+ (n == cnt) ? "OK" : "ERROR");
+ return 0;
}
} /* switch */
return CMD_RET_USAGE;
@@ -316,9 +368,10 @@ int do_scsi (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
#define SCSI_MAX_READ_BLK 0xFFFF /* almost the maximum amount of the scsi_ext command.. */
-ulong scsi_read(int device, ulong blknr, ulong blkcnt, void *buffer)
+static ulong scsi_read(int device, ulong blknr, lbaint_t blkcnt, void *buffer)
{
- ulong start,blks, buf_addr;
+ lbaint_t start, blks;
+ uintptr_t buf_addr;
unsigned short smallblks;
ccb* pccb=(ccb *)&tempccb;
device&=0xff;
@@ -329,7 +382,9 @@ ulong scsi_read(int device, ulong blknr, ulong blkcnt, void *buffer)
buf_addr=(unsigned long)buffer;
start=blknr;
blks=blkcnt;
- debug ("\nscsi_read: dev %d startblk %lx, blccnt %lx buffer %lx\n",device,start,blks,(unsigned long)buffer);
+ debug("\nscsi_read: dev %d startblk " LBAF
+ ", blccnt " LBAF " buffer %lx\n",
+ device, start, blks, (unsigned long)buffer);
do {
pccb->pdata=(unsigned char *)buf_addr;
if(blks>SCSI_MAX_READ_BLK) {
@@ -346,7 +401,9 @@ ulong scsi_read(int device, ulong blknr, ulong blkcnt, void *buffer)
start+=blks;
blks=0;
}
- debug ("scsi_read_ext: startblk %lx, blccnt %x buffer %lx\n",start,smallblks,buf_addr);
+ debug("scsi_read_ext: startblk " LBAF
+ ", blccnt %x buffer %lx\n",
+ start, smallblks, buf_addr);
if(scsi_exec(pccb)!=TRUE) {
scsi_print_error(pccb);
blkcnt-=blks;
@@ -354,10 +411,65 @@ ulong scsi_read(int device, ulong blknr, ulong blkcnt, void *buffer)
}
buf_addr+=pccb->datalen;
} while(blks!=0);
- debug ("scsi_read_ext: end startblk %lx, blccnt %x buffer %lx\n",start,smallblks,buf_addr);
+ debug("scsi_read_ext: end startblk " LBAF
+ ", blccnt %x buffer %lx\n", start, smallblks, buf_addr);
return(blkcnt);
}
+/*******************************************************************************
+ * scsi_write
+ */
+
+/* Almost the maximum amount of the scsi_ext command.. */
+#define SCSI_MAX_WRITE_BLK 0xFFFF
+
+static ulong scsi_write(int device, ulong blknr,
+ lbaint_t blkcnt, const void *buffer)
+{
+ lbaint_t start, blks;
+ uintptr_t buf_addr;
+ unsigned short smallblks;
+ ccb* pccb = (ccb *)&tempccb;
+ device &= 0xff;
+ /* Setup device
+ */
+ pccb->target = scsi_dev_desc[device].target;
+ pccb->lun = scsi_dev_desc[device].lun;
+ buf_addr = (unsigned long)buffer;
+ start = blknr;
+ blks = blkcnt;
+ debug("\n%s: dev %d startblk " LBAF ", blccnt " LBAF " buffer %lx\n",
+ __func__, device, start, blks, (unsigned long)buffer);
+ do {
+ pccb->pdata = (unsigned char *)buf_addr;
+ if (blks > SCSI_MAX_WRITE_BLK) {
+ pccb->datalen = (scsi_dev_desc[device].blksz *
+ SCSI_MAX_WRITE_BLK);
+ smallblks = SCSI_MAX_WRITE_BLK;
+ scsi_setup_write_ext(pccb, start, smallblks);
+ start += SCSI_MAX_WRITE_BLK;
+ blks -= SCSI_MAX_WRITE_BLK;
+ } else {
+ pccb->datalen = scsi_dev_desc[device].blksz * blks;
+ smallblks = (unsigned short)blks;
+ scsi_setup_write_ext(pccb, start, smallblks);
+ start += blks;
+ blks = 0;
+ }
+ debug("%s: startblk " LBAF ", blccnt %x buffer %lx\n",
+ __func__, start, smallblks, buf_addr);
+ if (scsi_exec(pccb) != TRUE) {
+ scsi_print_error(pccb);
+ blkcnt -= blks;
+ break;
+ }
+ buf_addr += pccb->datalen;
+ } while (blks != 0);
+ debug("%s: end startblk " LBAF ", blccnt %x buffer %lx\n",
+ __func__, start, smallblks, buf_addr);
+ return blkcnt;
+}
+
/* copy src to dest, skipping leading and trailing blanks
* and null terminate the string
*/
@@ -398,6 +510,67 @@ void scsi_trim_trail (unsigned char *str, unsigned int len)
}
}
+int scsi_read_capacity(ccb *pccb, lbaint_t *capacity, unsigned long *blksz)
+{
+ *capacity = 0;
+
+ memset(pccb->cmd, 0, sizeof(pccb->cmd));
+ pccb->cmd[0] = SCSI_RD_CAPAC10;
+ pccb->cmd[1] = pccb->lun << 5;
+ pccb->cmdlen = 10;
+ pccb->msgout[0] = SCSI_IDENTIFY; /* NOT USED */
+
+ pccb->datalen = 8;
+ if (scsi_exec(pccb) != TRUE)
+ return 1;
+
+ *capacity = ((lbaint_t)pccb->pdata[0] << 24) |
+ ((lbaint_t)pccb->pdata[1] << 16) |
+ ((lbaint_t)pccb->pdata[2] << 8) |
+ ((lbaint_t)pccb->pdata[3]);
+
+ if (*capacity != 0xffffffff) {
+ /* Read capacity (10) was sufficient for this drive. */
+ *blksz = ((unsigned long)pccb->pdata[4] << 24) |
+ ((unsigned long)pccb->pdata[5] << 16) |
+ ((unsigned long)pccb->pdata[6] << 8) |
+ ((unsigned long)pccb->pdata[7]);
+ return 0;
+ }
+
+ /* Read capacity (10) was insufficient. Use read capacity (16). */
+
+ memset(pccb->cmd, 0, sizeof(pccb->cmd));
+ pccb->cmd[0] = SCSI_RD_CAPAC16;
+ pccb->cmd[1] = 0x10;
+ pccb->cmdlen = 16;
+ pccb->msgout[0] = SCSI_IDENTIFY; /* NOT USED */
+
+ pccb->datalen = 16;
+ if (scsi_exec(pccb) != TRUE)
+ return 1;
+
+ *capacity = ((uint64_t)pccb->pdata[0] << 56) |
+ ((uint64_t)pccb->pdata[1] << 48) |
+ ((uint64_t)pccb->pdata[2] << 40) |
+ ((uint64_t)pccb->pdata[3] << 32) |
+ ((uint64_t)pccb->pdata[4] << 24) |
+ ((uint64_t)pccb->pdata[5] << 16) |
+ ((uint64_t)pccb->pdata[6] << 8) |
+ ((uint64_t)pccb->pdata[7]);
+
+ *blksz = ((uint64_t)pccb->pdata[8] << 56) |
+ ((uint64_t)pccb->pdata[9] << 48) |
+ ((uint64_t)pccb->pdata[10] << 40) |
+ ((uint64_t)pccb->pdata[11] << 32) |
+ ((uint64_t)pccb->pdata[12] << 24) |
+ ((uint64_t)pccb->pdata[13] << 16) |
+ ((uint64_t)pccb->pdata[14] << 8) |
+ ((uint64_t)pccb->pdata[15]);
+
+ return 0;
+}
+
/************************************************************************************
* Some setup (fill-in) routines
@@ -414,23 +587,6 @@ void scsi_setup_test_unit_ready(ccb * pccb)
pccb->msgout[0]=SCSI_IDENTIFY; /* NOT USED */
}
-void scsi_setup_read_capacity(ccb * pccb)
-{
- pccb->cmd[0]=SCSI_RD_CAPAC;
- pccb->cmd[1]=pccb->lun<<5;
- pccb->cmd[2]=0;
- pccb->cmd[3]=0;
- pccb->cmd[4]=0;
- pccb->cmd[5]=0;
- pccb->cmd[6]=0;
- pccb->cmd[7]=0;
- pccb->cmd[8]=0;
- pccb->cmd[9]=0;
- pccb->cmdlen=10;
- pccb->msgout[0]=SCSI_IDENTIFY; /* NOT USED */
-
-}
-
void scsi_setup_read_ext(ccb * pccb, unsigned long start, unsigned short blocks)
{
pccb->cmd[0]=SCSI_READ10;
@@ -451,6 +607,27 @@ void scsi_setup_read_ext(ccb * pccb, unsigned long start, unsigned short blocks)
pccb->cmd[7],pccb->cmd[8]);
}
+void scsi_setup_write_ext(ccb *pccb, unsigned long start, unsigned short blocks)
+{
+ pccb->cmd[0] = SCSI_WRITE10;
+ pccb->cmd[1] = pccb->lun << 5;
+ pccb->cmd[2] = ((unsigned char) (start>>24)) & 0xff;
+ pccb->cmd[3] = ((unsigned char) (start>>16)) & 0xff;
+ pccb->cmd[4] = ((unsigned char) (start>>8)) & 0xff;
+ pccb->cmd[5] = ((unsigned char) (start)) & 0xff;
+ pccb->cmd[6] = 0;
+ pccb->cmd[7] = ((unsigned char) (blocks>>8)) & 0xff;
+ pccb->cmd[8] = (unsigned char)blocks & 0xff;
+ pccb->cmd[9] = 0;
+ pccb->cmdlen = 10;
+ pccb->msgout[0] = SCSI_IDENTIFY; /* NOT USED */
+ debug("%s: cmd: %02X %02X startblk %02X%02X%02X%02X blccnt %02X%02X\n",
+ __func__,
+ pccb->cmd[0], pccb->cmd[1],
+ pccb->cmd[2], pccb->cmd[3], pccb->cmd[4], pccb->cmd[5],
+ pccb->cmd[7], pccb->cmd[8]);
+}
+
void scsi_setup_read6(ccb * pccb, unsigned long start, unsigned short blocks)
{
pccb->cmd[0]=SCSI_READ6;
@@ -492,7 +669,9 @@ U_BOOT_CMD(
"scsi device [dev] - show or set current device\n"
"scsi part [dev] - print partition table of one or all SCSI devices\n"
"scsi read addr blk# cnt - read `cnt' blocks starting at block `blk#'\n"
- " to memory address `addr'"
+ " to memory address `addr'\n"
+ "scsi write addr blk# cnt - write `cnt' blocks starting at block\n"
+ " `blk#' from memory address `addr'"
);
U_BOOT_CMD(
diff --git a/common/cmd_setexpr.c b/common/cmd_setexpr.c
index 1b3edb7b02..7b140deea3 100644
--- a/common/cmd_setexpr.c
+++ b/common/cmd_setexpr.c
@@ -50,7 +50,7 @@ static ulong get_arg(char *s, int w)
}
}
-int do_setexpr(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_setexpr(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
ulong a, b;
char buf[16];
diff --git a/common/cmd_source.c b/common/cmd_source.c
index c4cde982a5..02a862cc5a 100644
--- a/common/cmd_source.c
+++ b/common/cmd_source.c
@@ -177,9 +177,8 @@ do_source (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
return rcode;
}
-U_BOOT_CMD(
- source, 2, 0, do_source,
- "run script from memory",
+#ifdef CONFIG_SYS_LONGHELP
+static char source_help_text[] =
"[addr]\n"
"\t- run script starting at addr\n"
"\t- A valid image header must be present"
@@ -188,5 +187,11 @@ U_BOOT_CMD(
"For FIT format uImage addr must include subimage\n"
"unit name in the form of addr:<subimg_uname>"
#endif
+ "";
+#endif
+
+U_BOOT_CMD(
+ source, 2, 0, do_source,
+ "run script from memory", source_help_text
);
#endif
diff --git a/common/cmd_test.c b/common/cmd_test.c
index 6da06b9f78..d4ec18672e 100644
--- a/common/cmd_test.c
+++ b/common/cmd_test.c
@@ -24,7 +24,7 @@
#include <common.h>
#include <command.h>
-int do_test(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_test(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
char * const *ap;
int left, adv, expr, last_expr, neg, last_cmp;
@@ -150,7 +150,7 @@ U_BOOT_CMD(
"[args..]"
);
-int do_false(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_false(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
return 1;
}
@@ -161,7 +161,7 @@ U_BOOT_CMD(
NULL
);
-int do_true(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_true(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
return 0;
}
diff --git a/common/cmd_usb.c b/common/cmd_usb.c
index c128455d74..8ad0b23058 100644
--- a/common/cmd_usb.c
+++ b/common/cmd_usb.c
@@ -40,7 +40,7 @@ static int usb_ether_curr_dev = -1; /* current ethernet device */
#endif
/* some display routines (info command) */
-char *usb_get_class_desc(unsigned char dclass)
+static char *usb_get_class_desc(unsigned char dclass)
{
switch (dclass) {
case USB_CLASS_PER_INTERFACE:
@@ -66,8 +66,8 @@ char *usb_get_class_desc(unsigned char dclass)
}
}
-void usb_display_class_sub(unsigned char dclass, unsigned char subclass,
- unsigned char proto)
+static void usb_display_class_sub(unsigned char dclass, unsigned char subclass,
+ unsigned char proto)
{
switch (dclass) {
case USB_CLASS_PER_INTERFACE:
@@ -148,7 +148,7 @@ void usb_display_class_sub(unsigned char dclass, unsigned char subclass,
}
}
-void usb_display_string(struct usb_device *dev, int index)
+static void usb_display_string(struct usb_device *dev, int index)
{
ALLOC_CACHE_ALIGN_BUFFER(char, buffer, 256);
@@ -158,7 +158,7 @@ void usb_display_string(struct usb_device *dev, int index)
}
}
-void usb_display_desc(struct usb_device *dev)
+static void usb_display_desc(struct usb_device *dev)
{
if (dev->descriptor.bDescriptorType == USB_DT_DEVICE) {
printf("%d: %s, USB Revision %x.%x\n", dev->devnum,
@@ -192,8 +192,8 @@ void usb_display_desc(struct usb_device *dev)
}
-void usb_display_conf_desc(struct usb_configuration_descriptor *config,
- struct usb_device *dev)
+static void usb_display_conf_desc(struct usb_configuration_descriptor *config,
+ struct usb_device *dev)
{
printf(" Configuration: %d\n", config->bConfigurationValue);
printf(" - Interfaces: %d %s%s%dmA\n", config->bNumInterfaces,
@@ -207,8 +207,8 @@ void usb_display_conf_desc(struct usb_configuration_descriptor *config,
}
}
-void usb_display_if_desc(struct usb_interface_descriptor *ifdesc,
- struct usb_device *dev)
+static void usb_display_if_desc(struct usb_interface_descriptor *ifdesc,
+ struct usb_device *dev)
{
printf(" Interface: %d\n", ifdesc->bInterfaceNumber);
printf(" - Alternate Setting %d, Endpoints: %d\n",
@@ -224,7 +224,7 @@ void usb_display_if_desc(struct usb_interface_descriptor *ifdesc,
}
}
-void usb_display_ep_desc(struct usb_endpoint_descriptor *epdesc)
+static void usb_display_ep_desc(struct usb_endpoint_descriptor *epdesc)
{
printf(" - Endpoint %d %s ", epdesc->bEndpointAddress & 0xf,
(epdesc->bEndpointAddress & 0x80) ? "In" : "Out");
@@ -249,7 +249,7 @@ void usb_display_ep_desc(struct usb_endpoint_descriptor *epdesc)
}
/* main routine to diasplay the configs, interfaces and endpoints */
-void usb_display_config(struct usb_device *dev)
+static void usb_display_config(struct usb_device *dev)
{
struct usb_config *config;
struct usb_interface *ifdesc;
@@ -280,7 +280,7 @@ static inline char *portspeed(int speed)
}
/* shows the device tree recursively */
-void usb_show_tree_graph(struct usb_device *dev, char *pre)
+static void usb_show_tree_graph(struct usb_device *dev, char *pre)
{
int i, index;
int has_child, last_child;
@@ -340,7 +340,7 @@ void usb_show_tree_graph(struct usb_device *dev, char *pre)
}
/* main routine for the tree command */
-void usb_show_tree(struct usb_device *dev)
+static void usb_show_tree(struct usb_device *dev)
{
char preamble[32];
@@ -353,7 +353,7 @@ void usb_show_tree(struct usb_device *dev)
* usb boot command intepreter. Derived from diskboot
*/
#ifdef CONFIG_USB_STORAGE
-int do_usbboot(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_usbboot(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
return common_diskboot(cmdtp, "usb", argc, argv);
}
@@ -363,7 +363,7 @@ int do_usbboot(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
/******************************************************************************
* usb command intepreter
*/
-int do_usb(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_usb(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
int i;
diff --git a/common/cmd_version.c b/common/cmd_version.c
index e4b2ac1efc..ab4c560ae0 100644
--- a/common/cmd_version.c
+++ b/common/cmd_version.c
@@ -28,7 +28,7 @@
const char __weak version_string[] = U_BOOT_VERSION_STRING;
-int do_version(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_version(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
printf("\n%s\n", version_string);
#ifdef CC_VERSION_STRING
diff --git a/common/cmd_ximg.c b/common/cmd_ximg.c
index 0414589bad..42a7eba766 100644
--- a/common/cmd_ximg.c
+++ b/common/cmd_ximg.c
@@ -42,7 +42,7 @@
#define CONFIG_SYS_XIMG_LEN 0x800000
#endif
-int
+static int
do_imgextract(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
{
ulong addr = load_addr;
@@ -264,9 +264,8 @@ do_imgextract(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
return 0;
}
-U_BOOT_CMD(
- imxtract, 4, 1, do_imgextract,
- "extract a part of a multi-image",
+#ifdef CONFIG_SYS_LONGHELP
+static char imgextract_help_text[] =
"addr part [dest]\n"
" - extract <part> from legacy image at <addr> and copy to <dest>"
#if defined(CONFIG_FIT)
@@ -274,4 +273,10 @@ U_BOOT_CMD(
"addr uname [dest]\n"
" - extract <uname> subimage from FIT image at <addr> and copy to <dest>"
#endif
+ "";
+#endif
+
+U_BOOT_CMD(
+ imxtract, 4, 1, do_imgextract,
+ "extract a part of a multi-image", imgextract_help_text
);
diff --git a/common/cmd_zfs.c b/common/cmd_zfs.c
index d580f7bca0..1df0c4d72a 100644
--- a/common/cmd_zfs.c
+++ b/common/cmd_zfs.c
@@ -46,7 +46,7 @@
#define DOS_FS_TYPE_OFFSET 0x36
#define DOS_FS32_TYPE_OFFSET 0x52
-static int do_zfs_load(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+static int do_zfs_load(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
char *filename = NULL;
int dev;
@@ -146,7 +146,7 @@ int zfs_print(const char *entry, const struct zfs_dirhook_info *data)
-static int do_zfs_ls(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+static int do_zfs_ls(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
const char *filename = "/";
int part;
diff --git a/common/command.c b/common/command.c
index 50c84292c1..f51df26bf9 100644
--- a/common/command.c
+++ b/common/command.c
@@ -40,8 +40,15 @@ int _do_help (cmd_tbl_t *cmd_start, int cmd_items, cmd_tbl_t * cmdtp, int
int i;
int rcode = 0;
+ if (cmd_items > CONFIG_SYS_MAXARGS) {
+ printf("%s: cmd_items %d exceeds hardcoded limit %d."
+ " Recompile with higher CONFIG_SYS_MAXARGS?\n",
+ __func__, cmd_items, CONFIG_SYS_MAXARGS);
+ return -1;
+ }
+
if (argc == 1) { /*show list of commands */
- cmd_tbl_t *cmd_array[cmd_items];
+ cmd_tbl_t *cmd_array[CONFIG_SYS_MAXARGS];
int i, j, swaps;
/* Make array of commands from .uboot_cmd section */
diff --git a/common/dlmalloc.c b/common/dlmalloc.c
index 1d7e527b9d..b2f0a1ad52 100644
--- a/common/dlmalloc.c
+++ b/common/dlmalloc.c
@@ -1465,7 +1465,7 @@ typedef struct malloc_chunk* mbinptr;
#define IAV(i) bin_at(i), bin_at(i)
static mbinptr av_[NAV * 2 + 2] = {
- 0, 0,
+ NULL, NULL,
IAV(0), IAV(1), IAV(2), IAV(3), IAV(4), IAV(5), IAV(6), IAV(7),
IAV(8), IAV(9), IAV(10), IAV(11), IAV(12), IAV(13), IAV(14), IAV(15),
IAV(16), IAV(17), IAV(18), IAV(19), IAV(20), IAV(21), IAV(22), IAV(23),
@@ -2173,10 +2173,10 @@ Void_t* mALLOc(bytes) size_t bytes;
/* check if mem_malloc_init() was run */
if ((mem_malloc_start == 0) && (mem_malloc_end == 0)) {
/* not initialized yet */
- return 0;
+ return NULL;
}
- if ((long)bytes < 0) return 0;
+ if ((long)bytes < 0) return NULL;
nb = request2size(bytes); /* padded request size; */
@@ -2379,7 +2379,7 @@ Void_t* mALLOc(bytes) size_t bytes;
/* Try to extend */
malloc_extend_top(nb);
if ( (remainder_size = chunksize(top) - nb) < (long)MINSIZE)
- return 0; /* propagate failure */
+ return NULL; /* propagate failure */
}
victim = top;
@@ -2433,7 +2433,7 @@ void fREe(mem) Void_t* mem;
mchunkptr fwd; /* misc temp for linking */
int islr; /* track whether merging with last_remainder */
- if (mem == 0) /* free(0) has no effect */
+ if (mem == NULL) /* free(0) has no effect */
return;
p = mem2chunk(mem);
@@ -2579,10 +2579,10 @@ Void_t* rEALLOc(oldmem, bytes) Void_t* oldmem; size_t bytes;
if (bytes == 0) { fREe(oldmem); return 0; }
#endif
- if ((long)bytes < 0) return 0;
+ if ((long)bytes < 0) return NULL;
/* realloc of null is supposed to be same as malloc */
- if (oldmem == 0) return mALLOc(bytes);
+ if (oldmem == NULL) return mALLOc(bytes);
newp = oldp = mem2chunk(oldmem);
newsize = oldsize = chunksize(oldp);
@@ -2643,7 +2643,7 @@ Void_t* rEALLOc(oldmem, bytes) Void_t* oldmem; size_t bytes;
}
else
{
- next = 0;
+ next = NULL;
nextsize = 0;
}
@@ -2656,7 +2656,7 @@ Void_t* rEALLOc(oldmem, bytes) Void_t* oldmem; size_t bytes;
/* try forward + backward first to save a later consolidation */
- if (next != 0)
+ if (next != NULL)
{
/* into top */
if (next == top)
@@ -2689,7 +2689,7 @@ Void_t* rEALLOc(oldmem, bytes) Void_t* oldmem; size_t bytes;
}
/* backward only */
- if (prev != 0 && (long)(prevsize + newsize) >= (long)nb)
+ if (prev != NULL && (long)(prevsize + newsize) >= (long)nb)
{
unlink(prev, bck, fwd);
newp = prev;
@@ -2704,8 +2704,8 @@ Void_t* rEALLOc(oldmem, bytes) Void_t* oldmem; size_t bytes;
newmem = mALLOc (bytes);
- if (newmem == 0) /* propagate failure */
- return 0;
+ if (newmem == NULL) /* propagate failure */
+ return NULL;
/* Avoid copy if newp is next chunk after oldp. */
/* (This can only happen when new chunk is sbrk'ed.) */
@@ -2783,7 +2783,7 @@ Void_t* mEMALIGn(alignment, bytes) size_t alignment; size_t bytes;
mchunkptr remainder; /* spare room at end to split off */
long remainder_size; /* its size */
- if ((long)bytes < 0) return 0;
+ if ((long)bytes < 0) return NULL;
/* If need less alignment than we give anyway, just relay to malloc */
@@ -2798,7 +2798,7 @@ Void_t* mEMALIGn(alignment, bytes) size_t alignment; size_t bytes;
nb = request2size(bytes);
m = (char*)(mALLOc(nb + alignment + MINSIZE));
- if (m == 0) return 0; /* propagate failure */
+ if (m == NULL) return NULL; /* propagate failure */
p = mem2chunk(m);
@@ -2923,10 +2923,10 @@ Void_t* cALLOc(n, elem_size) size_t n; size_t elem_size;
#endif
Void_t* mem = mALLOc (sz);
- if ((long)n < 0) return 0;
+ if ((long)n < 0) return NULL;
- if (mem == 0)
- return 0;
+ if (mem == NULL)
+ return NULL;
else
{
p = mem2chunk(mem);
@@ -3072,7 +3072,7 @@ size_t malloc_usable_size(mem) Void_t* mem;
#endif
{
mchunkptr p;
- if (mem == 0)
+ if (mem == NULL)
return 0;
else
{
diff --git a/common/hush.c b/common/hush.c
index 4c84c2f501..eb6c879c53 100644
--- a/common/hush.c
+++ b/common/hush.c
@@ -289,8 +289,7 @@ struct variables {
char **global_argv;
unsigned int global_argc;
#endif
-unsigned int last_return_code;
-int nesting_level;
+static unsigned int last_return_code;
#ifndef __U_BOOT__
extern char **environ; /* This is in <unistd.h>, but protected with __USE_GNU */
#endif
@@ -2172,7 +2171,7 @@ int set_local_var(const char *s, int flg_export)
* NAME=VALUE format. So the first order of business is to
* split 's' on the '=' into 'name' and 'value' */
value = strchr(name, '=');
- if (value==0 && ++value==0) {
+ if (value == NULL && ++value == NULL) {
free(name);
return -1;
}
@@ -2207,13 +2206,13 @@ int set_local_var(const char *s, int flg_export)
result = -1;
} else {
cur->name = strdup(name);
- if(cur->name == 0) {
+ if (cur->name == NULL) {
free(cur);
result = -1;
} else {
struct variables *bottom = top_vars;
cur->value = strdup(value);
- cur->next = 0;
+ cur->next = NULL;
cur->flg_export = flg_export;
cur->flg_read_only = 0;
while(bottom->next) bottom=bottom->next;
@@ -2246,7 +2245,7 @@ void unset_local_var(const char *name)
if(strcmp(cur->name, name)==0)
break;
}
- if(cur!=0) {
+ if (cur != NULL) {
struct variables *next = top_vars;
if(cur->flg_read_only) {
error_msg("%s: readonly variable", name);
@@ -2329,7 +2328,8 @@ static int setup_redirect(struct p_context *ctx, int fd, redir_type style,
}
#endif
-struct pipe *new_pipe(void) {
+static struct pipe *new_pipe(void)
+{
struct pipe *pi;
pi = xmalloc(sizeof(struct pipe));
pi->num_progs = 0;
@@ -2387,7 +2387,7 @@ static struct reserved_combo reserved_list[] = {
};
#define NRES (sizeof(reserved_list)/sizeof(struct reserved_combo))
-int reserved_word(o_string *dest, struct p_context *ctx)
+static int reserved_word(o_string *dest, struct p_context *ctx)
{
struct reserved_combo *r;
for (r=reserved_list;
@@ -2924,8 +2924,8 @@ int parse_string(o_string *dest, struct p_context *ctx, const char *src)
#endif
/* return code is 0 for normal exit, 1 for syntax error */
-int parse_stream(o_string *dest, struct p_context *ctx,
- struct in_str *input, int end_trigger)
+static int parse_stream(o_string *dest, struct p_context *ctx,
+ struct in_str *input, int end_trigger)
{
unsigned int ch, m;
#ifndef __U_BOOT__
@@ -3124,13 +3124,13 @@ int parse_stream(o_string *dest, struct p_context *ctx,
return 0;
}
-void mapset(const unsigned char *set, int code)
+static void mapset(const unsigned char *set, int code)
{
const unsigned char *s;
for (s=set; *s; s++) map[*s] = code;
}
-void update_ifs_map(void)
+static void update_ifs_map(void)
{
/* char *ifs and char map[256] are both globals. */
ifs = (uchar *)getenv("IFS");
@@ -3158,7 +3158,7 @@ void update_ifs_map(void)
/* most recursion does not come through here, the exeception is
* from builtin_source() */
-int parse_stream_outer(struct in_str *inp, int flag)
+static int parse_stream_outer(struct in_str *inp, int flag)
{
struct p_context ctx;
@@ -3292,7 +3292,7 @@ int u_boot_hush_start(void)
top_vars = malloc(sizeof(struct variables));
top_vars->name = "HUSH_VERSION";
top_vars->value = "0.01";
- top_vars->next = 0;
+ top_vars->next = NULL;
top_vars->flg_export = 0;
top_vars->flg_read_only = 1;
#ifdef CONFIG_NEEDS_MANUAL_RELOC
@@ -3628,7 +3628,8 @@ static char * make_string(char ** inp)
}
#ifdef __U_BOOT__
-int do_showvar (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_showvar(cmd_tbl_t *cmdtp, int flag, int argc,
+ char * const argv[])
{
int i, k;
int rcode = 0;
diff --git a/common/image.c b/common/image.c
index 750a98b6ba..df642e656c 100644
--- a/common/image.c
+++ b/common/image.c
@@ -1279,7 +1279,7 @@ void boot_fdt_add_mem_rsv_regions(struct lmb *lmb, void *fdt_blob)
int boot_relocate_fdt(struct lmb *lmb, char **of_flat_tree, ulong *of_size)
{
void *fdt_blob = *of_flat_tree;
- void *of_start = 0;
+ void *of_start = NULL;
char *fdt_high;
ulong of_len = 0;
int err;
@@ -1312,7 +1312,7 @@ int boot_relocate_fdt(struct lmb *lmb, char **of_flat_tree, ulong *of_size)
of_start =
(void *)(ulong) lmb_alloc_base(lmb, of_len, 0x1000,
(ulong)desired_addr);
- if (of_start == 0) {
+ if (of_start == NULL) {
puts("Failed using fdt_high value for Device Tree");
goto error;
}
@@ -1327,7 +1327,7 @@ int boot_relocate_fdt(struct lmb *lmb, char **of_flat_tree, ulong *of_size)
+ getenv_bootm_low());
}
- if (of_start == 0) {
+ if (of_start == NULL) {
puts("device tree - allocation error\n");
goto error;
}
@@ -1703,7 +1703,7 @@ int boot_get_fdt(int flag, int argc, char * const argv[],
return 0;
error:
- *of_flat_tree = 0;
+ *of_flat_tree = NULL;
*of_size = 0;
return 1;
}
diff --git a/common/main.c b/common/main.c
index 9507cec88b..592ce077d2 100644
--- a/common/main.c
+++ b/common/main.c
@@ -505,13 +505,13 @@ void reset_cmd_timeout(void)
#define HIST_MAX 20
#define HIST_SIZE CONFIG_SYS_CBSIZE
-static int hist_max = 0;
-static int hist_add_idx = 0;
+static int hist_max;
+static int hist_add_idx;
static int hist_cur = -1;
-unsigned hist_num = 0;
+static unsigned hist_num;
-char* hist_list[HIST_MAX];
-char hist_lines[HIST_MAX][HIST_SIZE + 1]; /* Save room for NULL */
+static char *hist_list[HIST_MAX];
+static char hist_lines[HIST_MAX][HIST_SIZE + 1]; /* Save room for NULL */
#define add_idx_minus_one() ((hist_add_idx == 0) ? hist_max : hist_add_idx-1)
diff --git a/common/update.c b/common/update.c
index 5b1a064c29..94d6a82aeb 100644
--- a/common/update.c
+++ b/common/update.c
@@ -37,6 +37,7 @@
#include <command.h>
#include <flash.h>
#include <net.h>
+#include <net/tftp.h>
#include <malloc.h>
/* env variable holding the location of the update file */
diff --git a/common/usb_storage.c b/common/usb_storage.c
index 0c2a4c718f..2d92ee1bb3 100644
--- a/common/usb_storage.c
+++ b/common/usb_storage.c
@@ -192,7 +192,7 @@ block_dev_desc_t *usb_stor_get_dev(int index)
}
#endif
-void usb_show_progress(void)
+static void usb_show_progress(void)
{
debug(".");
}
@@ -437,7 +437,7 @@ static int usb_stor_BBB_reset(struct us_data *us)
result = usb_control_msg(us->pusb_dev, usb_sndctrlpipe(us->pusb_dev, 0),
US_BBB_RESET,
USB_TYPE_CLASS | USB_RECIP_INTERFACE,
- 0, us->ifnum, 0, 0, USB_CNTL_TIMEOUT * 5);
+ 0, us->ifnum, NULL, 0, USB_CNTL_TIMEOUT * 5);
if ((result < 0) && (us->pusb_dev->status & USB_ST_STALLED)) {
USB_STOR_PRINTF("RESET:stall\n");
@@ -500,7 +500,7 @@ static int usb_stor_CB_reset(struct us_data *us)
* Set up the command for a BBB device. Note that the actual SCSI
* command is copied into cbw.CBWCDB.
*/
-int usb_stor_BBB_comdat(ccb *srb, struct us_data *us)
+static int usb_stor_BBB_comdat(ccb *srb, struct us_data *us)
{
int result;
int actlen;
@@ -548,7 +548,7 @@ int usb_stor_BBB_comdat(ccb *srb, struct us_data *us)
/* FIXME: we also need a CBI_command which sets up the completion
* interrupt, and waits for it
*/
-int usb_stor_CB_comdat(ccb *srb, struct us_data *us)
+static int usb_stor_CB_comdat(ccb *srb, struct us_data *us)
{
int result = 0;
int dir_in, retry;
@@ -617,7 +617,7 @@ int usb_stor_CB_comdat(ccb *srb, struct us_data *us)
}
-int usb_stor_CBI_get_status(ccb *srb, struct us_data *us)
+static int usb_stor_CBI_get_status(ccb *srb, struct us_data *us)
{
int timeout;
@@ -626,7 +626,7 @@ int usb_stor_CBI_get_status(ccb *srb, struct us_data *us)
(void *) &us->ip_data, us->irqmaxp, us->irqinterval);
timeout = 1000;
while (timeout--) {
- if ((volatile int *) us->ip_wanted == 0)
+ if ((volatile int *) us->ip_wanted == NULL)
break;
mdelay(10);
}
@@ -665,18 +665,18 @@ int usb_stor_CBI_get_status(ccb *srb, struct us_data *us)
#define USB_TRANSPORT_NOT_READY_RETRY 10
/* clear a stall on an endpoint - special for BBB devices */
-int usb_stor_BBB_clear_endpt_stall(struct us_data *us, __u8 endpt)
+static int usb_stor_BBB_clear_endpt_stall(struct us_data *us, __u8 endpt)
{
int result;
/* ENDPOINT_HALT = 0, so set value to 0 */
result = usb_control_msg(us->pusb_dev, usb_sndctrlpipe(us->pusb_dev, 0),
USB_REQ_CLEAR_FEATURE, USB_RECIP_ENDPOINT,
- 0, endpt, 0, 0, USB_CNTL_TIMEOUT * 5);
+ 0, endpt, NULL, 0, USB_CNTL_TIMEOUT * 5);
return result;
}
-int usb_stor_BBB_transport(ccb *srb, struct us_data *us)
+static int usb_stor_BBB_transport(ccb *srb, struct us_data *us)
{
int result, retry;
int dir_in;
@@ -798,7 +798,7 @@ again:
return result;
}
-int usb_stor_CB_transport(ccb *srb, struct us_data *us)
+static int usb_stor_CB_transport(ccb *srb, struct us_data *us)
{
int result, status;
ccb *psrb;
diff --git a/common/xyzModem.c b/common/xyzModem.c
index a1f955b9d7..f30b0020a3 100644
--- a/common/xyzModem.c
+++ b/common/xyzModem.c
@@ -100,7 +100,7 @@ static struct
#ifndef REDBOOT /*SB */
typedef int cyg_int32;
-int
+static int
CYGACC_COMM_IF_GETC_TIMEOUT (char chan, char *c)
{
#define DELAY 20
@@ -118,7 +118,7 @@ CYGACC_COMM_IF_GETC_TIMEOUT (char chan, char *c)
return 0;
}
-void
+static void
CYGACC_COMM_IF_PUTC (char x, char y)
{
putc (y);
@@ -165,7 +165,7 @@ _tolower (char c)
}
/* Parse (scan) a number */
-bool
+static bool
parse_num (char *s, unsigned long *val, char **es, char *delim)
{
bool first = true;