This is an automated email from the ASF dual-hosted git repository.

vipulrahane pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-newt.git


The following commit(s) were added to refs/heads/master by this push:
     new 67de80e  mfg: account for updated bootloader path in mfg command
     new 9009682  Merge pull request #440 from vikrant-proxy/mfg-create
67de80e is described below

commit 67de80e3a247f2ec9b678e6c3aeffb52e34a23ae
Author: Vikrant More <vikr...@proxy.com>
AuthorDate: Sun Jul 11 14:16:59 2021 -0700

    mfg: account for updated bootloader path in mfg command
---
 newt/builder/paths.go |  1 +
 newt/mfg/build.go     |  7 ++++++-
 newt/mfg/emit.go      | 31 +++++++++++++++++++++++--------
 3 files changed, 30 insertions(+), 9 deletions(-)

diff --git a/newt/builder/paths.go b/newt/builder/paths.go
index cc5c2d3..46b61c6 100644
--- a/newt/builder/paths.go
+++ b/newt/builder/paths.go
@@ -28,6 +28,7 @@ import (
        "mynewt.apache.org/newt/util"
 )
 
+const BUILD_NAME_BOOT = "app/@mcuboot"
 const BUILD_NAME_APP = "app"
 const BUILD_NAME_LOADER = "loader"
 
diff --git a/newt/mfg/build.go b/newt/mfg/build.go
index e13b93c..ac04172 100644
--- a/newt/mfg/build.go
+++ b/newt/mfg/build.go
@@ -223,7 +223,12 @@ func newMfgBuildTarget(dt DecodedTarget,
                t.App().Name())
        man, err := manifest.ReadManifest(mpath)
        if err != nil {
-               return MfgBuildTarget{}, util.FmtNewtError("%s", err.Error())
+               mpath = builder.ManifestPath(dt.Name, builder.BUILD_NAME_BOOT,
+                       t.App().Name())
+               man, err = manifest.ReadManifest(mpath)
+               if err != nil {
+                       return MfgBuildTarget{}, util.FmtNewtError("%s", 
err.Error())
+               }
        }
 
        isBoot := parse.ValueIsTrue(man.Syscfg["BOOT_LOADER"])
diff --git a/newt/mfg/emit.go b/newt/mfg/emit.go
index 7a8068f..e6632d7 100644
--- a/newt/mfg/emit.go
+++ b/newt/mfg/emit.go
@@ -99,7 +99,7 @@ type MfgEmitter struct {
 // `.bin` files; image targets use `.img`.
 func targetSrcBinPath(t *target.Target, isBoot bool) string {
        if isBoot {
-               return builder.AppBinPath(t.Name(), builder.BUILD_NAME_APP,
+               return builder.AppBinPath(t.Name(), builder.BUILD_NAME_BOOT,
                        t.App().Name())
        } else {
                return builder.AppImgPath(t.Name(), builder.BUILD_NAME_APP,
@@ -108,26 +108,41 @@ func targetSrcBinPath(t *target.Target, isBoot bool) 
string {
 }
 
 // Calculates the source path of a target's `.elf` file.
-func targetSrcElfPath(t *target.Target) string {
-       return builder.AppElfPath(t.Name(), builder.BUILD_NAME_APP, 
t.App().Name())
+func targetSrcElfPath(t *target.Target, isBoot bool) string {
+       if isBoot {
+               return builder.AppElfPath(t.Name(), builder.BUILD_NAME_BOOT, 
t.App().Name())
+       } else {
+               return builder.AppElfPath(t.Name(), builder.BUILD_NAME_APP, 
t.App().Name())
+       }
 }
 
 // Calculates the source path of a target's manifest file.
-func targetSrcManifestPath(t *target.Target) string {
-       return builder.ManifestPath(t.Name(), builder.BUILD_NAME_APP,
-               t.App().Name())
+func targetSrcManifestPath(t *target.Target, isBoot bool) string {
+       if isBoot {
+               return builder.ManifestPath(t.Name(), builder.BUILD_NAME_BOOT,
+                       t.App().Name())
+       } else {
+               return builder.ManifestPath(t.Name(), builder.BUILD_NAME_APP,
+                       t.App().Name())
+       }
 }
 
 func newMfgEmitTarget(bt MfgBuildTarget) (MfgEmitTarget, error) {
+       var build_name string
+       if bt.IsBoot {
+               build_name = builder.BUILD_NAME_BOOT
+       } else {
+               build_name = builder.BUILD_NAME_APP
+       }
        return MfgEmitTarget{
                Name:    bt.Target.FullName(),
                Offset:  bt.Area.Offset + bt.Offset,
                Size:    bt.Size,
                IsBoot:  bt.IsBoot,
                BinPath: targetSrcBinPath(bt.Target, bt.IsBoot),
-               ElfPath: targetSrcElfPath(bt.Target),
+               ElfPath: targetSrcElfPath(bt.Target, bt.IsBoot),
                ManifestPath: builder.ManifestPath(bt.Target.Name(),
-                       builder.BUILD_NAME_APP, bt.Target.App().Name()),
+                       build_name, bt.Target.App().Name()),
                ExtraManifest: bt.ExtraManifest,
        }, nil
 }

Reply via email to