You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ma...@apache.org on 2017/09/25 20:55:23 UTC
[mynewt-newtmgr] 01/01: image upload;
add support for specifying max mtu to use for serial newtmgr. Add
'-e' flag to image upload which stops upload from starting with erase flash
command.
This is an automated email from the ASF dual-hosted git repository.
marko pushed a commit to branch old_serial_bootloader
in repository https://gitbox.apache.org/repos/asf/mynewt-newtmgr.git
commit 39a318fcfb139b0e167c7bd1d43295deea7400ac
Author: Marko Kiiskila <ma...@runtime.io>
AuthorDate: Mon Sep 25 13:53:51 2017 -0700
image upload; add support for specifying max mtu to use for serial
newtmgr. Add '-e' flag to image upload which stops upload from
starting with erase flash command.
---
newtmgr/cli/image.go | 8 ++++++++
newtmgr/config/serial_config.go | 7 +++++++
nmxact/nmserial/serial_sesn.go | 2 +-
nmxact/nmserial/serial_xport.go | 2 ++
nmxact/xact/image.go | 16 ++++++++++++----
5 files changed, 30 insertions(+), 5 deletions(-)
diff --git a/newtmgr/cli/image.go b/newtmgr/cli/image.go
index e86566b..d0ad493 100644
--- a/newtmgr/cli/image.go
+++ b/newtmgr/cli/image.go
@@ -41,6 +41,8 @@ var (
coreNumBytes uint32
)
+var noerase bool
+
func imageFlagsStr(image nmp.ImageStateEntry) string {
strs := []string{}
@@ -183,6 +185,9 @@ func imageUploadCmd(cmd *cobra.Command, args []string) {
c := xact.NewImageUpgradeCmd()
c.SetTxOptions(nmutil.TxOptions())
c.Data = imageFile
+ if noerase == true {
+ c.NoErase = true
+ }
c.ProgressCb = func(c *xact.ImageUploadCmd, rsp *nmp.ImageUploadRsp) {
fmt.Printf("%d\n", rsp.Off)
}
@@ -382,6 +387,9 @@ func imageCmd() *cobra.Command {
Example: uploadEx,
Run: imageUploadCmd,
}
+ uploadCmd.PersistentFlags().BoolVarP(&noerase,
+ "noerase", "e", false,
+ "Don't send specific image erase command to start with")
imageCmd.AddCommand(uploadCmd)
coreListCmd := &cobra.Command{
diff --git a/newtmgr/config/serial_config.go b/newtmgr/config/serial_config.go
index 4775c57..41b5af1 100644
--- a/newtmgr/config/serial_config.go
+++ b/newtmgr/config/serial_config.go
@@ -61,6 +61,13 @@ func ParseSerialConnString(cs string) (*nmserial.XportCfg, error) {
return sc, einvalSerialConnString("Invalid baud: %s", v)
}
+ case "mtu":
+ var err error
+ sc.Mtu, err = strconv.Atoi(v)
+ if err != nil {
+ return sc, einvalSerialConnString("Invalid mtu: %s", v)
+ }
+
default:
return sc, einvalSerialConnString("Unrecognized key: %s", k)
}
diff --git a/nmxact/nmserial/serial_sesn.go b/nmxact/nmserial/serial_sesn.go
index 9bfc479..e8bbc2e 100644
--- a/nmxact/nmserial/serial_sesn.go
+++ b/nmxact/nmserial/serial_sesn.go
@@ -108,7 +108,7 @@ func (s *SerialSesn) MtuIn() int {
func (s *SerialSesn) MtuOut() int {
// Mynewt commands have a default chunk buffer size of 512. Account for
// base64 encoding.
- return 512*3/4 - omp.OMP_MSG_OVERHEAD
+ return s.sx.cfg.Mtu*3/4 - omp.OMP_MSG_OVERHEAD
}
func (s *SerialSesn) AbortRx(seq uint8) error {
diff --git a/nmxact/nmserial/serial_xport.go b/nmxact/nmserial/serial_xport.go
index 3099b56..1d642ee 100644
--- a/nmxact/nmserial/serial_xport.go
+++ b/nmxact/nmserial/serial_xport.go
@@ -39,12 +39,14 @@ import (
type XportCfg struct {
DevPath string
Baud int
+ Mtu int
ReadTimeout time.Duration
}
func NewXportCfg() *XportCfg {
return &XportCfg{
ReadTimeout: 10 * time.Second,
+ Mtu: 512,
}
}
diff --git a/nmxact/xact/image.go b/nmxact/xact/image.go
index 78880dd..959487b 100644
--- a/nmxact/xact/image.go
+++ b/nmxact/xact/image.go
@@ -166,6 +166,7 @@ func (c *ImageUploadCmd) Run(s sesn.Sesn) (Result, error) {
type ImageUpgradeCmd struct {
CmdBase
+ NoErase bool
Data []byte
ProgressCb ImageUploadProgressFn
}
@@ -178,6 +179,7 @@ type ImageUpgradeResult struct {
func NewImageUpgradeCmd() *ImageUpgradeCmd {
return &ImageUpgradeCmd{
CmdBase: NewCmdBase(),
+ NoErase: false,
}
}
@@ -255,11 +257,17 @@ func (c *ImageUpgradeCmd) runUpload(s sesn.Sesn) (*ImageUploadResult, error) {
}
func (c *ImageUpgradeCmd) Run(s sesn.Sesn) (Result, error) {
- eres, err := c.runErase(s)
- if err != nil {
- return nil, err
- }
+ var eres *ImageEraseResult = nil
+ var err error
+ if c.NoErase == false {
+ eres, err = c.runErase(s)
+ if err != nil {
+ return nil, err
+ }
+ } else {
+ eres = nil
+ }
ures, err := c.runUpload(s)
if err != nil {
return nil, err
--
To stop receiving notification emails like this one, please contact
"commits@mynewt.apache.org" <co...@mynewt.apache.org>.