mirror of
git://projects.qi-hardware.com/xburst-tools.git
synced 2024-11-25 18:05:00 +02:00
Merge branch 'master' of git@github.com:xiangfu/inflash
This commit is contained in:
commit
b047f76906
@ -1,6 +0,0 @@
|
||||
We move kernel code to github.com
|
||||
|
||||
= Info =
|
||||
Public Clone URL:
|
||||
git clone git@github.com:xiangfu/pi-linux-kernel-2.6.24.3.git
|
||||
|
@ -1,5 +0,0 @@
|
||||
I create git repos at github.com
|
||||
|
||||
= Info =
|
||||
Public Clone URL: git://github.com/xiangfu/pi-u-boot.git
|
||||
git clone git://github.com/xiangfu/pi-u-boot.git
|
@ -1,4 +0,0 @@
|
||||
#
|
||||
# Regular cron jobs for the inflash package
|
||||
#
|
||||
0 4 * * * root [ -x /usr/bin/inflash_maintenance ] && /usr/bin/inflash_maintenance
|
@ -1,10 +0,0 @@
|
||||
# Defaults for inflash initscript
|
||||
# sourced by /etc/init.d/inflash
|
||||
# installed at /etc/default/inflash by the maintainer scripts
|
||||
|
||||
#
|
||||
# This is a POSIX shell fragment
|
||||
#
|
||||
|
||||
# Additional options that are passed to the Daemon.
|
||||
DAEMON_OPTS=""
|
@ -1,20 +0,0 @@
|
||||
Document: inflash
|
||||
Title: Debian inflash Manual
|
||||
Author: <insert document author here>
|
||||
Abstract: This manual describes what inflash is
|
||||
and how it can be used to
|
||||
manage online manuals on Debian systems.
|
||||
Section: unknown
|
||||
|
||||
Format: debiandoc-sgml
|
||||
Files: /usr/share/doc/inflash/inflash.sgml.gz
|
||||
|
||||
Format: postscript
|
||||
Files: /usr/share/doc/inflash/inflash.ps.gz
|
||||
|
||||
Format: text
|
||||
Files: /usr/share/doc/inflash/inflash.text.gz
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/inflash/html/index.html
|
||||
Files: /usr/share/doc/inflash/html/*.html
|
@ -1,296 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Example init.d script with LSB support.
|
||||
#
|
||||
# Please read this init.d carefully and modify the sections to
|
||||
# adjust it to the program you want to run.
|
||||
#
|
||||
# Copyright (c) 2007 Javier Fernandez-Sanguino <jfs@debian.org>
|
||||
#
|
||||
# This is free software; you may 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,
|
||||
# or (at your option) any later version.
|
||||
#
|
||||
# This 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 with
|
||||
# the Debian operating system, in /usr/share/common-licenses/GPL; if
|
||||
# not, write to the Free Software Foundation, Inc., 59 Temple Place,
|
||||
# Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: inflash
|
||||
# Required-Start: $network $local_fs
|
||||
# Required-Stop:
|
||||
# Should-Start: $named
|
||||
# Should-Stop:
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: <Enter a short description of the sortware>
|
||||
# Description: <Enter a long description of the software>
|
||||
# <...>
|
||||
# <...>
|
||||
### END INIT INFO
|
||||
|
||||
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
||||
|
||||
DAEMON=/usr/sbin/inflash # Introduce the server's location here
|
||||
NAME=#PACKAGE # Introduce the short server's name here
|
||||
DESC=#PACKAGE # Introduce a short description here
|
||||
LOGDIR=/var/log/inflash # Log directory to use
|
||||
|
||||
PIDFILE=/var/run/$NAME.pid
|
||||
|
||||
test -x $DAEMON || exit 0
|
||||
|
||||
. /lib/lsb/init-functions
|
||||
|
||||
# Default options, these can be overriden by the information
|
||||
# at /etc/default/$NAME
|
||||
DAEMON_OPTS="" # Additional options given to the server
|
||||
|
||||
DIETIME=10 # Time to wait for the server to die, in seconds
|
||||
# If this value is set too low you might not
|
||||
# let some servers to die gracefully and
|
||||
# 'restart' will not work
|
||||
|
||||
#STARTTIME=2 # Time to wait for the server to start, in seconds
|
||||
# If this value is set each time the server is
|
||||
# started (on start or restart) the script will
|
||||
# stall to try to determine if it is running
|
||||
# If it is not set and the server takes time
|
||||
# to setup a pid file the log message might
|
||||
# be a false positive (says it did not start
|
||||
# when it actually did)
|
||||
|
||||
LOGFILE=$LOGDIR/$NAME.log # Server logfile
|
||||
#DAEMONUSER=inflash # Users to run the daemons as. If this value
|
||||
# is set start-stop-daemon will chuid the server
|
||||
|
||||
# Include defaults if available
|
||||
if [ -f /etc/default/$NAME ] ; then
|
||||
. /etc/default/$NAME
|
||||
fi
|
||||
|
||||
# Use this if you want the user to explicitly set 'RUN' in
|
||||
# /etc/default/
|
||||
#if [ "x$RUN" != "xyes" ] ; then
|
||||
# log_failure_msg "$NAME disabled, please adjust the configuration to your needs "
|
||||
# log_failure_msg "and then set RUN to 'yes' in /etc/default/$NAME to enable it."
|
||||
# exit 1
|
||||
#fi
|
||||
|
||||
# Check that the user exists (if we set a user)
|
||||
# Does the user exist?
|
||||
if [ -n "$DAEMONUSER" ] ; then
|
||||
if getent passwd | grep -q "^$DAEMONUSER:"; then
|
||||
# Obtain the uid and gid
|
||||
DAEMONUID=`getent passwd |grep "^$DAEMONUSER:" | awk -F : '{print $3}'`
|
||||
DAEMONGID=`getent passwd |grep "^$DAEMONUSER:" | awk -F : '{print $4}'`
|
||||
else
|
||||
log_failure_msg "The user $DAEMONUSER, required to run $NAME does not exist."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
set -e
|
||||
|
||||
running_pid() {
|
||||
# Check if a given process pid's cmdline matches a given name
|
||||
pid=$1
|
||||
name=$2
|
||||
[ -z "$pid" ] && return 1
|
||||
[ ! -d /proc/$pid ] && return 1
|
||||
cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1 |cut -d : -f 1`
|
||||
# Is this the expected server
|
||||
[ "$cmd" != "$name" ] && return 1
|
||||
return 0
|
||||
}
|
||||
|
||||
running() {
|
||||
# Check if the process is running looking at /proc
|
||||
# (works for all users)
|
||||
|
||||
# No pidfile, probably no daemon present
|
||||
[ ! -f "$PIDFILE" ] && return 1
|
||||
pid=`cat $PIDFILE`
|
||||
running_pid $pid $DAEMON || return 1
|
||||
return 0
|
||||
}
|
||||
|
||||
start_server() {
|
||||
# Start the process using the wrapper
|
||||
if [ -z "$DAEMONUSER" ] ; then
|
||||
start_daemon -p $PIDFILE $DAEMON $DAEMON_OPTS
|
||||
errcode=$?
|
||||
else
|
||||
# if we are using a daemonuser then change the user id
|
||||
start-stop-daemon --start --quiet --pidfile $PIDFILE \
|
||||
--chuid $DAEMONUSER \
|
||||
--exec $DAEMON -- $DAEMON_OPTS
|
||||
errcode=$?
|
||||
fi
|
||||
return $errcode
|
||||
}
|
||||
|
||||
stop_server() {
|
||||
# Stop the process using the wrapper
|
||||
if [ -z "$DAEMONUSER" ] ; then
|
||||
killproc -p $PIDFILE $DAEMON
|
||||
errcode=$?
|
||||
else
|
||||
# if we are using a daemonuser then look for process that match
|
||||
start-stop-daemon --stop --quiet --pidfile $PIDFILE \
|
||||
--user $DAEMONUSER \
|
||||
--exec $DAEMON
|
||||
errcode=$?
|
||||
fi
|
||||
|
||||
return $errcode
|
||||
}
|
||||
|
||||
reload_server() {
|
||||
[ ! -f "$PIDFILE" ] && return 1
|
||||
pid=pidofproc $PIDFILE # This is the daemon's pid
|
||||
# Send a SIGHUP
|
||||
kill -1 $pid
|
||||
return $?
|
||||
}
|
||||
|
||||
force_stop() {
|
||||
# Force the process to die killing it manually
|
||||
[ ! -e "$PIDFILE" ] && return
|
||||
if running ; then
|
||||
kill -15 $pid
|
||||
# Is it really dead?
|
||||
sleep "$DIETIME"s
|
||||
if running ; then
|
||||
kill -9 $pid
|
||||
sleep "$DIETIME"s
|
||||
if running ; then
|
||||
echo "Cannot kill $NAME (pid=$pid)!"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
rm -f $PIDFILE
|
||||
}
|
||||
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
log_daemon_msg "Starting $DESC " "$NAME"
|
||||
# Check if it's running first
|
||||
if running ; then
|
||||
log_progress_msg "apparently already running"
|
||||
log_end_msg 0
|
||||
exit 0
|
||||
fi
|
||||
if start_server ; then
|
||||
# NOTE: Some servers might die some time after they start,
|
||||
# this code will detect this issue if STARTTIME is set
|
||||
# to a reasonable value
|
||||
[ -n "$STARTTIME" ] && sleep $STARTTIME # Wait some time
|
||||
if running ; then
|
||||
# It's ok, the server started and is running
|
||||
log_end_msg 0
|
||||
else
|
||||
# It is not running after we did start
|
||||
log_end_msg 1
|
||||
fi
|
||||
else
|
||||
# Either we could not start it
|
||||
log_end_msg 1
|
||||
fi
|
||||
;;
|
||||
stop)
|
||||
log_daemon_msg "Stopping $DESC" "$NAME"
|
||||
if running ; then
|
||||
# Only stop the server if we see it running
|
||||
errcode=0
|
||||
stop_server || errcode=$?
|
||||
log_end_msg $errcode
|
||||
else
|
||||
# If it's not running don't do anything
|
||||
log_progress_msg "apparently not running"
|
||||
log_end_msg 0
|
||||
exit 0
|
||||
fi
|
||||
;;
|
||||
force-stop)
|
||||
# First try to stop gracefully the program
|
||||
$0 stop
|
||||
if running; then
|
||||
# If it's still running try to kill it more forcefully
|
||||
log_daemon_msg "Stopping (force) $DESC" "$NAME"
|
||||
errcode=0
|
||||
force_stop || errcode=$?
|
||||
log_end_msg $errcode
|
||||
fi
|
||||
;;
|
||||
restart|force-reload)
|
||||
log_daemon_msg "Restarting $DESC" "$NAME"
|
||||
errcode=0
|
||||
stop_server || errcode=$?
|
||||
# Wait some sensible amount, some server need this
|
||||
[ -n "$DIETIME" ] && sleep $DIETIME
|
||||
start_server || errcode=$?
|
||||
[ -n "$STARTTIME" ] && sleep $STARTTIME
|
||||
running || errcode=$?
|
||||
log_end_msg $errcode
|
||||
;;
|
||||
status)
|
||||
|
||||
log_daemon_msg "Checking status of $DESC" "$NAME"
|
||||
if running ; then
|
||||
log_progress_msg "running"
|
||||
log_end_msg 0
|
||||
else
|
||||
log_progress_msg "apparently not running"
|
||||
log_end_msg 1
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
# Use this if the daemon cannot reload
|
||||
reload)
|
||||
log_warning_msg "Reloading $NAME daemon: not implemented, as the daemon"
|
||||
log_warning_msg "cannot re-read the config file (use restart)."
|
||||
;;
|
||||
# And this if it cann
|
||||
#reload)
|
||||
#
|
||||
# If the daemon can reload its config files on the fly
|
||||
# for example by sending it SIGHUP, do it here.
|
||||
#
|
||||
# If the daemon responds to changes in its config file
|
||||
# directly anyway, make this a do-nothing entry.
|
||||
#
|
||||
# log_daemon_msg "Reloading $DESC configuration files" "$NAME"
|
||||
# if running ; then
|
||||
# reload_server
|
||||
# if ! running ; then
|
||||
# Process died after we tried to reload
|
||||
# log_progress_msg "died on reload"
|
||||
# log_end_msg 1
|
||||
# exit 1
|
||||
# fi
|
||||
# else
|
||||
# log_progress_msg "server is not running"
|
||||
# log_end_msg 1
|
||||
# exit 1
|
||||
# fi
|
||||
#;;
|
||||
|
||||
*)
|
||||
N=/etc/init.d/$NAME
|
||||
echo "Usage: $N {start|stop|force-stop|restart|force-reload|status}" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
@ -1,59 +0,0 @@
|
||||
.\" Hey, EMACS: -*- nroff -*-
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH INFLASH SECTION "June 22, 2009"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
.\" .nh disable hyphenation
|
||||
.\" .hy enable hyphenation
|
||||
.\" .ad l left justify
|
||||
.\" .ad b justify to both left and right margins
|
||||
.\" .nf disable filling
|
||||
.\" .fi enable filling
|
||||
.\" .br insert line break
|
||||
.\" .sp <n> insert n+1 empty lines
|
||||
.\" for manpage-specific macros, see man(7)
|
||||
.SH NAME
|
||||
inflash \- program to do something
|
||||
.SH SYNOPSIS
|
||||
.B inflash
|
||||
.RI [ options ] " files" ...
|
||||
.br
|
||||
.B bar
|
||||
.RI [ options ] " files" ...
|
||||
.SH DESCRIPTION
|
||||
This manual page documents briefly the
|
||||
.B inflash
|
||||
and
|
||||
.B bar
|
||||
commands.
|
||||
.PP
|
||||
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
|
||||
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
|
||||
.\" respectively.
|
||||
\fBinflash\fP is a program that...
|
||||
.SH OPTIONS
|
||||
These programs follow the usual GNU command line syntax, with long
|
||||
options starting with two dashes (`-').
|
||||
A summary of options is included below.
|
||||
For a complete description, see the Info files.
|
||||
.TP
|
||||
.B \-h, \-\-help
|
||||
Show summary of options.
|
||||
.TP
|
||||
.B \-v, \-\-version
|
||||
Show version of program.
|
||||
.SH SEE ALSO
|
||||
.BR bar (1),
|
||||
.BR baz (1).
|
||||
.br
|
||||
The programs are documented fully by
|
||||
.IR "The Rise and Fall of a Fooish Bar" ,
|
||||
available via the Info system.
|
||||
.SH AUTHOR
|
||||
inflash was written by <upstream author>.
|
||||
.PP
|
||||
This manual page was written by xiangfu <xiangfu@unknown>,
|
||||
for the Debian project (and may be used by others).
|
@ -1,154 +0,0 @@
|
||||
<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
|
||||
|
||||
<!-- Process this file with docbook-to-man to generate an nroff manual
|
||||
page: `docbook-to-man manpage.sgml > manpage.1'. You may view
|
||||
the manual page with: `docbook-to-man manpage.sgml | nroff -man |
|
||||
less'. A typical entry in a Makefile or Makefile.am is:
|
||||
|
||||
manpage.1: manpage.sgml
|
||||
docbook-to-man $< > $@
|
||||
|
||||
|
||||
The docbook-to-man binary is found in the docbook-to-man package.
|
||||
Please remember that if you create the nroff version in one of the
|
||||
debian/rules file targets (such as build), you will need to include
|
||||
docbook-to-man in your Build-Depends control field.
|
||||
|
||||
-->
|
||||
|
||||
<!-- Fill in your name for FIRSTNAME and SURNAME. -->
|
||||
<!ENTITY dhfirstname "<firstname>FIRSTNAME</firstname>">
|
||||
<!ENTITY dhsurname "<surname>SURNAME</surname>">
|
||||
<!-- Please adjust the date whenever revising the manpage. -->
|
||||
<!ENTITY dhdate "<date>June 22, 2009</date>">
|
||||
<!-- SECTION should be 1-8, maybe w/ subsection other parameters are
|
||||
allowed: see man(7), man(1). -->
|
||||
<!ENTITY dhsection "<manvolnum>SECTION</manvolnum>">
|
||||
<!ENTITY dhemail "<email>xiangfu@unknown</email>">
|
||||
<!ENTITY dhusername "xiangfu">
|
||||
<!ENTITY dhucpackage "<refentrytitle>INFLASH</refentrytitle>">
|
||||
<!ENTITY dhpackage "inflash">
|
||||
|
||||
<!ENTITY debian "<productname>Debian</productname>">
|
||||
<!ENTITY gnu "<acronym>GNU</acronym>">
|
||||
<!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
|
||||
]>
|
||||
|
||||
<refentry>
|
||||
<refentryinfo>
|
||||
<address>
|
||||
&dhemail;
|
||||
</address>
|
||||
<author>
|
||||
&dhfirstname;
|
||||
&dhsurname;
|
||||
</author>
|
||||
<copyright>
|
||||
<year>2003</year>
|
||||
<holder>&dhusername;</holder>
|
||||
</copyright>
|
||||
&dhdate;
|
||||
</refentryinfo>
|
||||
<refmeta>
|
||||
&dhucpackage;
|
||||
|
||||
&dhsection;
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>&dhpackage;</refname>
|
||||
|
||||
<refpurpose>program to do something</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<cmdsynopsis>
|
||||
<command>&dhpackage;</command>
|
||||
|
||||
<arg><option>-e <replaceable>this</replaceable></option></arg>
|
||||
|
||||
<arg><option>--example <replaceable>that</replaceable></option></arg>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
<refsect1>
|
||||
<title>DESCRIPTION</title>
|
||||
|
||||
<para>This manual page documents briefly the
|
||||
<command>&dhpackage;</command> and <command>bar</command>
|
||||
commands.</para>
|
||||
|
||||
<para>This manual page was written for the &debian; distribution
|
||||
because the original program does not have a manual page.
|
||||
Instead, it has documentation in the &gnu;
|
||||
<application>Info</application> format; see below.</para>
|
||||
|
||||
<para><command>&dhpackage;</command> is a program that...</para>
|
||||
|
||||
</refsect1>
|
||||
<refsect1>
|
||||
<title>OPTIONS</title>
|
||||
|
||||
<para>These programs follow the usual &gnu; command line syntax,
|
||||
with long options starting with two dashes (`-'). A summary of
|
||||
options is included below. For a complete description, see the
|
||||
<application>Info</application> files.</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><option>-h</option>
|
||||
<option>--help</option>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Show summary of options.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-v</option>
|
||||
<option>--version</option>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Show version of program.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
<refsect1>
|
||||
<title>SEE ALSO</title>
|
||||
|
||||
<para>bar (1), baz (1).</para>
|
||||
|
||||
<para>The programs are documented fully by <citetitle>The Rise and
|
||||
Fall of a Fooish Bar</citetitle> available via the
|
||||
<application>Info</application> system.</para>
|
||||
</refsect1>
|
||||
<refsect1>
|
||||
<title>AUTHOR</title>
|
||||
|
||||
<para>This manual page was written by &dhusername; &dhemail; for
|
||||
the &debian; system (and may be used by others). Permission is
|
||||
granted to copy, distribute and/or modify this document under
|
||||
the terms of the &gnu; General Public License, Version 2 any
|
||||
later version published by the Free Software Foundation.
|
||||
</para>
|
||||
<para>
|
||||
On Debian systems, the complete text of the GNU General Public
|
||||
License can be found in /usr/share/common-licenses/GPL.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
</refentry>
|
||||
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:2
|
||||
sgml-indent-data:t
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:nil
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
-->
|
@ -1,291 +0,0 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
|
||||
<!--
|
||||
|
||||
`xsltproc -''-nonet \
|
||||
-''-param man.charmap.use.subset "0" \
|
||||
-''-param make.year.ranges "1" \
|
||||
-''-param make.single.year.ranges "1" \
|
||||
/usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl \
|
||||
manpage.xml'
|
||||
|
||||
A manual page <package>.<section> will be generated. You may view the
|
||||
manual page with: nroff -man <package>.<section> | less'. A typical entry
|
||||
in a Makefile or Makefile.am is:
|
||||
|
||||
DB2MAN = /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/manpages/docbook.xsl
|
||||
XP = xsltproc -''-nonet -''-param man.charmap.use.subset "0"
|
||||
|
||||
manpage.1: manpage.xml
|
||||
$(XP) $(DB2MAN) $<
|
||||
|
||||
The xsltproc binary is found in the xsltproc package. The XSL files are in
|
||||
docbook-xsl. A description of the parameters you can use can be found in the
|
||||
docbook-xsl-doc-* packages. Please remember that if you create the nroff
|
||||
version in one of the debian/rules file targets (such as build), you will need
|
||||
to include xsltproc and docbook-xsl in your Build-Depends control field.
|
||||
Alternatively use the xmlto command/package. That will also automatically
|
||||
pull in xsltproc and docbook-xsl.
|
||||
|
||||
Notes for using docbook2x: docbook2x-man does not automatically create the
|
||||
AUTHOR(S) and COPYRIGHT sections. In this case, please add them manually as
|
||||
<refsect1> ... </refsect1>.
|
||||
|
||||
To disable the automatic creation of the AUTHOR(S) and COPYRIGHT sections
|
||||
read /usr/share/doc/docbook-xsl/doc/manpages/authors.html. This file can be
|
||||
found in the docbook-xsl-doc-html package.
|
||||
|
||||
Validation can be done using: `xmllint -''-noout -''-valid manpage.xml`
|
||||
|
||||
General documentation about man-pages and man-page-formatting:
|
||||
man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/
|
||||
|
||||
-->
|
||||
|
||||
<!-- Fill in your name for FIRSTNAME and SURNAME. -->
|
||||
<!ENTITY dhfirstname "FIRSTNAME">
|
||||
<!ENTITY dhsurname "SURNAME">
|
||||
<!-- dhusername could also be set to "&firstname; &surname;". -->
|
||||
<!ENTITY dhusername "xiangfu">
|
||||
<!ENTITY dhemail "xiangfu@unknown">
|
||||
<!-- SECTION should be 1-8, maybe w/ subsection other parameters are
|
||||
allowed: see man(7), man(1) and
|
||||
http://www.tldp.org/HOWTO/Man-Page/q2.html. -->
|
||||
<!ENTITY dhsection "SECTION">
|
||||
<!-- TITLE should be something like "User commands" or similar (see
|
||||
http://www.tldp.org/HOWTO/Man-Page/q2.html). -->
|
||||
<!ENTITY dhtitle "inflash User Manual">
|
||||
<!ENTITY dhucpackage "INFLASH">
|
||||
<!ENTITY dhpackage "inflash">
|
||||
]>
|
||||
|
||||
<refentry>
|
||||
<refentryinfo>
|
||||
<title>&dhtitle;</title>
|
||||
<productname>&dhpackage;</productname>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>&dhfirstname;</firstname>
|
||||
<surname>&dhsurname;</surname>
|
||||
<contrib>Wrote this manpage for the Debian system.</contrib>
|
||||
<address>
|
||||
<email>&dhemail;</email>
|
||||
</address>
|
||||
</author>
|
||||
</authorgroup>
|
||||
<copyright>
|
||||
<year>2007</year>
|
||||
<holder>&dhusername;</holder>
|
||||
</copyright>
|
||||
<legalnotice>
|
||||
<para>This manual page was written for the Debian system
|
||||
(and may be used by others).</para>
|
||||
<para>Permission is granted to copy, distribute and/or modify this
|
||||
document under the terms of the GNU General Public License,
|
||||
Version 2 or (at your option) any later version published by
|
||||
the Free Software Foundation.</para>
|
||||
<para>On Debian systems, the complete text of the GNU General Public
|
||||
License can be found in
|
||||
<filename>/usr/share/common-licenses/GPL</filename>.</para>
|
||||
</legalnotice>
|
||||
</refentryinfo>
|
||||
<refmeta>
|
||||
<refentrytitle>&dhucpackage;</refentrytitle>
|
||||
<manvolnum>&dhsection;</manvolnum>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>&dhpackage;</refname>
|
||||
<refpurpose>program to do something</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<cmdsynopsis>
|
||||
<command>&dhpackage;</command>
|
||||
<!-- These are several examples, how syntaxes could look -->
|
||||
<arg choice="plain"><option>-e <replaceable>this</replaceable></option></arg>
|
||||
<arg choice="opt"><option>--example=<parameter>that</parameter></option></arg>
|
||||
<arg choice="opt">
|
||||
<group choice="req">
|
||||
<arg choice="plain"><option>-e</option></arg>
|
||||
<arg choice="plain"><option>--example</option></arg>
|
||||
</group>
|
||||
<replaceable class="option">this</replaceable>
|
||||
</arg>
|
||||
<arg choice="opt">
|
||||
<group choice="req">
|
||||
<arg choice="plain"><option>-e</option></arg>
|
||||
<arg choice="plain"><option>--example</option></arg>
|
||||
</group>
|
||||
<group choice="req">
|
||||
<arg choice="plain"><replaceable>this</replaceable></arg>
|
||||
<arg choice="plain"><replaceable>that</replaceable></arg>
|
||||
</group>
|
||||
</arg>
|
||||
</cmdsynopsis>
|
||||
<cmdsynopsis>
|
||||
<command>&dhpackage;</command>
|
||||
<!-- Normally the help and version options make the programs stop
|
||||
right after outputting the requested information. -->
|
||||
<group choice="opt">
|
||||
<arg choice="plain">
|
||||
<group choice="req">
|
||||
<arg choice="plain"><option>-h</option></arg>
|
||||
<arg choice="plain"><option>--help</option></arg>
|
||||
</group>
|
||||
</arg>
|
||||
<arg choice="plain">
|
||||
<group choice="req">
|
||||
<arg choice="plain"><option>-v</option></arg>
|
||||
<arg choice="plain"><option>--version</option></arg>
|
||||
</group>
|
||||
</arg>
|
||||
</group>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
<refsect1 id="description">
|
||||
<title>DESCRIPTION</title>
|
||||
<para>This manual page documents briefly the
|
||||
<command>&dhpackage;</command> and <command>bar</command>
|
||||
commands.</para>
|
||||
<para>This manual page was written for the Debian distribution
|
||||
because the original program does not have a manual page.
|
||||
Instead, it has documentation in the GNU <citerefentry>
|
||||
<refentrytitle>info</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
</citerefentry> format; see below.</para>
|
||||
<para><command>&dhpackage;</command> is a program that...</para>
|
||||
</refsect1>
|
||||
<refsect1 id="options">
|
||||
<title>OPTIONS</title>
|
||||
<para>The program follows the usual GNU command line syntax,
|
||||
with long options starting with two dashes (`-'). A summary of
|
||||
options is included below. For a complete description, see the
|
||||
<citerefentry>
|
||||
<refentrytitle>info</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
</citerefentry> files.</para>
|
||||
<variablelist>
|
||||
<!-- Use the variablelist.term.separator and the
|
||||
variablelist.term.break.after parameters to
|
||||
control the term elements. -->
|
||||
<varlistentry>
|
||||
<term><option>-e <replaceable>this</replaceable></option></term>
|
||||
<term><option>--example=<replaceable>that</replaceable></option></term>
|
||||
<listitem>
|
||||
<para>Does this and that.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-h</option></term>
|
||||
<term><option>--help</option></term>
|
||||
<listitem>
|
||||
<para>Show summary of options.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-v</option></term>
|
||||
<term><option>--version</option></term>
|
||||
<listitem>
|
||||
<para>Show version of program.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
<refsect1 id="files">
|
||||
<title>FILES</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><filename>/etc/foo.conf</filename></term>
|
||||
<listitem>
|
||||
<para>The system-wide configuration file to control the
|
||||
behaviour of <application>&dhpackage;</application>. See
|
||||
<citerefentry>
|
||||
<refentrytitle>foo.conf</refentrytitle>
|
||||
<manvolnum>5</manvolnum>
|
||||
</citerefentry> for further details.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>${HOME}/.foo.conf</filename></term>
|
||||
<listitem>
|
||||
<para>The per-user configuration file to control the
|
||||
behaviour of <application>&dhpackage;</application>. See
|
||||
<citerefentry>
|
||||
<refentrytitle>foo.conf</refentrytitle>
|
||||
<manvolnum>5</manvolnum>
|
||||
</citerefentry> for further details.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
<refsect1 id="environment">
|
||||
<title>ENVIONMENT</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><envar>FOO_CONF</envar></term>
|
||||
<listitem>
|
||||
<para>If used, the defined file is used as configuration
|
||||
file (see also <xref linkend="files"/>).</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
<refsect1 id="diagnostics">
|
||||
<title>DIAGNOSTICS</title>
|
||||
<para>The following diagnostics may be issued
|
||||
on <filename class="devicefile">stderr</filename>:</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><errortext>Bad configuration file. Exiting.</errortext></term>
|
||||
<listitem>
|
||||
<para>The configuration file seems to contain a broken configuration
|
||||
line. Use the <option>--verbose</option> option, to get more info.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para><command>&dhpackage;</command> provides some return codes, that can
|
||||
be used in scripts:</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Code</segtitle>
|
||||
<segtitle>Diagnostic</segtitle>
|
||||
<seglistitem>
|
||||
<seg><errorcode>0</errorcode></seg>
|
||||
<seg>Program exited successfully.</seg>
|
||||
</seglistitem>
|
||||
<seglistitem>
|
||||
<seg><errorcode>1</errorcode></seg>
|
||||
<seg>The configuration file seems to be broken.</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
</refsect1>
|
||||
<refsect1 id="bugs">
|
||||
<!-- Or use this section to tell about upstream BTS. -->
|
||||
<title>BUGS</title>
|
||||
<para>The program is currently limited to only work
|
||||
with the <package>foobar</package> library.</para>
|
||||
<para>The upstreams <acronym>BTS</acronym> can be found
|
||||
at <ulink url="http://bugzilla.foo.tld"/>.</para>
|
||||
</refsect1>
|
||||
<refsect1 id="see_also">
|
||||
<title>SEE ALSO</title>
|
||||
<!-- In alpabetical order. -->
|
||||
<para><citerefentry>
|
||||
<refentrytitle>bar</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
</citerefentry>, <citerefentry>
|
||||
<refentrytitle>baz</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
</citerefentry>, <citerefentry>
|
||||
<refentrytitle>foo.conf</refentrytitle>
|
||||
<manvolnum>5</manvolnum>
|
||||
</citerefentry></para>
|
||||
<para>The programs are documented fully by <citetitle>The Rise and
|
||||
Fall of a Fooish Bar</citetitle> available via the <citerefentry>
|
||||
<refentrytitle>info</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
</citerefentry> system.</para>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
|
@ -1,39 +0,0 @@
|
||||
#!/bin/sh
|
||||
# postinst script for inflash
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postinst> `configure' <most-recently-configured-version>
|
||||
# * <old-postinst> `abort-upgrade' <new version>
|
||||
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
|
||||
# <new-version>
|
||||
# * <postinst> `abort-remove'
|
||||
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
|
||||
# <failed-install-package> <version> `removing'
|
||||
# <conflicting-package> <version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
;;
|
||||
|
||||
abort-upgrade|abort-remove|abort-deconfigure)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postinst called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
@ -1,37 +0,0 @@
|
||||
#!/bin/sh
|
||||
# postrm script for inflash
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postrm> `remove'
|
||||
# * <postrm> `purge'
|
||||
# * <old-postrm> `upgrade' <new-version>
|
||||
# * <new-postrm> `failed-upgrade' <old-version>
|
||||
# * <new-postrm> `abort-install'
|
||||
# * <new-postrm> `abort-install' <old-version>
|
||||
# * <new-postrm> `abort-upgrade' <old-version>
|
||||
# * <disappearer's-postrm> `disappear' <overwriter>
|
||||
# <overwriter-version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postrm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
@ -1,35 +0,0 @@
|
||||
#!/bin/sh
|
||||
# preinst script for inflash
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <new-preinst> `install'
|
||||
# * <new-preinst> `install' <old-version>
|
||||
# * <new-preinst> `upgrade' <old-version>
|
||||
# * <old-preinst> `abort-upgrade' <new-version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
install|upgrade)
|
||||
;;
|
||||
|
||||
abort-upgrade)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "preinst called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
@ -1,38 +0,0 @@
|
||||
#!/bin/sh
|
||||
# prerm script for inflash
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <prerm> `remove'
|
||||
# * <old-prerm> `upgrade' <new-version>
|
||||
# * <new-prerm> `failed-upgrade' <old-version>
|
||||
# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
|
||||
# * <deconfigured's-prerm> `deconfigure' `in-favour'
|
||||
# <package-being-installed> <version> `removing'
|
||||
# <conflicting-package> <version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
remove|upgrade|deconfigure)
|
||||
;;
|
||||
|
||||
failed-upgrade)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "prerm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
@ -1,23 +0,0 @@
|
||||
# Example watch control file for uscan
|
||||
# Rename this file to "watch" and then you can run the "uscan" command
|
||||
# to check for upstream updates and more.
|
||||
# See uscan(1) for format
|
||||
|
||||
# Compulsory line, this is a version 3 file
|
||||
version=3
|
||||
|
||||
# Uncomment to examine a Webpage
|
||||
# <Webpage URL> <string match>
|
||||
#http://www.example.com/downloads.php inflash-(.*)\.tar\.gz
|
||||
|
||||
# Uncomment to examine a Webserver directory
|
||||
#http://www.example.com/pub/inflash-(.*)\.tar\.gz
|
||||
|
||||
# Uncommment to examine a FTP server
|
||||
#ftp://ftp.example.com/pub/inflash-(.*)\.tar\.gz debian uupdate
|
||||
|
||||
# Uncomment to find new files on sourceforge, for devscripts >= 2.9
|
||||
# http://sf.net/inflash/inflash-(.*)\.tar\.gz
|
||||
|
||||
# Uncomment to find new files on GooglePages
|
||||
# http://example.googlepages.com/foo.html inflash-(.*)\.tar\.gz
|
@ -90,7 +90,7 @@ out:
|
||||
void init_cfg()
|
||||
{
|
||||
if (usb_get_ingenic_cpu(&ingenic_dev) < 3) {
|
||||
printf("\n XBurst CPU not booted yet, boot it first!\n");
|
||||
printf(" XBurst CPU not booted yet, boot it first!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -191,14 +191,14 @@ int error_check(unsigned char *org,unsigned char * obj,unsigned int size)
|
||||
int nand_markbad(struct nand_in *nand_in)
|
||||
{
|
||||
if (usb_get_ingenic_cpu(&ingenic_dev) < 3) {
|
||||
printf("\n Device unboot! Boot it first!");
|
||||
printf(" Device unboot! Boot it first!\n");
|
||||
return -1;
|
||||
}
|
||||
printf("\n mark bad block : %d ",nand_in->start);
|
||||
printf(" mark bad block : %d\n",nand_in->start);
|
||||
usb_send_data_address_to_ingenic(&ingenic_dev, nand_in->start);
|
||||
usb_ingenic_nand_ops(&ingenic_dev, NAND_MARK_BAD);
|
||||
usb_read_data_from_ingenic(&ingenic_dev, ret, 8);
|
||||
printf("\n Mark bad block at %d ",((ret[3] << 24) |
|
||||
printf(" Mark bad block at %d\n",((ret[3] << 24) |
|
||||
(ret[2] << 16) |
|
||||
(ret[1] << 8) |
|
||||
(ret[0] << 0)) / hand.nand_ppb);
|
||||
@ -212,9 +212,9 @@ int nand_program_check(struct nand_in *nand_in,
|
||||
unsigned int i, page_num, cur_page = -1;
|
||||
unsigned short temp;
|
||||
|
||||
printf("\n Writing NAND page %d len %d...", nand_in->start, nand_in->length);
|
||||
printf(" Writing NAND page %d len %d...\n", nand_in->start, nand_in->length);
|
||||
if (nand_in->length > (unsigned int)MAX_TRANSFER_SIZE) {
|
||||
printf("\n Buffer size too long!");
|
||||
printf(" Buffer size too long!\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -226,7 +226,7 @@ int nand_program_check(struct nand_in *nand_in,
|
||||
#endif
|
||||
|
||||
if (usb_get_ingenic_cpu(&ingenic_dev) < 3) {
|
||||
printf("\n Device unboot! Boot it first!");
|
||||
printf(" Device unboot! Boot it first!\n");
|
||||
return -1;
|
||||
}
|
||||
ingenic_dev.file_buff = nand_in->buf;
|
||||
@ -329,23 +329,23 @@ int nand_erase(struct nand_in *nand_in)
|
||||
start_blk = nand_in->start;
|
||||
blk_num = nand_in->length;
|
||||
if (start_blk > (unsigned int)NAND_MAX_BLK_NUM) {
|
||||
printf("\n Start block number overflow!");
|
||||
printf(" Start block number overflow!\n");
|
||||
return -1;
|
||||
}
|
||||
if (blk_num > (unsigned int)NAND_MAX_BLK_NUM) {
|
||||
printf("\n Length block number overflow!");
|
||||
printf(" Length block number overflow!\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (usb_get_ingenic_cpu(&ingenic_dev) < 3) {
|
||||
printf("\n Device unboot! Boot it first!");
|
||||
printf(" Device unboot! Boot it first!\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
for (i = 0; i < nand_in->max_chip; i++) {
|
||||
if ((nand_in->cs_map)[i]==0)
|
||||
continue;
|
||||
printf("\n Erasing No.%d device No.%d flash (start_blk %u blk_num %u)......",
|
||||
printf(" Erasing No.%d device No.%d flash (start_blk %u blk_num %u)......\n",
|
||||
nand_in->dev, i, start_blk, blk_num);
|
||||
|
||||
usb_send_data_address_to_ingenic(&ingenic_dev, start_blk);
|
||||
@ -361,14 +361,14 @@ int nand_erase(struct nand_in *nand_in)
|
||||
(ret[2] << 16) |
|
||||
(ret[1] << 8) |
|
||||
(ret[0] << 0)) / hand.nand_ppb;
|
||||
printf("\n Return: %02x %02x %02x %02x %02x %02x %02x %02x (position %d)", ret[0], ret[1], ret[2], ret[3], ret[4], ret[5], ret[6], ret[7], end_block);
|
||||
printf(" Return: %02x %02x %02x %02x %02x %02x %02x %02x (position %d)\n", ret[0], ret[1], ret[2], ret[3], ret[4], ret[5], ret[6], ret[7], end_block);
|
||||
if (!hand.nand_force_erase) {
|
||||
/* not force erase, show bad block infomation */
|
||||
printf("\n There are marked bad blocks: %d ",
|
||||
printf(" There are marked bad blocks: %d\n",
|
||||
end_block - start_blk - blk_num );
|
||||
} else {
|
||||
/* force erase, no bad block infomation can show */
|
||||
printf("\n Force erase, no bad block infomation!" );
|
||||
printf(" Force erase, no bad block infomation!\n" );
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
@ -407,7 +407,7 @@ int nand_program_file(struct nand_in *nand_in,
|
||||
return -1;
|
||||
}
|
||||
|
||||
printf("\n Programing No.%d device, flen %d, start page %d...",nand_in->dev, flen, nand_in->start);
|
||||
printf(" Programing No.%d device, flen %d, start page %d...\n",nand_in->dev, flen, nand_in->start);
|
||||
n_in.start = nand_in->start / hand.nand_ppb;
|
||||
if (nand_in->option == NO_OOB) {
|
||||
if (flen % (hand.nand_ppb * hand.nand_ps) == 0)
|
||||
@ -423,7 +423,7 @@ int nand_program_file(struct nand_in *nand_in,
|
||||
((hand.nand_ps + hand.nand_os) * hand.nand_ppb)
|
||||
+ 1;
|
||||
}
|
||||
/* printf("\n length %d flen %d ", n_in.length, flen); */
|
||||
/* printf(" length %d flen %d\n", n_in.length, flen); */
|
||||
n_in.cs_map = nand_in->cs_map;
|
||||
n_in.dev = nand_in->dev;
|
||||
n_in.max_chip = nand_in->max_chip;
|
||||
@ -435,9 +435,9 @@ int nand_program_file(struct nand_in *nand_in,
|
||||
transfer_size = (hand.nand_ppb * (hand.nand_ps + hand.nand_os));
|
||||
m = flen / transfer_size;
|
||||
j = flen % transfer_size;
|
||||
printf("\n Size to send %d, transfer_size %d", flen, transfer_size);
|
||||
printf("\n Image type : %s", IMAGE_TYPE[nand_in->option]);
|
||||
printf("\n It will cause %d times buffer transfer.", j == 0 ? m : m + 1);
|
||||
printf(" Size to send %d, transfer_size %d\n", flen, transfer_size);
|
||||
printf(" Image type : %s\n", IMAGE_TYPE[nand_in->option]);
|
||||
printf(" It will cause %d times buffer transfer.\n", j == 0 ? m : m + 1);
|
||||
|
||||
#ifdef CONFIG_NAND_OUT
|
||||
for (i = 0; i < nand_in->max_chip; i++)
|
||||
@ -465,7 +465,7 @@ int nand_program_file(struct nand_in *nand_in,
|
||||
return -1;
|
||||
|
||||
if (start_page - nand_in->start > hand.nand_ppb)
|
||||
printf("\n Skip a old bad block !");
|
||||
printf(" Skip a old bad block !\n");
|
||||
nand_in->start = start_page;
|
||||
|
||||
#ifdef CONFIG_NAND_OUT
|
||||
@ -515,7 +515,7 @@ int nand_program_file_planes(struct nand_in *nand_in,
|
||||
struct nand_out *nand_out,
|
||||
char *fname)
|
||||
{
|
||||
printf(" \n not implement yet !");
|
||||
printf(" not implement yet !\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -534,18 +534,18 @@ int init_nand_in(void)
|
||||
int nand_prog(void)
|
||||
{
|
||||
char *image_file;
|
||||
char *help = "\n Usage: nprog (1) (2) (3) (4) (5)"
|
||||
"\n (1)\tstart page number"
|
||||
"\n (2)\timage file name"
|
||||
"\n (3)\tdevice index number"
|
||||
"\n (4)\tflash index number"
|
||||
"\n (5) image type must be:"
|
||||
"\n \t-n:\tno oob"
|
||||
"\n \t-o:\twith oob no ecc"
|
||||
"\n \t-e:\twith oob and ecc";
|
||||
char *help = " Usage: nprog (1) (2) (3) (4) (5)\n"
|
||||
" (1)\tstart page number\n"
|
||||
" (2)\timage file name\n"
|
||||
" (3)\tdevice index number\n"
|
||||
" (4)\tflash index number\n"
|
||||
" (5) image type must be:\n"
|
||||
" \t-n:\tno oob\n"
|
||||
" \t-o:\twith oob no ecc\n"
|
||||
" \t-e:\twith oob and ecc\n";
|
||||
|
||||
if (com_argc != 6) {
|
||||
printf("\n not enough argument.");
|
||||
printf(" not enough argument.\n");
|
||||
printf("%s", help);
|
||||
return 0;
|
||||
}
|
||||
@ -571,7 +571,7 @@ int nand_prog(void)
|
||||
nand_program_file(&nand_in, &nand_out, image_file);
|
||||
|
||||
#ifdef CONFIG_NAND_OUT
|
||||
printf("\n Flash check result:");
|
||||
printf(" Flash check result:\n");
|
||||
int i;
|
||||
for (i = 0; i < 16; i++)
|
||||
printf(" %d", (nand_out.status)[i]);
|
||||
@ -586,10 +586,10 @@ int nand_query(void)
|
||||
unsigned char csn;
|
||||
|
||||
if (com_argc < 3) {
|
||||
printf("\n Usage:");
|
||||
printf(" Usage:\n");
|
||||
printf(" nquery (1) (2) ");
|
||||
printf("\n (1):device index number"
|
||||
"\n (2):flash index number");
|
||||
printf(" (1):device index number\n"
|
||||
" (2):flash index number\n");
|
||||
return -1;
|
||||
}
|
||||
init_nand_in();
|
||||
@ -605,24 +605,24 @@ int nand_query(void)
|
||||
return -1;
|
||||
|
||||
if (usb_get_ingenic_cpu(&ingenic_dev) < 3) {
|
||||
printf("\n Device unboot! Boot it first!");
|
||||
printf(" Device unboot! Boot it first!\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
csn = i;
|
||||
printf("\n ID of No.%d device No.%d flash: ", nand_in.dev, csn);
|
||||
printf(" ID of No.%d device No.%d flash: \n", nand_in.dev, csn);
|
||||
|
||||
unsigned short ops = ((csn << 4) & 0xff0) + NAND_QUERY;
|
||||
usb_ingenic_nand_ops(&ingenic_dev, ops);
|
||||
usb_read_data_from_ingenic(&ingenic_dev, ret, 8);
|
||||
printf("\n Vendor ID :0x%x ",(unsigned char)ret[0]);
|
||||
printf("\n Product ID :0x%x ",(unsigned char)ret[1]);
|
||||
printf("\n Chip ID :0x%x ",(unsigned char)ret[2]);
|
||||
printf("\n Page ID :0x%x ",(unsigned char)ret[3]);
|
||||
printf("\n Plane ID :0x%x ",(unsigned char)ret[4]);
|
||||
printf(" Vendor ID :0x%x \n",(unsigned char)ret[0]);
|
||||
printf(" Product ID :0x%x \n",(unsigned char)ret[1]);
|
||||
printf(" Chip ID :0x%x \n",(unsigned char)ret[2]);
|
||||
printf(" Page ID :0x%x \n",(unsigned char)ret[3]);
|
||||
printf(" Plane ID :0x%x \n",(unsigned char)ret[4]);
|
||||
|
||||
usb_read_data_from_ingenic(&ingenic_dev, ret, 8);
|
||||
printf("\n Operation status: Success!");
|
||||
printf(" Operation status: Success!\n");
|
||||
|
||||
return 1;
|
||||
}
|
||||
@ -635,18 +635,18 @@ int nand_read(int mode)
|
||||
unsigned short temp = 0;
|
||||
|
||||
if (com_argc < 5) {
|
||||
printf("\n Usage:");
|
||||
printf(" Usage:\n");
|
||||
printf(" nread (1) (2) (3) (4) ");
|
||||
printf("\n 1:start page number"
|
||||
"\n 2:length in byte"
|
||||
"\n 3:device index number"
|
||||
"\n 4:flash index number ");
|
||||
printf(" 1:start page number\n"
|
||||
" 2:length in byte\n"
|
||||
" 3:device index number\n"
|
||||
" 4:flash index number \n");
|
||||
return -1;
|
||||
}
|
||||
init_nand_in();
|
||||
|
||||
if (atoi(com_argv[4]) >= MAX_DEV_NUM) {
|
||||
printf("\n Flash index number overflow!");
|
||||
printf(" Flash index number overflow!\n");
|
||||
return -1;
|
||||
}
|
||||
(nand_in.cs_map)[atoi(com_argv[4])] = 1;
|
||||
@ -658,11 +658,11 @@ int nand_read(int mode)
|
||||
length = nand_in.length;
|
||||
|
||||
if (start_addr > NAND_MAX_PAGE_NUM || length > NAND_MAX_PAGE_NUM ) {
|
||||
printf("\n Page number overflow!");
|
||||
printf(" Page number overflow!\n");
|
||||
return -1;
|
||||
}
|
||||
if (usb_get_ingenic_cpu(&ingenic_dev) < 3) {
|
||||
printf("\n Device unboot! Boot it first!");
|
||||
printf(" Device unboot! Boot it first!\n");
|
||||
return -1;
|
||||
}
|
||||
for (i = 0; i < nand_in.max_chip; i++)
|
||||
@ -670,7 +670,7 @@ int nand_read(int mode)
|
||||
break;
|
||||
if (i >= nand_in.max_chip) return 1;
|
||||
csn = i;
|
||||
printf("\n Reading from No.%d device No.%d flash....",nand_in.dev,csn);
|
||||
printf(" Reading from No.%d device No.%d flash....\n",nand_in.dev,csn);
|
||||
|
||||
page_num = length / hand.nand_ps +1;
|
||||
|
||||
@ -688,7 +688,7 @@ int nand_read(int mode)
|
||||
temp = ((NO_OOB<<12) & 0xf000) + ((csn<<4) & 0xff0) + NAND_READ_RAW;
|
||||
break;
|
||||
default:
|
||||
printf("\n unknow mode!");
|
||||
printf(" unknow mode!\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -698,12 +698,12 @@ int nand_read(int mode)
|
||||
|
||||
for (j=0;j<length;j++)
|
||||
{
|
||||
if (j % 16 == 0) printf("\n 0x%08x :",j);
|
||||
if (j % 16 == 0) printf(" 0x%08x :\n",j);
|
||||
printf("%02x ",(nand_in.buf)[j]);
|
||||
}
|
||||
|
||||
usb_read_data_from_ingenic(&ingenic_dev, ret, 8);
|
||||
printf("\n Operation end position : %d ",
|
||||
printf(" Operation end position : %d \n",
|
||||
(ret[3]<<24)|(ret[2]<<16)|(ret[1]<<8)|(ret[0]<<0));
|
||||
|
||||
return 1;
|
||||
@ -715,7 +715,7 @@ int debug_memory(int obj, unsigned int start, unsigned int size)
|
||||
|
||||
tmp = usb_get_ingenic_cpu(&ingenic_dev);
|
||||
if (tmp > 2) {
|
||||
printf("\n This command only run under UNBOOT state!");
|
||||
printf(" This command only run under UNBOOT state!\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -738,7 +738,7 @@ int debug_memory(int obj, unsigned int start, unsigned int size)
|
||||
else
|
||||
hand.fw_args.size = size;
|
||||
|
||||
printf("\n Now test memory from %x to %x: ",
|
||||
printf(" Now test memory from %x to %x: \n",
|
||||
start, start + hand.fw_args.size);
|
||||
|
||||
if (load_file(&ingenic_dev, STAGE1_FILE_PATH) < 1)
|
||||
@ -749,10 +749,10 @@ int debug_memory(int obj, unsigned int start, unsigned int size)
|
||||
usleep(100);
|
||||
usb_read_data_from_ingenic(&ingenic_dev, buffer, 8);
|
||||
if (buffer[0] != 0)
|
||||
printf("\n Test memory fail! Last error address is %x !",
|
||||
printf(" Test memory fail! Last error address is %x !\n",
|
||||
buffer[0]);
|
||||
else
|
||||
printf("\n Test memory pass!");
|
||||
printf(" Test memory pass!\n");
|
||||
|
||||
return 1;
|
||||
}
|
||||
@ -763,7 +763,7 @@ int debug_gpio(int obj, unsigned char ops, unsigned char pin)
|
||||
|
||||
tmp = usb_get_ingenic_cpu(&ingenic_dev);
|
||||
if (tmp > 2) {
|
||||
printf("\n This command only run under UNBOOT state!");
|
||||
printf(" This command only run under UNBOOT state!\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -772,7 +772,7 @@ int debug_gpio(int obj, unsigned char ops, unsigned char pin)
|
||||
tmp = 0;
|
||||
hand.fw_args.cpu_id = 0x4740;
|
||||
if (pin > 124) {
|
||||
printf("\n Jz4740 has 124 GPIO pin in all!");
|
||||
printf(" Jz4740 has 124 GPIO pin in all!\n");
|
||||
return -1;
|
||||
}
|
||||
break;
|
||||
@ -780,7 +780,7 @@ int debug_gpio(int obj, unsigned char ops, unsigned char pin)
|
||||
tmp = 0;
|
||||
hand.fw_args.cpu_id = 0x4750;
|
||||
if (pin > 178) {
|
||||
printf("\n Jz4750 has 178 GPIO pin in all!");
|
||||
printf(" Jz4750 has 178 GPIO pin in all!\n");
|
||||
return -1;
|
||||
}
|
||||
break;
|
||||
@ -790,9 +790,9 @@ int debug_gpio(int obj, unsigned char ops, unsigned char pin)
|
||||
hand.fw_args.pin_num = pin;
|
||||
|
||||
if (ops == 2)
|
||||
printf("\n GPIO %d set!",pin);
|
||||
printf(" GPIO %d set!\n",pin);
|
||||
else
|
||||
printf("\n GPIO %d clear!",pin);
|
||||
printf(" GPIO %d clear!\n",pin);
|
||||
|
||||
if (load_file(&ingenic_dev, STAGE1_FILE_PATH) < 1)
|
||||
return -1;
|
||||
|
@ -58,28 +58,28 @@ static const char COMMAND[][COMMAND_NUM]=
|
||||
|
||||
static int handle_help(void)
|
||||
{
|
||||
printf("\n command support in current version:"
|
||||
"\n help print this help;"
|
||||
"\n boot boot device and make it in stage2;"
|
||||
"\n list show current device number can connect;"
|
||||
"\n fconfig set USB Boot config file;"
|
||||
"\n nquery query NAND flash info;"
|
||||
"\n nread read NAND flash data with checking bad block and ECC;"
|
||||
"\n nreadraw read NAND flash data without checking bad block and ECC;"
|
||||
"\n nreadoob read NAND flash oob without checking bad block and ECC;"
|
||||
"\n nerase erase NAND flash;"
|
||||
"\n nprog program NAND flash with data and ECC;"
|
||||
"\n nmark mark a bad block in NAND flash;"
|
||||
"\n go execute program in SDRAM;"
|
||||
"\n version show current USB Boot software version;"
|
||||
"\n exit quit from telnet session;"
|
||||
"\n readnand read data from nand flash and store to SDRAM;"
|
||||
"\n load load file data to SDRAM;"
|
||||
"\n run run command script in file;"
|
||||
"\n memtest do SDRAM test;"
|
||||
"\n gpios let one GPIO to high level;"
|
||||
"\n gpioc let one GPIO to low level;");
|
||||
/* printf("\n nmake read all data from nand flash and store to file(experimental);"); */
|
||||
printf(" command support in current version:\n"
|
||||
" help print this help;\n"
|
||||
" boot boot device and make it in stage2;\n"
|
||||
" list show current device number can connect;\n"
|
||||
" fconfig set USB Boot config file;\n"
|
||||
" nquery query NAND flash info;\n"
|
||||
" nread read NAND flash data with checking bad block and ECC;\n"
|
||||
" nreadraw read NAND flash data without checking bad block and ECC;\n"
|
||||
" nreadoob read NAND flash oob without checking bad block and ECC;\n"
|
||||
" nerase erase NAND flash;\n"
|
||||
" nprog program NAND flash with data and ECC;\n"
|
||||
" nmark mark a bad block in NAND flash;\n"
|
||||
" go execute program in SDRAM;\n"
|
||||
" version show current USB Boot software version;\n"
|
||||
" exit quit from telnet session;\n"
|
||||
" readnand read data from nand flash and store to SDRAM;\n"
|
||||
" load load file data to SDRAM;\n"
|
||||
" run run command script in file;\n"
|
||||
" memtest do SDRAM test;\n"
|
||||
" gpios let one GPIO to high level;\n"
|
||||
" gpioc let one GPIO to low level;\n");
|
||||
/* printf(" nmake read all data from nand flash and store to file(experimental);\n"); */
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -102,7 +102,7 @@ unsigned int hex2dec(char *s)
|
||||
|
||||
static int handle_version(void)
|
||||
{
|
||||
printf("\n USB Boot Software current version: %s", INFLASH_VERSION);
|
||||
printf(" USB Boot Software current version: %s\n", INFLASH_VERSION);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -110,12 +110,12 @@ static int handle_version(void)
|
||||
int handle_nerase(void)
|
||||
{
|
||||
if (com_argc < 5) {
|
||||
printf("\n Usage:");
|
||||
printf(" Usage:\n");
|
||||
printf(" nerase (1) (2) (3) (4) ");
|
||||
printf("\n 1:start block number"
|
||||
"\n 2:block length"
|
||||
"\n 3:device index number"
|
||||
"\n 4:flash chip index number");
|
||||
printf(" 1:start block number\n"
|
||||
" 2:block length\n"
|
||||
" 3:device index number\n"
|
||||
" 4:flash chip index number\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -125,7 +125,7 @@ int handle_nerase(void)
|
||||
nand_in.length = atoi(com_argv[2]);
|
||||
nand_in.dev = atoi(com_argv[3]);
|
||||
if (atoi(com_argv[4]) >= MAX_DEV_NUM) {
|
||||
printf("\n Flash index number overflow!");
|
||||
printf(" Flash index number overflow!\n");
|
||||
return -1;
|
||||
}
|
||||
(nand_in.cs_map)[atoi(com_argv[4])] = 1;
|
||||
@ -140,11 +140,11 @@ int handle_nmark(void)
|
||||
{
|
||||
int i;
|
||||
if (com_argc < 4) {
|
||||
printf("\n Usage:");
|
||||
printf(" Usage:\n");
|
||||
printf(" nerase (1) (2) (3) ");
|
||||
printf("\n 1:bad block number"
|
||||
"\n 2:device index number"
|
||||
"\n 3:flash chip index number");
|
||||
printf(" 1:bad block number\n"
|
||||
" 2:device index number\n"
|
||||
" 3:flash chip index number\n");
|
||||
return -1;
|
||||
}
|
||||
init_nand_in();
|
||||
@ -153,7 +153,7 @@ int handle_nmark(void)
|
||||
nand_in.dev = atoi(com_argv[2]);
|
||||
|
||||
if (atoi(com_argv[3])>=MAX_DEV_NUM) {
|
||||
printf("\n Flash index number overflow!");
|
||||
printf(" Flash index number overflow!\n");
|
||||
return -1;
|
||||
}
|
||||
(nand_in.cs_map)[atoi(com_argv[3])] = 1;
|
||||
@ -167,11 +167,11 @@ int handle_memtest(void)
|
||||
unsigned int start, size;
|
||||
if (com_argc != 2 && com_argc != 4)
|
||||
{
|
||||
printf("\n Usage:");
|
||||
printf(" Usage:\n");
|
||||
printf(" memtest (1) [2] [3] ");
|
||||
printf("\n 1:device index number"
|
||||
"\n 2:SDRAM start address"
|
||||
"\n 3:test size");
|
||||
printf(" 1:device index number\n"
|
||||
" 2:SDRAM start address\n"
|
||||
" 3:test size\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -194,10 +194,10 @@ int handle_memtest(void)
|
||||
int handle_gpio(int mode)
|
||||
{
|
||||
if (com_argc < 3) {
|
||||
printf("\n Usage:"
|
||||
printf(" Usage:\n"
|
||||
" gpios (1) (2) "
|
||||
"\n 1:GPIO pin number"
|
||||
"\n 2:device index number");
|
||||
" 1:GPIO pin number\n"
|
||||
" 2:device index number\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -274,7 +274,7 @@ int command_handle(char *buf)
|
||||
handle_version();
|
||||
break;
|
||||
case 16: /* exit */
|
||||
printf("\n exiting inflash software\n");
|
||||
printf(" exiting inflash software\n");
|
||||
return -1; /* return -1 to break the main.c while
|
||||
* then run usb_ingenic_cleanup*/
|
||||
case 18:
|
||||
@ -293,7 +293,7 @@ int command_handle(char *buf)
|
||||
handle_memtest();
|
||||
break;
|
||||
default:
|
||||
printf("\n command not support or input error!\n");
|
||||
printf(" command not support or input error!\n");
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -52,56 +52,56 @@ int check_dump_cfg(struct hand *hand)
|
||||
printf("Now checking whether all configure args valid:");
|
||||
/* check PLL */
|
||||
if (hand->fw_args.ext_clk > 27 || hand->fw_args.ext_clk < 12) {
|
||||
printf("\n EXTCLK setting invalid!");
|
||||
printf(" EXTCLK setting invalid!\n");
|
||||
return 0;
|
||||
}
|
||||
if (hand->fw_args.phm_div > 32 || hand->fw_args.ext_clk < 2) {
|
||||
printf("\n PHMDIV setting invalid!");
|
||||
printf(" PHMDIV setting invalid!\n");
|
||||
return 0;
|
||||
}
|
||||
if ((hand->fw_args.cpu_speed * hand->fw_args.ext_clk ) % 12 != 0) {
|
||||
printf("\n CPUSPEED setting invalid!");
|
||||
printf(" CPUSPEED setting invalid!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* check SDRAM */
|
||||
if (hand->fw_args.bus_width > 1 ) {
|
||||
printf("\n SDRAMWIDTH setting invalid!");
|
||||
printf(" SDRAMWIDTH setting invalid!\n");
|
||||
return 0;
|
||||
}
|
||||
if (hand->fw_args.bank_num > 1 ) {
|
||||
printf("\n BANKNUM setting invalid!");
|
||||
printf(" BANKNUM setting invalid!\n");
|
||||
return 0;
|
||||
}
|
||||
if (hand->fw_args.row_addr > 13 && hand->fw_args.row_addr < 11 ) {
|
||||
printf("\n ROWADDR setting invalid!");
|
||||
printf(" ROWADDR setting invalid!\n");
|
||||
return 0;
|
||||
}
|
||||
if (hand->fw_args.col_addr > 13 && hand->fw_args.col_addr < 11 ) {
|
||||
printf("\n COLADDR setting invalid!");
|
||||
printf(" COLADDR setting invalid!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* check NAND */
|
||||
if ( hand->nand_ps < 2048 && hand->nand_os > 16 ) {
|
||||
printf("\n PAGESIZE or OOBSIZE setting invalid!");
|
||||
printf("\n PAGESIZE is %d,\t OOBSIZE is %d",
|
||||
printf(" PAGESIZE or OOBSIZE setting invalid!\n");
|
||||
printf(" PAGESIZE is %d,\t OOBSIZE is %d\n",
|
||||
hand->nand_ps, hand->nand_os);
|
||||
return 0;
|
||||
}
|
||||
if ( hand->nand_ps < 2048 && hand->nand_ppb > 32 ) {
|
||||
printf("\n PAGESIZE or PAGEPERBLOCK setting invalid!");
|
||||
printf(" PAGESIZE or PAGEPERBLOCK setting invalid!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ( hand->nand_ps > 512 && hand->nand_os <= 16 ) {
|
||||
printf("\n PAGESIZE or OOBSIZE setting invalid!");
|
||||
printf("\n PAGESIZE is %d,\t OOBSIZE is %d",
|
||||
printf(" PAGESIZE or OOBSIZE setting invalid!\n");
|
||||
printf(" PAGESIZE is %d,\t OOBSIZE is %d\n",
|
||||
hand->nand_ps, hand->nand_os);
|
||||
return 0;
|
||||
}
|
||||
if ( hand->nand_ps > 512 && hand->nand_ppb < 64 ) {
|
||||
printf("\n PAGESIZE or PAGEPERBLOCK setting invalid!");
|
||||
printf(" PAGESIZE or PAGEPERBLOCK setting invalid!\n");
|
||||
return 0;
|
||||
}
|
||||
printf(" YES\n");
|
||||
|
@ -48,6 +48,7 @@ int main(int argc, char **argv)
|
||||
int command = 0;
|
||||
char *cptr;
|
||||
char com_buf[256] = {0};
|
||||
char *cmdpt;
|
||||
|
||||
printf("inflash - Ingenic XBurst USB Boot Utility\n"
|
||||
"(c) 2009 Ingenic Semiconductor Inc., Qi Hardware Inc., Xiangfu Liu, Marek Lindner\n"
|
||||
@ -69,7 +70,7 @@ int main(int argc, char **argv)
|
||||
exit(EXIT_SUCCESS);
|
||||
case 'c':
|
||||
command = 1;
|
||||
strcpy(com_buf, optarg);
|
||||
cmdpt = optarg;
|
||||
break;
|
||||
default:
|
||||
help();
|
||||
@ -89,13 +90,23 @@ int main(int argc, char **argv)
|
||||
return EXIT_FAILURE;
|
||||
|
||||
if (command) { /* direct run command */
|
||||
char *delim=";";
|
||||
char *p;
|
||||
p = strtok(cmdpt, delim);
|
||||
strcpy(com_buf, p);
|
||||
printf(" Execute command: %s \n",com_buf);
|
||||
command_handle(com_buf);
|
||||
printf("\n");
|
||||
|
||||
while((p = strtok(NULL,delim))) {
|
||||
strcpy(com_buf, p);
|
||||
printf(" Execute command: %s \n",com_buf);
|
||||
command_handle(com_buf);
|
||||
}
|
||||
goto out;
|
||||
}
|
||||
|
||||
while (1) {
|
||||
printf("\ninflash :> ");
|
||||
printf("inflash :> ");
|
||||
cptr = fgets(com_buf, 256, stdin);
|
||||
if (cptr == NULL)
|
||||
continue;
|
||||
|
Loading…
Reference in New Issue
Block a user