Skip to content

Commit

Permalink
Merge branch that merges rimage git repo back into sof repo
Browse files Browse the repository at this point in the history
See thesofproject#8178

Do this as a merge to help with git bisect
  • Loading branch information
marc-hb committed Oct 5, 2023
2 parents 2648964 + 28ad33f commit c5f465f
Show file tree
Hide file tree
Showing 76 changed files with 22,342 additions and 27 deletions.
23 changes: 4 additions & 19 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,19 +1,4 @@
[submodule "rimage"]
path = rimage
# This is a _relative_ submodule URL. In some use cases it's better than
# an _absolute_ submodule URL, in other cases it's not. One size does
# unfortunately not fit all.
#
# Among other pages, http://blog.tremily.us/posts/Relative_submodules/
# has a good comparison
#
# If you use Zephyr you must also look at the comments in sof/west.yml.
#
# If you want to fork or mirror sof.git _without_ doing the same for
# rimage.git then your automation may want you to change and git commit
# an absolute URL in your branch. No need to git commit for interactive
# use; a local and temporary edit of this file is enough for interactive
# use because .gitmodules is used only once to --init[ialize]
# .git/config the first time. Then .gitmodules is never used again after
# cloning.
url = ../rimage
[submodule "tomlc99"]
path = tools/rimage/tomlc99
url = https://github.com/thesofproject/tomlc99.git
branch = master
1 change: 0 additions & 1 deletion rimage
Submodule rimage deleted from 4fb9fe
6 changes: 6 additions & 0 deletions tools/rimage/.checkpatch.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
--codespell
--codespellfile scripts/spelling.txt
--ignore C99_COMMENT_TOLERANCE
--no-tree
--strict
-g
25 changes: 25 additions & 0 deletions tools/rimage/.github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
# Basic build test

name: build

# yamllint disable-line rule:truthy
on: [pull_request, push, workflow_dispatch]

env:
CMAKE_C_FLAGS: "-Werror -Wall -Wmissing-prototypes\
-Wimplicit-fallthrough=3 -Wpointer-arith"

jobs:
build-test:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
with: {fetch-depth: 50, submodules: recursive}

- name: install tools
run: sudo apt update && sudo apt install -y ninja-build

- name: build
run: cmake -B build/ -G Ninja
- run: cmake --build build/
30 changes: 30 additions & 0 deletions tools/rimage/.github/workflows/cppcheck.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
# SPDX-License-Identifier: BSD-3-Clause
# Tools that can save round-trips to github and a lot of time:
#
# yamllint -f parsable this.yml
# pip3 install ruamel.yaml.cmd
# yaml merge-expand this.yml exp.yml && diff -w -u this.yml exp.yml
#
# github.com also has a powerful web editor that can be used without
# committing.

name: cppcheck

# yamllint disable-line rule:truthy
on: [pull_request, push]

jobs:
cppcheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with: {fetch-depth: 50, submodules: recursive}

- name: apt install cppcheck
run: sudo apt update && sudo apt-get -y install cppcheck

# TODO enable more types of checks as they are fixed
- name: run cppcheck
run: cppcheck --platform=unix32 --force --max-configs=1024
--inconclusive --quiet --inline-suppr .
42 changes: 42 additions & 0 deletions tools/rimage/.github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
# SPDX-License-Identifier: BSD-3-Clause
# Tools that can save round-trips to github and a lot of time:
#
# yamllint -f parsable this.yml
# pip3 install ruamel.yaml.cmd
# yaml merge-expand this.yml exp.yml && diff -w -u this.yml exp.yml
#
# github.com also has a powerful web editor that can be used without
# committing.

name: codestyle

# yamllint disable-line rule:truthy
on: [pull_request]

jobs:
yamllint:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 50
submodules: recursive

- name: run yamllint
run: yamllint .github/workflows/*.yml
checkpatch:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: ${{ env.PR_FETCH_DEPTH }}

- name: install codespell
run: sudo apt update && sudo apt install -y codespell

- name: checkpatch.pl PR review
uses: webispy/checkpatch-action@v9
env:
CHECKPATCH_COMMAND: ./scripts/checkpatch.pl
2 changes: 2 additions & 0 deletions tools/rimage/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
build/
.checkpatch-camelcase.git.*
67 changes: 67 additions & 0 deletions tools/rimage/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# SPDX-License-Identifier: BSD-3-Clause

cmake_minimum_required(VERSION 3.10)

project(SOF_RIMAGE C)

if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
message(STATUS "No CMAKE_BUILD_TYPE, defaulting to Debug")
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build Type" FORCE)
endif()

add_executable(rimage
src/file_simple.c
src/cse.c
src/css.c
src/plat_auth.c
src/hash.c
src/pkcs1_5.c
src/manifest.c
src/ext_manifest.c
src/rimage.c
src/toml_utils.c
src/adsp_config.c
src/misc_utils.c
src/file_utils.c
src/elf_file.c
src/module.c
tomlc99/toml.c
)

set_property(TARGET rimage PROPERTY C_STANDARD 99)

target_compile_options(rimage PRIVATE
-Wall -Werror -Wmissing-prototypes -Wimplicit-fallthrough
)

if(CMAKE_C_COMPILER_VERSION VERSION_GREATER 9.1)
target_compile_options(rimage PRIVATE -Wno-char-subscripts)
endif()

# Windows builds use MSYS2 https://www.msys2.org/ to get linux tools and headers.
# MSYS_INSTALL_DIR variable points to MSYS2 installation directory.
# You may pass it as environmental or cmake configure variable.
if(${CMAKE_HOST_WIN32})
cmake_minimum_required(VERSION 3.20)
if(DEFINED ENV{MSYS_INSTALL_DIR} AND NOT MSYS_INSTALL_DIR)
set(MSYS_INSTALL_DIR $ENV{MSYS_INSTALL_DIR})
endif()

if(MSYS_INSTALL_DIR)
cmake_path(IS_ABSOLUTE MSYS_INSTALL_DIR IS_MSYS_INSTALL_DIR_ABSOLUTE)
if(NOT IS_MSYS_INSTALL_DIR_ABSOLUTE)
message(FATAL_ERROR "Please provide absolute path to MSYS2 installation
setting MSYS_INSTALL_DIR env variable")
endif()
# Include standard posix headers. Requires pacman openssl-devel package.
cmake_path(APPEND MSYS_INSTALL_DIR "usr" "include" OUTPUT_VARIABLE MSYS_SYSTEM_INCLUDE_PATH)
target_include_directories(rimage PRIVATE "${MSYS_SYSTEM_INCLUDE_PATH}")
endif()
endif()

target_link_libraries(rimage PRIVATE crypto)

target_include_directories(rimage PRIVATE
src/include/
tomlc99/
)
97 changes: 97 additions & 0 deletions tools/rimage/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
/*
* BSD 3 Clause
* Copyright (c) 2016, Intel Corporation
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/


// Copyright (c) 2003-2014 Cadence Design Systems, Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


Files with 2-Clause BSD licence:

src/include/rimage/elf.h

/*
* Derived from:
* $FreeBSD: src/sys/sys/elf32.h,v 1.8.14.1 2005/12/30 22:13:58 marcel Exp $
* $FreeBSD: src/sys/sys/elf64.h,v 1.10.14.1 2005/12/30 22:13:58 marcel Exp $
* $FreeBSD: src/sys/sys/elf_common.h,v 1.15.8.1 2005/12/30 22:13:58 marcel Exp $
* $FreeBSD: src/sys/alpha/include/elf.h,v 1.14 2003/09/25 01:10:22 peter Exp $
* $FreeBSD: src/sys/amd64/include/elf.h,v 1.18 2004/08/03 08:21:48 dfr Exp $
* $FreeBSD: src/sys/arm/include/elf.h,v 1.5.2.1 2006/06/30 21:42:52 cognet Exp $
* $FreeBSD: src/sys/i386/include/elf.h,v 1.16 2004/08/02 19:12:17 dfr Exp $
* $FreeBSD: src/sys/powerpc/include/elf.h,v 1.7 2004/11/02 09:47:01 ssouhlal Exp $
* $FreeBSD: src/sys/sparc64/include/elf.h,v 1.12 2003/09/25 01:10:26 peter Exp $
*
* Copyright (c) 1996-1998 John D. Polstra. All rights reserved.
* Copyright (c) 2001 David E. O'Brien
* Portions Copyright 2009 The Go Authors. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
*/
Loading

0 comments on commit c5f465f

Please sign in to comment.