diff options
author | Terry Lv <r65388@freescale.com> | 2010-07-08 21:26:36 +0800 |
---|---|---|
committer | Terry Lv <r65388@freescale.com> | 2010-07-16 11:18:57 +0800 |
commit | c5f6bfc5b71f455171b22e7291c75da3a7704974 (patch) | |
tree | 0009f7e5289daa73f2c100b593c1da26a738eb0f /common/cmd_iim.c | |
parent | acce438960d7ba5312e5d26d828fd2875901304b (diff) | |
download | u-boot-imx-c5f6bfc5b71f455171b22e7291c75da3a7704974.zip u-boot-imx-c5f6bfc5b71f455171b22e7291c75da3a7704974.tar.gz u-boot-imx-c5f6bfc5b71f455171b22e7291c75da3a7704974.tar.bz2 |
ENGR00123924: Reconstructure fuse files and add fuse to mx53.
1. Reconstructure fuse. Move fuse files to common directory.
2. Read mac from fuse in fec.
3. Remove scc and srk command from fuse command.
4. Change fuse to iim.
5. Add fuse for mx53.
Signed-off-by: Terry Lv <r65388@freescale.com>
Diffstat (limited to 'common/cmd_iim.c')
-rw-r--r-- | common/cmd_iim.c | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/common/cmd_iim.c b/common/cmd_iim.c new file mode 100644 index 0000000..56e3804 --- /dev/null +++ b/common/cmd_iim.c @@ -0,0 +1,95 @@ +/* + * (C) Copyright 2008-2010 Freescale Semiconductor, Inc. + * + * Copyright 2007, Freescale Semiconductor, Inc + * Andy Fleming + * + * Based vaguely on the pxa mmc code: + * (C) Copyright 2003 + * Kyle Harris, Nexus Technologies, Inc. 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 + */ + +#include <linux/types.h> +#include <asm/io.h> +#include <command.h> +#include <common.h> +#include <asm/imx_iim.h> + +int do_iimops(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +{ + int bank = 0, + row = 0, + val = 0; + + if (argc < 3 || argc > 5) + goto err_rtn; + + if (strcmp(argv[1], "read") == 0) { + if (strcmp(argv[2], "fecmac") == 0) { + if (3 == argc) + iim_blow_func(argv[2], NULL); + else + goto err_rtn; + } else { + if (4 == argc) { + bank = simple_strtoul(argv[2], NULL, 16); + row = simple_strtoul(argv[3], NULL, 16); + + iim_read(bank, row); + } else + goto err_rtn; + } + } else if (strcmp(argv[1], "blow") == 0) { + if (strcmp(argv[2], "fecmac") == 0) { + if (4 == argc) + iim_blow_func(argv[2], argv[3]); + else + goto err_rtn; + } else { + if (5 == argc) { + bank = simple_strtoul(argv[2], NULL, 16); + row = simple_strtoul(argv[3], NULL, 16); + val = simple_strtoul(argv[4], NULL, 16); + + iim_blow(bank, row, val); + } else + goto err_rtn; + } + } else + goto err_rtn; + + return 0; +err_rtn: + printf("Invalid parameters!\n"); + printf("It is too dangeous for you to use iim command.\n"); + return 1; +} + +U_BOOT_CMD( + iim, 5, 1, do_iimops, + "IIM sub system", + "Warning: all numbers in parameter are in hex format!\n" + "iim read <bank> <row> - Read some fuses\n" + "iim read fecmac - Read FEC Mac address\n" + "iim blow <bank> <row> <value> - Blow some fuses\n" + "iim blow fecmac <0x##:0x##:0x##:0x##:0x##:0x##>" + "- Blow FEC Mac address"); + |