mirror of
https://github.com/Ysurac/openmptcprouter.git
synced 2025-03-09 15:40:20 +00:00
Fix for RUTX platform
This commit is contained in:
parent
ccdb64ad45
commit
59bc57d5d5
7254 changed files with 1810270 additions and 7 deletions
55
root/package/utils/sysupgrade-helper/src/tools/env/Makefile
vendored
Normal file
55
root/package/utils/sysupgrade-helper/src/tools/env/Makefile
vendored
Normal file
|
@ -0,0 +1,55 @@
|
|||
#
|
||||
# (C) Copyright 2002-2006
|
||||
# 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
|
||||
#
|
||||
|
||||
include $(TOPDIR)/config.mk
|
||||
|
||||
HOSTSRCS := $(SRCTREE)/lib/crc32.c fw_env.c fw_env_main.c
|
||||
HEADERS := fw_env.h
|
||||
|
||||
# Compile for a hosted environment on the target
|
||||
HOSTCPPFLAGS = -idirafter $(SRCTREE)/include \
|
||||
-idirafter $(OBJTREE)/include2 \
|
||||
-idirafter $(OBJTREE)/include \
|
||||
-DUSE_HOSTCC
|
||||
|
||||
ifeq ($(MTD_VERSION),old)
|
||||
HOSTCPPFLAGS += -DMTD_OLD
|
||||
endif
|
||||
|
||||
all: $(obj)fw_printenv
|
||||
|
||||
# Some files complain if compiled with -pedantic, use HOSTCFLAGS_NOPED
|
||||
$(obj)fw_printenv: $(HOSTSRCS) $(HEADERS)
|
||||
$(HOSTCC) $(HOSTCFLAGS_NOPED) $(HOSTLDFLAGS) -o $@ $(HOSTSRCS)
|
||||
$(HOSTSTRIP) $@
|
||||
|
||||
clean:
|
||||
rm -f $(obj)fw_printenv
|
||||
|
||||
#########################################################################
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
sinclude $(obj).depend
|
||||
|
||||
#########################################################################
|
57
root/package/utils/sysupgrade-helper/src/tools/env/README
vendored
Normal file
57
root/package/utils/sysupgrade-helper/src/tools/env/README
vendored
Normal file
|
@ -0,0 +1,57 @@
|
|||
|
||||
This is a demo implementation of a Linux command line tool to access
|
||||
the U-Boot's environment variables.
|
||||
|
||||
In the current version, there is an issue in cross-compilation.
|
||||
In order to cross-compile fw_printenv, run
|
||||
make HOSTCC=<your CC cross-compiler> env
|
||||
in the root directory of the U-Boot distribution. For example,
|
||||
make HOSTCC=arm-linux-gcc env
|
||||
|
||||
For the run-time utiltity configuration uncomment the line
|
||||
#define CONFIG_FILE "/etc/fw_env.config"
|
||||
in fw_env.h.
|
||||
|
||||
For building against older versions of the MTD headers (meaning before
|
||||
v2.6.8-rc1) it is required to pass the argument "MTD_VERSION=old" to
|
||||
make.
|
||||
|
||||
See comments in the fw_env.config file for definitions for the
|
||||
particular board.
|
||||
|
||||
Configuration can also be done via #defines in the fw_env.h file. The
|
||||
following lines are relevant:
|
||||
|
||||
#define HAVE_REDUND /* For systems with 2 env sectors */
|
||||
#define DEVICE1_NAME "/dev/mtd1"
|
||||
#define DEVICE2_NAME "/dev/mtd2"
|
||||
#define DEVICE1_OFFSET 0x0000
|
||||
#define ENV1_SIZE 0x4000
|
||||
#define DEVICE1_ESIZE 0x4000
|
||||
#define DEVICE1_ENVSECTORS 2
|
||||
#define DEVICE2_OFFSET 0x0000
|
||||
#define ENV2_SIZE 0x4000
|
||||
#define DEVICE2_ESIZE 0x4000
|
||||
#define DEVICE2_ENVSECTORS 2
|
||||
|
||||
Un-define HAVE_REDUND, if you want to use the utlities on a system
|
||||
that does not have support for redundant environment enabled.
|
||||
If HAVE_REDUND is undefined, DEVICE2_NAME is ignored,
|
||||
as is ENV2_SIZE and DEVICE2_ESIZE.
|
||||
|
||||
The DEVICEx_NAME constants define which MTD character devices are to
|
||||
be used to access the environment.
|
||||
|
||||
The DEVICEx_OFFSET constants define the environment offset within the
|
||||
MTD character device.
|
||||
|
||||
ENVx_SIZE defines the size in bytes taken by the environment, which
|
||||
may be less then flash sector size, if the environment takes less
|
||||
then 1 sector.
|
||||
|
||||
DEVICEx_ESIZE defines the size of the first sector in the flash
|
||||
partition where the environment resides.
|
||||
|
||||
DEVICEx_ENVSECTORS defines the number of sectors that may be used for
|
||||
this environment instance. On NAND this is used to limit the range
|
||||
within which bad blocks are skipped, on NOR it is not used.
|
1336
root/package/utils/sysupgrade-helper/src/tools/env/fw_env.c
vendored
Normal file
1336
root/package/utils/sysupgrade-helper/src/tools/env/fw_env.c
vendored
Normal file
File diff suppressed because it is too large
Load diff
19
root/package/utils/sysupgrade-helper/src/tools/env/fw_env.config
vendored
Normal file
19
root/package/utils/sysupgrade-helper/src/tools/env/fw_env.config
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
# Configuration file for fw_(printenv/saveenv) utility.
|
||||
# Up to two entries are valid, in this case the redundant
|
||||
# environment sector is assumed present.
|
||||
# Notice, that the "Number of sectors" is ignored on NOR and SPI-dataflash.
|
||||
# Futhermore, if the Flash sector size is ommitted, this value is assumed to
|
||||
# be the same as the Environment size, which is valid for NOR and SPI-dataflash
|
||||
|
||||
# NOR example
|
||||
# MTD device name Device offset Env. size Flash sector size Number of sectors
|
||||
/dev/mtd1 0x0000 0x4000 0x4000
|
||||
/dev/mtd2 0x0000 0x4000 0x4000
|
||||
|
||||
# MTD SPI-dataflash example
|
||||
# MTD device name Device offset Env. size Flash sector size Number of sectors
|
||||
#/dev/mtd5 0x4200 0x4200
|
||||
#/dev/mtd6 0x4200 0x4200
|
||||
|
||||
# NAND example
|
||||
#/dev/mtd0 0x4000 0x4000 0x20000 2
|
60
root/package/utils/sysupgrade-helper/src/tools/env/fw_env.h
vendored
Normal file
60
root/package/utils/sysupgrade-helper/src/tools/env/fw_env.h
vendored
Normal file
|
@ -0,0 +1,60 @@
|
|||
/*
|
||||
* (C) Copyright 2002-2008
|
||||
* 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
|
||||
*/
|
||||
|
||||
/*
|
||||
* To build the utility with the static configuration
|
||||
* comment out the next line.
|
||||
* See included "fw_env.config" sample file
|
||||
* for notes on configuration.
|
||||
*/
|
||||
#define CONFIG_FILE "/etc/fw_env.config"
|
||||
|
||||
#define HAVE_REDUND /* For systems with 2 env sectors */
|
||||
#define DEVICE1_NAME "/dev/mtd1"
|
||||
#define DEVICE2_NAME "/dev/mtd2"
|
||||
#define DEVICE1_OFFSET 0x0000
|
||||
#define ENV1_SIZE 0x4000
|
||||
#define DEVICE1_ESIZE 0x4000
|
||||
#define DEVICE1_ENVSECTORS 2
|
||||
#define DEVICE2_OFFSET 0x0000
|
||||
#define ENV2_SIZE 0x4000
|
||||
#define DEVICE2_ESIZE 0x4000
|
||||
#define DEVICE2_ENVSECTORS 2
|
||||
|
||||
#define CONFIG_BAUDRATE 115200
|
||||
#define CONFIG_BOOTDELAY 5 /* autoboot after 5 seconds */
|
||||
#define CONFIG_BOOTCOMMAND \
|
||||
"bootp; " \
|
||||
"setenv bootargs root=/dev/nfs nfsroot=${serverip}:${rootpath} " \
|
||||
"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; " \
|
||||
"bootm"
|
||||
|
||||
extern int fw_printenv(int argc, char *argv[]);
|
||||
extern char *fw_getenv (char *name);
|
||||
extern int fw_setenv (int argc, char *argv[]);
|
||||
extern int fw_parse_script(char *fname);
|
||||
extern int fw_env_open(void);
|
||||
extern int fw_env_write(char *name, char *value);
|
||||
extern int fw_env_close(void);
|
||||
|
||||
extern unsigned long crc32 (unsigned long, const unsigned char *, unsigned);
|
141
root/package/utils/sysupgrade-helper/src/tools/env/fw_env_main.c
vendored
Normal file
141
root/package/utils/sysupgrade-helper/src/tools/env/fw_env_main.c
vendored
Normal file
|
@ -0,0 +1,141 @@
|
|||
/*
|
||||
* (C) Copyright 2000-2008
|
||||
* 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
|
||||
*/
|
||||
|
||||
/*
|
||||
* Command line user interface to firmware (=U-Boot) environment.
|
||||
*
|
||||
* Implements:
|
||||
* fw_printenv [[ -n name ] | [ name ... ]]
|
||||
* - prints the value of a single environment variable
|
||||
* "name", the ``name=value'' pairs of one or more
|
||||
* environment variables "name", or the whole
|
||||
* environment if no names are specified.
|
||||
* fw_setenv name [ value ... ]
|
||||
* - If a name without any values is given, the variable
|
||||
* with this name is deleted from the environment;
|
||||
* otherwise, all "value" arguments are concatenated,
|
||||
* separated by single blank characters, and the
|
||||
* resulting string is assigned to the environment
|
||||
* variable "name"
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <getopt.h>
|
||||
#include "fw_env.h"
|
||||
|
||||
#define CMD_PRINTENV "fw_printenv"
|
||||
#define CMD_SETENV "fw_setenv"
|
||||
|
||||
static struct option long_options[] = {
|
||||
{"script", required_argument, NULL, 's'},
|
||||
{"help", no_argument, NULL, 'h'},
|
||||
{NULL, 0, NULL, 0}
|
||||
};
|
||||
|
||||
void usage(void)
|
||||
{
|
||||
|
||||
fprintf(stderr, "fw_printenv/fw_setenv, "
|
||||
"a command line interface to U-Boot environment\n\n"
|
||||
"usage:\tfw_printenv [-n] [variable name]\n"
|
||||
"\tfw_setenv [variable name] [variable value]\n"
|
||||
"\tfw_setenv -s [ file ]\n"
|
||||
"\tfw_setenv -s - < [ file ]\n\n"
|
||||
"The file passed as argument contains only pairs "
|
||||
"name / value\n"
|
||||
"Example:\n"
|
||||
"# Any line starting with # is treated as comment\n"
|
||||
"\n"
|
||||
"\t netdev eth0\n"
|
||||
"\t kernel_addr 400000\n"
|
||||
"\t var1\n"
|
||||
"\t var2 The quick brown fox jumps over the "
|
||||
"lazy dog\n"
|
||||
"\n"
|
||||
"A variable without value will be dropped. It is possible\n"
|
||||
"to put any number of spaces between the fields, but any\n"
|
||||
"space inside the value is treated as part of the value "
|
||||
"itself.\n\n"
|
||||
);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
char *p;
|
||||
char *cmdname = *argv;
|
||||
char *script_file = NULL;
|
||||
int c;
|
||||
|
||||
if ((p = strrchr (cmdname, '/')) != NULL) {
|
||||
cmdname = p + 1;
|
||||
}
|
||||
|
||||
while ((c = getopt_long (argc, argv, "ns:h",
|
||||
long_options, NULL)) != EOF) {
|
||||
switch (c) {
|
||||
case 'n':
|
||||
/* handled in fw_printenv */
|
||||
break;
|
||||
case 's':
|
||||
script_file = optarg;
|
||||
break;
|
||||
case 'h':
|
||||
usage();
|
||||
return EXIT_SUCCESS;
|
||||
default: /* '?' */
|
||||
fprintf(stderr, "Try `%s --help' for more information."
|
||||
"\n", cmdname);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (strcmp(cmdname, CMD_PRINTENV) == 0) {
|
||||
|
||||
if (fw_printenv (argc, argv) != 0)
|
||||
return EXIT_FAILURE;
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
|
||||
} else if (strcmp(cmdname, CMD_SETENV) == 0) {
|
||||
if (!script_file) {
|
||||
if (fw_setenv(argc, argv) != 0)
|
||||
return EXIT_FAILURE;
|
||||
} else {
|
||||
if (fw_parse_script(script_file) != 0)
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
|
||||
}
|
||||
|
||||
fprintf (stderr,
|
||||
"Identity crisis - may be called as `" CMD_PRINTENV
|
||||
"' or as `" CMD_SETENV "' but not as `%s'\n",
|
||||
cmdname);
|
||||
return EXIT_FAILURE;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue