Commit b0fce99b authored by wdenk's avatar wdenk

Fix some missing commands, cleanup header files

(autoscript, bmp, bsp, fat, mmc, nand, portio, ...)
parent eeacb89c
======================================================================
Changes since U-Boot 0.4.0:
Changes for U-Boot 0.4.1:
======================================================================
* Fix some missing commands, cleanup header files
(autoscript, bmp, bsp, fat, mmc, nand, portio, ...)
* Rewrite command lookup and help command (fix problems with bubble
sort when sorting command name list). Minor cleanup here and there.
......
......@@ -22,7 +22,6 @@ Skeleton NIC driver for Etherboot
#include <common.h>
#include <malloc.h>
#include <cmd_bsp.h>
#include <galileo/gt64260R.h>
#include <galileo/core.h>
#include <asm/cache.h>
......
......@@ -119,6 +119,10 @@ SECTIONS
_edata = .;
PROVIDE (edata = .);
__u_boot_cmd_start = .;
.u_boot_cmd : { *(.u_boot_cmd) }
__u_boot_cmd_end = .;
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;
......
......@@ -27,7 +27,6 @@
#include <command.h>
#include <net.h>
#include <asm/iopin_8260.h>
#include <cmd_bsp.h>
/*-----------------------------------------------------------------------
* Board Special Commands: FPGA load/store, EEPROM erase
......
......@@ -26,7 +26,6 @@
#include <commproc.h>
#include <i2c.h>
#include <command.h>
#include <cmd_bsp.h>
/* ------------------------------------------------------------------------- */
......
......@@ -28,7 +28,7 @@ LIB = lib$(BOARD).a
OBJS = $(BOARD).o flash.o
$(LIB): .depend $(OBJS)
$(AR) crv $@ $^
$(AR) crv $@ $(OBJS)
#########################################################################
......
......@@ -102,6 +102,10 @@ SECTIONS
_edata = .;
PROVIDE (edata = .);
__u_boot_cmd_start = .;
.u_boot_cmd : { *(.u_boot_cmd) }
__u_boot_cmd_end = .;
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;
......
......@@ -27,7 +27,6 @@
#if (CONFIG_COMMANDS & CFG_CMD_BSP)
#include "vpd.h"
#include "cmd_bsp.h"
/* ======================================================================
* Interpreter command to retrieve board specific Vital Product Data, "VPD"
......
......@@ -47,7 +47,6 @@
#include <hush.h>
#endif
#define AUTOSCRIPT_MAGIC 0x09011962
#if defined(CONFIG_AUTOSCRIPT) || \
(CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT )
......
......@@ -73,6 +73,13 @@ int do_bmp(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
}
}
cmd_tbl_t U_BOOT_CMD(BMP) = MK_CMD_ENTRY(
"bmp", 3, 1, do_bmp,
"bmp - manipulate BMP image data\n",
"info <imageAddr> - display image info\n"
"bmp display <imageAddr> - display image\n"
);
/*
* Subroutine: bmp_info
*
......
......@@ -26,7 +26,6 @@
*/
#include <common.h>
#include <command.h>
#include <cmd_autoscript.h>
#include <net.h>
#include <syscall.h>
......
......@@ -26,7 +26,6 @@
*/
#include <common.h>
#include <command.h>
#include <cmd_autoscript.h>
#include <s_record.h>
#include <net.h>
#include <ata.h>
......@@ -63,6 +62,14 @@ int do_fat_fsload (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
return size;
}
cmd_tbl_t U_BOOT_CMD(FATLOAD) = MK_CMD_ENTRY(
"fatload", 4, 0, do_fat_fsload,
"fatload - load binary file from a dos filesystem\n",
"[ off ] [ filename ]\n"
" - load binary file from dos filesystem\n"
" with offset 'off'\n"
);
int do_fat_ls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
{
char *filename = "/";
......@@ -76,6 +83,13 @@ int do_fat_ls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
return (ret);
}
cmd_tbl_t U_BOOT_CMD(FATLS) = MK_CMD_ENTRY(
"fatls", 2, 1, do_fat_ls,
"fatls - list files in a directory (default /)\n",
"[ directory ]\n"
" - list files in a directory\n"
);
int do_fat_fsinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
{
int ret;
......@@ -87,6 +101,13 @@ int do_fat_fsinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
return (ret);
}
cmd_tbl_t U_BOOT_CMD(FATINFO) = MK_CMD_ENTRY(
"fatinfo", 1, 1, do_fat_fsinfo,
"fatinfo - print information about filesystem\n",
"\n"
" - print information about filesystem\n"
);
#ifdef NOT_IMPLEMENTED_YET
/* find first device whose first partition is a DOS filesystem */
int find_fat_partition (void)
......
......@@ -27,7 +27,6 @@
*/
#include <common.h>
#include <command.h>
#include <cmd_bsp.h>
#if (CONFIG_COMMANDS & CFG_CMD_NET)
#include <net.h>
#endif
......
......@@ -39,7 +39,6 @@
#endif
#include <ide.h>
#include <ata.h>
#include <cmd_disk.h>
#ifdef CONFIG_STATUS_LED
# include <status_led.h>
#endif
......
......@@ -26,7 +26,6 @@
*/
#include <common.h>
#include <command.h>
#include <cmd_autoscript.h>
#include <s_record.h>
#include <net.h>
#include <syscall.h>
......
......@@ -37,4 +37,10 @@ int do_mmc (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
return 0;
}
cmd_tbl_t U_BOOT_CMD(MMCINIT) = MK_CMD_ENTRY(
"mmcinit", 1, 0, do_mmc,
"mmcinit - init mmc card\n",
NULL
);
#endif /* CFG_CMD_MMC */
......@@ -247,6 +247,21 @@ int do_nand (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
}
}
cmd_tbl_t U_BOOT_CMD(NAND) = MK_CMD_ENTRY(
"nand", 5, 1, do_nand,
"nand - NAND sub-system\n",
"info - show available NAND devices\n"
"nand device [dev] - show or set current device\n"
"nand read[.jffs2] addr off size\n"
"nand write[.jffs2] addr off size - read/write `size' bytes starting\n"
" at offset `off' to/from memory address `addr'\n"
"nand erase [clean] [off size] - erase `size' bytes from\n"
" offset `off' (entire device if not specified)\n"
"nand bad - show bad blocks\n"
"nand read.oob addr off size - read out-of-band data\n"
"nand write.oob addr off size - read out-of-band data\n"
);
int do_nandboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
{
char *boot_device = NULL;
......@@ -348,6 +363,12 @@ int do_nandboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
return rcode;
}
cmd_tbl_t U_BOOT_CMD(NBOOT) = MK_CMD_ENTRY(
"nboot", 4, 1, do_nandboot,
"nboot - boot from NAND device\n",
"loadAddr dev\n"
);
/* returns 0 if block containing pos is OK:
* valid erase block and
* not marked bad, or no bad mark position is specified
......
......@@ -26,7 +26,6 @@
*/
#include <common.h>
#include <command.h>
#include <cmd_autoscript.h>
#include <net.h>
#if (CONFIG_COMMANDS & CFG_CMD_NET)
......
......@@ -29,7 +29,6 @@
#include <common.h>
#include <command.h>
#include <cmd_portio.h>
#if (CONFIG_COMMANDS & CFG_CMD_PORTIO)
......@@ -96,6 +95,12 @@ int do_portio_out (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
return 0;
}
cmd_tbl_t U_BOOT_CMD(PORTIO_OUT) = MK_CMD_ENTRY(
"out", 3, 1, do_portio_out,
"out - write datum to IO port\n",
"[.b, .w, .l] port value\n - output to IO port\n"
);
int do_portio_in (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
{
uint addr = in_last_addr;
......@@ -154,4 +159,11 @@ int do_portio_in (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
return 0;
}
cmd_tbl_t U_BOOT_CMD(PORTIO_IN) = MK_CMD_ENTRY(
"in", 2, 1, do_portio_in,
"in - read data from an IO port\n",
"[.b, .w, .l] port\n"
" - read datum from IO port\n"
);
#endif /* CFG_CMD_PORTIO */
......@@ -33,7 +33,6 @@
#include <asm/processor.h>
#include <scsi.h>
#include <image.h>
#include <cmd_disk.h>
#include <pci.h>
......
......@@ -31,7 +31,6 @@
#if (CONFIG_COMMANDS & CFG_CMD_USB)
#include <usb.h>
#include <cmd_disk.h>
#undef CMD_USB_DEBUG
......
......@@ -36,6 +36,12 @@ do_version (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
return 0;
}
cmd_tbl_t U_BOOT_CMD(VERS) = MK_CMD_ENTRY(
"version", 1, 1, do_version,
"version - print monitor version\n",
NULL
);
int
do_echo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
{
......@@ -61,6 +67,13 @@ do_echo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
return 0;
}
cmd_tbl_t U_BOOT_CMD(ECHO) = MK_CMD_ENTRY(
"echo", CFG_MAXARGS, 1, do_echo,
"echo - echo args to console\n",
"[args..]\n"
" - echo args to console; \\c suppresses newline\n"
);
/*
* Use puts() instead of printf() to avoid printf buffer overflow
* for long help messages
......@@ -162,19 +175,6 @@ cmd_tbl_t U_BOOT_CMD(QUES) = MK_CMD_ENTRY(
NULL
);
cmd_tbl_t U_BOOT_CMD(VERS) = MK_CMD_ENTRY(
"version", 1, 1, do_version,
"version - print monitor version\n",
NULL
);
cmd_tbl_t U_BOOT_CMD(ECHO) = MK_CMD_ENTRY(
"echo", CFG_MAXARGS, 1, do_echo,
"echo - echo args to console\n",
"[args..]\n"
" - echo args to console; \\c suppresses newline\n"
);
/***************************************************************************
* find command table entry for a command
*/
......
......@@ -24,7 +24,6 @@
#include <common.h>
#include <command.h>
#include <ide.h>
#include <cmd_disk.h>
#undef PART_DEBUG
......
......@@ -24,7 +24,6 @@
#include <common.h>
#include <command.h>
#include <ide.h>
#include <cmd_disk.h>
#include "part_amiga.h"
#if ((CONFIG_COMMANDS & CFG_CMD_IDE) || (CONFIG_COMMANDS & CFG_CMD_SCSI)) && defined(CONFIG_AMIGA_PARTITION)
......
......@@ -33,7 +33,6 @@
#include <common.h>
#include <command.h>
#include <ide.h>
#include <cmd_disk.h>
#include "part_dos.h"
#if ((CONFIG_COMMANDS & CFG_CMD_IDE) || (CONFIG_COMMANDS & CFG_CMD_SCSI)) && defined(CONFIG_DOS_PARTITION)
......
......@@ -23,7 +23,6 @@
#include <common.h>
#include <command.h>
#include <cmd_disk.h>
#include "part_iso.h"
#if ((CONFIG_COMMANDS & CFG_CMD_IDE) || (CONFIG_COMMANDS & CFG_CMD_SCSI)) && defined(CONFIG_ISO_PARTITION)
......
......@@ -32,7 +32,6 @@
#include <common.h>
#include <command.h>
#include <ide.h>
#include <cmd_disk.h>
#include "part_mac.h"
#if ((CONFIG_COMMANDS & CFG_CMD_IDE) || (CONFIG_COMMANDS & CFG_CMD_SCSI)) && defined(CONFIG_MAC_PARTITION)
......
/*
* (C) Copyright 2001
* Kyle Harris, kharris@nexus-tech.net
*
* See file CREDITS for list of people who contributed to this
* project.
*
* 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
*/
#ifndef _CMD_AUTOSCRIPT_H_
#define _CMD_AUTOSCRIPT_H_
#define AUTOSCRIPT_MAGIC 0x09011962
#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT)
int autoscript (ulong addr);
#endif
#endif /* _CMD_AUTOSCRIPT_H_ */
/* (C) Copyright 2002
* Detlev Zundel, DENX Software Engineering, dzu@denx.de.
*
* 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
*/
/*
* Bitmap display support
*/
#ifndef _CMD_BMP_H
#define _CMD_BMP_H
#include <common.h>
#include <command.h>
#if (CONFIG_COMMANDS & CFG_CMD_BMP)
#define CMD_TBL_BMP MK_CMD_TBL_ENTRY( \
"bmp", 3, 3, 1, do_bmp, \
"bmp - manipulate BMP image data\n", \
"info <imageAddr> - display image info\n" \
"bmp display <imageAddr> - display image\n" \
),
int do_bmp (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
#else
#define CMD_TBL_BMP
#endif
#endif /* _CMD_BMP_H */
/*
* (C) Copyright 2001, 2002
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*
* See file CREDITS for list of people who contributed to this
* project.
*
* 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
*/
#ifndef _CMD_BSP_H_
#define _CMD_BSP_H_
/* do not edit this file */
#endif /* _CMD_BSP_H_ */
/*
* (C) Copyright 2000
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*
* See file CREDITS for list of people who contributed to this
* project.
*
* 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
*/
/*
* Harddisk support
*/
#ifndef _CMD_DISK_H
#define _CMD_DISK_H
#include <common.h>
#include <command.h>
/*
* Type string for U-Boot bootable partitions
*/
#define BOOT_PART_TYPE "U-Boot" /* primary boot partition type */
#define BOOT_PART_COMP "PPCBoot" /* PPCBoot compatibility type */
#if 0
typedef struct disk_partition {
ulong start; /* # of first block in partition */
ulong size; /* number of blocks in partition */
ulong blksz; /* block size in bytes */
uchar name[32]; /* partition name */
uchar type[32]; /* string type description */
} disk_partition_t;
int get_partition_info (block_dev_desc_t * dev_desc, int part, disk_partition_t *info);
#ifdef CONFIG_MAC_PARTITION
int get_partition_info_mac (block_dev_desc_t * dev_desc, int part, disk_partition_t *info);
#endif
#ifdef CONFIG_DOS_PARTITION
int get_partition_info_dos (block_dev_desc_t * dev_desc, int part, disk_partition_t *info);
#endif
#endif /* 0 */
#endif /* _CMD_DISK_H */
/*
* (C) Copyright 2002
* Richard Jones, rjones@nexus-tech.net
*
* See file CREDITS for list of people who contributed to this
* project.
*
* 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
*/
/*
* FAT support
*/
#ifndef _CMD_FAT_H
#define _CMD_FAT_H
#if (CONFIG_COMMANDS & CFG_CMD_FAT)
int do_fat_fsload (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
int do_fat_fsinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
int do_fat_ls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
int do_fat_dump (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
#define CMD_TBL_FAT MK_CMD_TBL_ENTRY( \
"fatload", 5, 4, 0, do_fat_fsload, \
"fatload - load binary file from a dos filesystem\n", \
"[ off ] [ filename ]\n" \
" - load binary file from dos filesystem\n" \
" with offset 'off'\n" \
), \
MK_CMD_TBL_ENTRY( \
"fatinfo", 5, 1, 1, do_fat_fsinfo, \
"fatinfo - print information about filesystem\n", \
"\n" \
" - print information about filesystem\n" \
), \
MK_CMD_TBL_ENTRY( \
"fatls", 2, 2, 1, do_fat_ls, \
"fatls - list files in a directory (default /)\n", \
"[ directory ]\n" \
" - list files in a directory.\n" \
),
#else
#define CMD_TBL_FAT
#endif /* CFG_CMD_FAT */
#endif /* _CMD_FAT_H */
/*
*
* See file CREDITS for list of people who contributed to this
* project.
*
* 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
*/
#ifndef _CMD_MMC_H_
#define _CMD_MMC_H_
#include <command.h>
#if (CONFIG_COMMANDS & CFG_CMD_MMC)
#define CMD_TBL_MMC MK_CMD_TBL_ENTRY( \
"mmcinit", 4, 1, 0, do_mmc, \
"mmcinit - init mmc card\n", \
),
#else
#define CMD_TBL_MMC
#endif
int do_mmc (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
#endif /* _CMD_MMC_H_ */
/*
* 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
*/
/*
* NAND support
*/
#ifndef _CMD_NAND_H
#define _CMD_NAND_H
#include <common.h>
#include <command.h>
#if (CONFIG_COMMANDS & CFG_CMD_NAND)
#define CMD_TBL_NAND MK_CMD_TBL_ENTRY( \
"nand", 3, 5, 1, do_nand, \
"nand - NAND sub-system\n", \
"info - show available NAND devices\n" \
"nand device [dev] - show or set current device\n" \
"nand read[.jffs2] addr off size\n" \
"nand write[.jffs2] addr off size - read/write `size' bytes starting\n" \
" at offset `off' to/from memory address `addr'\n" \
"nand erase [clean] [off size] - erase `size' bytes from\n" \
" offset `off' (entire device if not specified)\n" \
"nand bad - show bad blocks\n" \
"nand read.oob addr off size - read out-of-band data\n" \
"nand write.oob addr off size - read out-of-band data\n" \
),
#define CMD_TBL_NANDBOOT MK_CMD_TBL_ENTRY( \
"nboot", 4, 4, 1, do_nandboot, \
"nboot - boot from NAND device\n", \
"loadAddr dev\n" \
),
int do_nand (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
int do_nandboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
#else
#define CMD_TBL_NAND
#define CMD_TBL_NANDBOOT
#endif
#endif /* _CMD_NAND_H */
/*
* (C) Copyright 2003
* Marc Singer, elf@buici.com
*
* See file CREDITS for list of people who contributed to this
* project.
*
* 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
*/
/*
* Memory Functions
*/
#ifndef _CMD_PORTIO_H
#define _CMD_PORTIO_H
#if (CONFIG_COMMANDS & CFG_CMD_PORTIO)
#define CMD_TBL_PORTIO_OUT MK_CMD_TBL_ENTRY( \
"out", 3, 3, 1, do_portio_out, \
"out - write datum to IO port\n", \
"[.b, .w, .l] port value\n - output to IO port\n" \
),
#define CMD_TBL_PORTIO_IN MK_CMD_TBL_ENTRY( \
"in", 2, 2, 1, do_portio_in, \
"in - read data from an IO port\n", \
"[.b, .w, .l] port\n" \
" - read datum from IO port\n" \
),
int do_portio_out (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
int do_portio_in (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
#else
#define CMD_TBL_PORTIO_OUT
#define CMD_TBL_PORTIO_IN
#endif /* CFG_CMD_PORTIO */