commonlib: Add commonlib/bsd
This patch creates a new commonlib/bsd subdirectory with a similar purpose to the existing commonlib, with the difference that all files under this subdirectory shall be licensed under the BSD-3-Clause license (or compatible permissive license). The goal is to allow more code to be shared with libpayload in the future. Initially, I'm going to move a few files there that have already been BSD-licensed in the existing commonlib. I am also exracting most contents of the often-needed <commonlib/helpers.h> as long as they have either been written by me (and are hereby relicensed) or have an existing equivalent in BSD-licensed libpayload code. I am also relicensing <commonlib/compression.h> (written by me) and <commonlib/compiler.h> (same stuff exists in libpayload). Finally, I am extracting the cb_err error code definitions from <types.h> into a new BSD-licensed header so that future commonlib/bsd code can build upon a common set of error values. I am making the assumption here that the enum constants and the half-sentence fragments of documentation next to them by themselves do not meet the threshold of copyrightability. Change-Id: I316cea70930f131e8e93d4218542ddb5ae4b63a2 Signed-off-by: Julius Werner <jwerner@chromium.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/38420 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Patrick Rudolph <siro@das-labor.org>
This commit is contained in:
parent
e4d6c033fe
commit
98eeb96135
|
@ -490,7 +490,7 @@ F: src/device/oprom/
|
||||||
|
|
||||||
CBFS
|
CBFS
|
||||||
F: src/include/cbfs.h
|
F: src/include/cbfs.h
|
||||||
F: src/include/cbfs_serialized.h
|
F: src/commonlib/bsd/include/commonlib/bsd/cbfs_serialized.h
|
||||||
F: util/cbfstool/
|
F: util/cbfstool/
|
||||||
|
|
||||||
CBMEM
|
CBMEM
|
||||||
|
|
|
@ -394,12 +394,12 @@ COREBOOT_EXTRA_VERSION := -$(call strip_quotes,$(CONFIG_LOCALVERSION))
|
||||||
COREBOOT_EXPORTS += COREBOOT_EXTRA_VERSION
|
COREBOOT_EXPORTS += COREBOOT_EXTRA_VERSION
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CPPFLAGS_common := -Isrc -Isrc/include -Isrc/commonlib/include -I$(obj)
|
CPPFLAGS_common := -Isrc -Isrc/include -Isrc/commonlib/include -Isrc/commonlib/bsd/include -I$(obj)
|
||||||
VBOOT_SOURCE ?= 3rdparty/vboot
|
VBOOT_SOURCE ?= 3rdparty/vboot
|
||||||
CPPFLAGS_common += -I$(VBOOT_SOURCE)/firmware/include
|
CPPFLAGS_common += -I$(VBOOT_SOURCE)/firmware/include
|
||||||
CPPFLAGS_common += -include $(src)/include/kconfig.h
|
CPPFLAGS_common += -include $(src)/include/kconfig.h
|
||||||
CPPFLAGS_common += -include $(src)/include/rules.h
|
CPPFLAGS_common += -include $(src)/include/rules.h
|
||||||
CPPFLAGS_common += -include $(src)/commonlib/include/commonlib/compiler.h
|
CPPFLAGS_common += -include $(src)/commonlib/bsd/include/commonlib/bsd/compiler.h
|
||||||
CPPFLAGS_common += -I3rdparty
|
CPPFLAGS_common += -I3rdparty
|
||||||
CPPFLAGS_common += -D__BUILD_DIR__=\"$(obj)\"
|
CPPFLAGS_common += -D__BUILD_DIR__=\"$(obj)\"
|
||||||
|
|
||||||
|
|
|
@ -12,13 +12,12 @@
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <cbfs.h>
|
||||||
|
#include <commonlib/bsd/compression.h>
|
||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
#include <bootmem.h>
|
#include <bootmem.h>
|
||||||
#include <program_loading.h>
|
#include <program_loading.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <commonlib/compression.h>
|
|
||||||
#include <commonlib/cbfs_serialized.h>
|
|
||||||
#include <commonlib/helpers.h>
|
|
||||||
#include <lib.h>
|
#include <lib.h>
|
||||||
#include <fit.h>
|
#include <fit.h>
|
||||||
#include <endian.h>
|
#include <endian.h>
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
#include <arch/encoding.h>
|
#include <arch/encoding.h>
|
||||||
#include <arch/smp/smp.h>
|
#include <arch/smp/smp.h>
|
||||||
#include <mcall.h>
|
#include <mcall.h>
|
||||||
#include <commonlib/cbfs_serialized.h>
|
#include <cbfs.h>
|
||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
|
|
||||||
struct arch_prog_run_args {
|
struct arch_prog_run_args {
|
||||||
|
|
|
@ -14,11 +14,11 @@
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <cbfs.h>
|
||||||
|
#include <commonlib/bsd/compression.h>
|
||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
#include <bootmem.h>
|
#include <bootmem.h>
|
||||||
#include <program_loading.h>
|
#include <program_loading.h>
|
||||||
#include <commonlib/compression.h>
|
|
||||||
#include <commonlib/cbfs_serialized.h>
|
|
||||||
#include <lib.h>
|
#include <lib.h>
|
||||||
#include <fit.h>
|
#include <fit.h>
|
||||||
#include <endian.h>
|
#include <endian.h>
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
|
|
||||||
#include <mcall.h>
|
#include <mcall.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <commonlib/compiler.h>
|
|
||||||
#include <arch/exception.h>
|
#include <arch/exception.h>
|
||||||
#include <sbi.h>
|
#include <sbi.h>
|
||||||
#include <vm.h>
|
#include <vm.h>
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
#include <arch/smp/smp.h>
|
#include <arch/smp/smp.h>
|
||||||
#include <arch/smp/spinlock.h>
|
#include <arch/smp/spinlock.h>
|
||||||
#include <mcall.h>
|
#include <mcall.h>
|
||||||
#include <commonlib/compiler.h>
|
|
||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
|
|
||||||
void smp_pause(int working_hartid)
|
void smp_pause(int working_hartid)
|
||||||
|
|
|
@ -30,11 +30,11 @@ ramstage-y += cbfs.c
|
||||||
smm-y += cbfs.c
|
smm-y += cbfs.c
|
||||||
postcar-y += cbfs.c
|
postcar-y += cbfs.c
|
||||||
|
|
||||||
decompressor-y += lz4_wrapper.c
|
decompressor-y += bsd/lz4_wrapper.c
|
||||||
bootblock-y += lz4_wrapper.c
|
bootblock-y += bsd/lz4_wrapper.c
|
||||||
verstage-y += lz4_wrapper.c
|
verstage-y += bsd/lz4_wrapper.c
|
||||||
romstage-y += lz4_wrapper.c
|
romstage-y += bsd/lz4_wrapper.c
|
||||||
ramstage-y += lz4_wrapper.c
|
ramstage-y += bsd/lz4_wrapper.c
|
||||||
postcar-y += lz4_wrapper.c
|
postcar-y += bsd/lz4_wrapper.c
|
||||||
|
|
||||||
ramstage-y += sort.c
|
ramstage-y += sort.c
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
/* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0-or-later */
|
||||||
|
|
||||||
|
#ifndef _COMMONLIB_BSD_CB_ERR_H_
|
||||||
|
#define _COMMONLIB_BSD_CB_ERR_H_
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* coreboot error codes
|
||||||
|
*
|
||||||
|
* Common error definitions that can be used for any function. All error values
|
||||||
|
* should be negative -- when useful, positive values can also be used to denote
|
||||||
|
* success. Allocate a new group or errors every 100 values.
|
||||||
|
*/
|
||||||
|
enum cb_err {
|
||||||
|
CB_SUCCESS = 0, /**< Call completed successfully */
|
||||||
|
CB_ERR = -1, /**< Generic error code */
|
||||||
|
CB_ERR_ARG = -2, /**< Invalid argument */
|
||||||
|
|
||||||
|
/* NVRAM/CMOS errors */
|
||||||
|
CB_CMOS_OTABLE_DISABLED = -100, /**< Option table disabled */
|
||||||
|
CB_CMOS_LAYOUT_NOT_FOUND = -101, /**< Layout file not found */
|
||||||
|
CB_CMOS_OPTION_NOT_FOUND = -102, /**< Option string not found */
|
||||||
|
CB_CMOS_ACCESS_ERROR = -103, /**< CMOS access error */
|
||||||
|
CB_CMOS_CHECKSUM_INVALID = -104, /**< CMOS checksum is invalid */
|
||||||
|
|
||||||
|
/* Keyboard test failures */
|
||||||
|
CB_KBD_CONTROLLER_FAILURE = -200,
|
||||||
|
CB_KBD_INTERFACE_FAILURE = -201,
|
||||||
|
|
||||||
|
/* I2C controller failures */
|
||||||
|
CB_I2C_NO_DEVICE = -300, /**< Device is not responding */
|
||||||
|
CB_I2C_BUSY = -301, /**< Device tells it's busy */
|
||||||
|
CB_I2C_PROTOCOL_ERROR = -302, /**< Data lost or spurious slave
|
||||||
|
device response, try again? */
|
||||||
|
CB_I2C_TIMEOUT = -303, /**< Transmission timed out */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Don't typedef the enum directly, so the size is unambiguous for serialization. */
|
||||||
|
typedef int32_t cb_err_t;
|
||||||
|
|
||||||
|
#endif /* _COMMONLIB_BSD_CB_ERR_H_ */
|
|
@ -1,48 +1,4 @@
|
||||||
/*
|
/* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0-only */
|
||||||
* This file is part of the coreboot project.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2008 Jordan Crouse <jordan@cosmicpenguin.net>
|
|
||||||
* Copyright (C) 2012 Google, Inc.
|
|
||||||
* Copyright (C) 2013 The Chromium OS Authors. All rights reserved.
|
|
||||||
*
|
|
||||||
* This file is dual-licensed. You can choose between:
|
|
||||||
* - The GNU GPL, version 2, as published by the Free Software Foundation
|
|
||||||
* - The revised BSD license (without advertising clause)
|
|
||||||
*
|
|
||||||
* ---------------------------------------------------------------------------
|
|
||||||
* 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; version 2 of the License.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
* ---------------------------------------------------------------------------
|
|
||||||
* 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. The name of the author may not be used to endorse or promote products
|
|
||||||
* derived from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
* ---------------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _CBFS_SERIALIZED_H_
|
#ifndef _CBFS_SERIALIZED_H_
|
||||||
#define _CBFS_SERIALIZED_H_
|
#define _CBFS_SERIALIZED_H_
|
|
@ -1,18 +1,7 @@
|
||||||
/*
|
/* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0-only */
|
||||||
* This file is part of the coreboot 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; version 2 of the License.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _COMMONLIB_COMPILER_H_
|
#ifndef _COMMONLIB_BSD_COMPILER_H_
|
||||||
#define _COMMONLIB_COMPILER_H_
|
#define _COMMONLIB_BSD_COMPILER_H_
|
||||||
|
|
||||||
#ifndef __packed
|
#ifndef __packed
|
||||||
#if defined(__WIN32) || defined(__WIN64)
|
#if defined(__WIN32) || defined(__WIN64)
|
|
@ -1,15 +1,4 @@
|
||||||
/*
|
/* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0-only */
|
||||||
* This file is part of the coreboot 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; version 2 of the License.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _COMMONLIB_COMPRESSION_H_
|
#ifndef _COMMONLIB_COMPRESSION_H_
|
||||||
#define _COMMONLIB_COMPRESSION_H_
|
#define _COMMONLIB_COMPRESSION_H_
|
|
@ -0,0 +1,41 @@
|
||||||
|
/* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0-only */
|
||||||
|
|
||||||
|
#ifndef FLASHMAP_SERIALIZED_H__
|
||||||
|
#define FLASHMAP_SERIALIZED_H__
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#define FMAP_SIGNATURE "__FMAP__"
|
||||||
|
#define FMAP_VER_MAJOR 1 /* this header's FMAP minor version */
|
||||||
|
#define FMAP_VER_MINOR 1 /* this header's FMAP minor version */
|
||||||
|
#define FMAP_STRLEN 32 /* maximum length for strings, */
|
||||||
|
/* including null-terminator */
|
||||||
|
|
||||||
|
enum fmap_flags {
|
||||||
|
FMAP_AREA_STATIC = 1 << 0,
|
||||||
|
FMAP_AREA_COMPRESSED = 1 << 1,
|
||||||
|
FMAP_AREA_RO = 1 << 2,
|
||||||
|
FMAP_AREA_PRESERVE = 1 << 3,
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Mapping of volatile and static regions in firmware binary */
|
||||||
|
struct fmap_area {
|
||||||
|
uint32_t offset; /* offset relative to base */
|
||||||
|
uint32_t size; /* size in bytes */
|
||||||
|
uint8_t name[FMAP_STRLEN]; /* descriptive name */
|
||||||
|
uint16_t flags; /* flags for this area */
|
||||||
|
} __packed;
|
||||||
|
|
||||||
|
struct fmap {
|
||||||
|
uint8_t signature[8]; /* "__FMAP__" (0x5F5F464D41505F5F) */
|
||||||
|
uint8_t ver_major; /* major version */
|
||||||
|
uint8_t ver_minor; /* minor version */
|
||||||
|
uint64_t base; /* address of the firmware binary */
|
||||||
|
uint32_t size; /* size of firmware binary in bytes */
|
||||||
|
uint8_t name[FMAP_STRLEN]; /* name of this firmware binary */
|
||||||
|
uint16_t nareas; /* number of areas described by
|
||||||
|
fmap_areas[] below */
|
||||||
|
struct fmap_area areas[];
|
||||||
|
} __packed;
|
||||||
|
|
||||||
|
#endif /* FLASHMAP_SERIALIZED_H__ */
|
|
@ -0,0 +1,89 @@
|
||||||
|
/* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0-only */
|
||||||
|
|
||||||
|
#ifndef COMMONLIB_BSD_HELPERS_H
|
||||||
|
#define COMMONLIB_BSD_HELPERS_H
|
||||||
|
|
||||||
|
#ifndef __ASSEMBLER__
|
||||||
|
#include <commonlib/bsd/compiler.h>
|
||||||
|
#include <stddef.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ARRAY_SIZE
|
||||||
|
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define ALIGN(x, a) __ALIGN_MASK(x, (__typeof__(x))(a)-1UL)
|
||||||
|
#define __ALIGN_MASK(x, mask) (((x)+(mask))&~(mask))
|
||||||
|
#define ALIGN_UP(x, a) ALIGN((x), (a))
|
||||||
|
#define ALIGN_DOWN(x, a) ((x) & ~((__typeof__(x))(a)-1UL))
|
||||||
|
#define IS_ALIGNED(x, a) (((x) & ((__typeof__(x))(a)-1UL)) == 0)
|
||||||
|
|
||||||
|
/* Double-evaluation unsafe min/max, for bitfields and outside of functions */
|
||||||
|
#define __CMP_UNSAFE(a, b, op) ((a) op (b) ? (a) : (b))
|
||||||
|
#define MIN_UNSAFE(a, b) __CMP_UNSAFE(a, b, <)
|
||||||
|
#define MAX_UNSAFE(a, b) __CMP_UNSAFE(a, b, >)
|
||||||
|
|
||||||
|
#define __CMP_SAFE(a, b, op, var_a, var_b) ({ \
|
||||||
|
__TYPEOF_UNLESS_CONST(a, b) var_a = (a); \
|
||||||
|
__TYPEOF_UNLESS_CONST(b, a) var_b = (b); \
|
||||||
|
var_a op var_b ? var_a : var_b; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define __CMP(a, b, op) __builtin_choose_expr( \
|
||||||
|
__builtin_constant_p(a) && __builtin_constant_p(b), \
|
||||||
|
__CMP_UNSAFE(a, b, op), __CMP_SAFE(a, b, op, __TMPNAME, __TMPNAME))
|
||||||
|
|
||||||
|
#ifndef MIN
|
||||||
|
#define MIN(a, b) __CMP(a, b, <)
|
||||||
|
#endif
|
||||||
|
#ifndef MAX
|
||||||
|
#define MAX(a, b) __CMP(a, b, >)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ABS
|
||||||
|
#define ABS(a) ({ \
|
||||||
|
__typeof__(a) _abs_local_a = (a); \
|
||||||
|
(_abs_local_a < 0) ? (-_abs_local_a) : _abs_local_a; \
|
||||||
|
})
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define IS_POWER_OF_2(x) ({ \
|
||||||
|
__typeof__(x) _power_local_x = (x); \
|
||||||
|
(_power_local_x & (_power_local_x - 1)) == 0; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define DIV_ROUND_UP(x, y) ({ \
|
||||||
|
__typeof__(x) _div_local_x = (x); \
|
||||||
|
__typeof__(y) _div_local_y = (y); \
|
||||||
|
(_div_local_x + _div_local_y - 1) / _div_local_y; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define SWAP(a, b) do { \
|
||||||
|
__typeof__(&(a)) _swap_local_a = &(a); \
|
||||||
|
__typeof__(&(b)) _swap_local_b = &(b); \
|
||||||
|
__typeof__(a) _swap_local_tmp = *_swap_local_a; \
|
||||||
|
*_swap_local_a = *_swap_local_b; \
|
||||||
|
*_swap_local_b = _swap_local_tmp; \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
/* Standard units. */
|
||||||
|
#define KiB (1<<10)
|
||||||
|
#define MiB (1<<20)
|
||||||
|
#define GiB (1<<30)
|
||||||
|
|
||||||
|
#define KHz (1000)
|
||||||
|
#define MHz (1000 * KHz)
|
||||||
|
#define GHz (1000 * MHz)
|
||||||
|
|
||||||
|
#ifndef offsetof
|
||||||
|
#define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define check_member(structure, member, offset) _Static_assert( \
|
||||||
|
offsetof(struct structure, member) == offset, \
|
||||||
|
"`struct " #structure "` offset for `" #member "` is not " #offset)
|
||||||
|
|
||||||
|
/* Calculate size of structure member. */
|
||||||
|
#define member_size(type, member) (sizeof(((type *)0)->member))
|
||||||
|
|
||||||
|
#endif /* COMMONLIB_BSD_HELPERS_H */
|
|
@ -1,37 +1,8 @@
|
||||||
/*
|
/* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0-only */
|
||||||
* Copyright 2015-2016 Google Inc.
|
|
||||||
*
|
|
||||||
* 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. The name of the author may not be used to endorse or promote products
|
|
||||||
* derived from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* Alternatively, this software may be distributed under the terms of the
|
|
||||||
* GNU General Public License ("GPL") version 2 as published by the Free
|
|
||||||
* Software Foundation.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <commonlib/compression.h>
|
#include <commonlib/bsd/compression.h>
|
||||||
#include <commonlib/endian.h>
|
#include <commonlib/bsd/helpers.h>
|
||||||
#include <commonlib/helpers.h>
|
#include <endian.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
@ -41,7 +12,7 @@
|
||||||
* access support), we can easily write the ones we need ourselves. */
|
* access support), we can easily write the ones we need ourselves. */
|
||||||
static uint16_t LZ4_readLE16(const void *src)
|
static uint16_t LZ4_readLE16(const void *src)
|
||||||
{
|
{
|
||||||
return read_le16(src);
|
return le16toh(*(const uint16_t *)src);
|
||||||
}
|
}
|
||||||
static void LZ4_copy8(void *dst, const void *src)
|
static void LZ4_copy8(void *dst, const void *src)
|
||||||
{
|
{
|
||||||
|
@ -143,7 +114,7 @@ size_t ulz4fn(const void *src, size_t srcn, void *dst, size_t dstn)
|
||||||
return 0; /* input overrun */
|
return 0; /* input overrun */
|
||||||
|
|
||||||
/* We assume there's always only a single, standard frame. */
|
/* We assume there's always only a single, standard frame. */
|
||||||
if (read_le32(&h->magic) != LZ4F_MAGICNUMBER || h->version != 1)
|
if (le32toh(h->magic) != LZ4F_MAGICNUMBER || h->version != 1)
|
||||||
return 0; /* unknown format */
|
return 0; /* unknown format */
|
||||||
if (h->reserved0 || h->reserved1 || h->reserved2)
|
if (h->reserved0 || h->reserved1 || h->reserved2)
|
||||||
return 0; /* reserved must be zero */
|
return 0; /* reserved must be zero */
|
||||||
|
@ -158,7 +129,9 @@ size_t ulz4fn(const void *src, size_t srcn, void *dst, size_t dstn)
|
||||||
}
|
}
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
struct lz4_block_header b = { { .raw = read_le32(in) } };
|
struct lz4_block_header b = {
|
||||||
|
{ .raw = le32toh(*(const uint32_t *)in) }
|
||||||
|
};
|
||||||
in += sizeof(struct lz4_block_header);
|
in += sizeof(struct lz4_block_header);
|
||||||
|
|
||||||
if ((size_t)(in - src) + b.size > srcn)
|
if ((size_t)(in - src) + b.size > srcn)
|
|
@ -14,7 +14,7 @@
|
||||||
#ifndef _COMMONLIB_CBFS_H_
|
#ifndef _COMMONLIB_CBFS_H_
|
||||||
#define _COMMONLIB_CBFS_H_
|
#define _COMMONLIB_CBFS_H_
|
||||||
|
|
||||||
#include <commonlib/cbfs_serialized.h>
|
#include <commonlib/bsd/cbfs_serialized.h>
|
||||||
#include <commonlib/region.h>
|
#include <commonlib/region.h>
|
||||||
#include <vb2_api.h>
|
#include <vb2_api.h>
|
||||||
|
|
||||||
|
|
|
@ -1,74 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright 2010, Google Inc.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are
|
|
||||||
* met:
|
|
||||||
*
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* * 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.
|
|
||||||
* * Neither the name of Google Inc. 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
|
|
||||||
* OWNER 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.
|
|
||||||
*
|
|
||||||
* Alternatively, this software may be distributed under the terms of the
|
|
||||||
* GNU General Public License ("GPL") version 2 as published by the Free
|
|
||||||
* Software Foundation.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef FLASHMAP_SERIALIZED_H__
|
|
||||||
#define FLASHMAP_SERIALIZED_H__
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
#define FMAP_SIGNATURE "__FMAP__"
|
|
||||||
#define FMAP_VER_MAJOR 1 /* this header's FMAP minor version */
|
|
||||||
#define FMAP_VER_MINOR 1 /* this header's FMAP minor version */
|
|
||||||
#define FMAP_STRLEN 32 /* maximum length for strings, */
|
|
||||||
/* including null-terminator */
|
|
||||||
|
|
||||||
enum fmap_flags {
|
|
||||||
FMAP_AREA_STATIC = 1 << 0,
|
|
||||||
FMAP_AREA_COMPRESSED = 1 << 1,
|
|
||||||
FMAP_AREA_RO = 1 << 2,
|
|
||||||
FMAP_AREA_PRESERVE = 1 << 3,
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Mapping of volatile and static regions in firmware binary */
|
|
||||||
struct fmap_area {
|
|
||||||
uint32_t offset; /* offset relative to base */
|
|
||||||
uint32_t size; /* size in bytes */
|
|
||||||
uint8_t name[FMAP_STRLEN]; /* descriptive name */
|
|
||||||
uint16_t flags; /* flags for this area */
|
|
||||||
} __packed;
|
|
||||||
|
|
||||||
struct fmap {
|
|
||||||
uint8_t signature[8]; /* "__FMAP__" (0x5F5F464D41505F5F) */
|
|
||||||
uint8_t ver_major; /* major version */
|
|
||||||
uint8_t ver_minor; /* minor version */
|
|
||||||
uint64_t base; /* address of the firmware binary */
|
|
||||||
uint32_t size; /* size of firmware binary in bytes */
|
|
||||||
uint8_t name[FMAP_STRLEN]; /* name of this firmware binary */
|
|
||||||
uint16_t nareas; /* number of areas described by
|
|
||||||
fmap_areas[] below */
|
|
||||||
struct fmap_area areas[];
|
|
||||||
} __packed;
|
|
||||||
|
|
||||||
#endif /* FLASHMAP_SERIALIZED_H__ */
|
|
|
@ -13,71 +13,12 @@
|
||||||
|
|
||||||
#ifndef COMMONLIB_HELPERS_H
|
#ifndef COMMONLIB_HELPERS_H
|
||||||
#define COMMONLIB_HELPERS_H
|
#define COMMONLIB_HELPERS_H
|
||||||
/* This file is for helpers for both coreboot firmware and its utilities. */
|
|
||||||
|
|
||||||
#ifndef __ASSEMBLER__
|
/* This file is for helpers for both coreboot firmware and its utilities. Most
|
||||||
#include <commonlib/compiler.h>
|
of this has moved into <commonlib/bsd/helpers.h> now, this wrapper is just
|
||||||
#include <stddef.h>
|
for the stuff that nobody bothered to confirm BSD-licensability of yet. */
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef ARRAY_SIZE
|
#include <commonlib/bsd/helpers.h>
|
||||||
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define ALIGN(x, a) __ALIGN_MASK(x, (__typeof__(x))(a)-1UL)
|
|
||||||
#define __ALIGN_MASK(x, mask) (((x)+(mask))&~(mask))
|
|
||||||
#define ALIGN_UP(x, a) ALIGN((x), (a))
|
|
||||||
#define ALIGN_DOWN(x, a) ((x) & ~((__typeof__(x))(a)-1UL))
|
|
||||||
#define IS_ALIGNED(x, a) (((x) & ((__typeof__(x))(a)-1UL)) == 0)
|
|
||||||
|
|
||||||
/* Double-evaluation unsafe min/max, for bitfields and outside of functions */
|
|
||||||
#define __CMP_UNSAFE(a, b, op) ((a) op (b) ? (a) : (b))
|
|
||||||
#define MIN_UNSAFE(a, b) __CMP_UNSAFE(a, b, <)
|
|
||||||
#define MAX_UNSAFE(a, b) __CMP_UNSAFE(a, b, >)
|
|
||||||
|
|
||||||
#define __CMP_SAFE(a, b, op, var_a, var_b) ({ \
|
|
||||||
__TYPEOF_UNLESS_CONST(a, b) var_a = (a); \
|
|
||||||
__TYPEOF_UNLESS_CONST(b, a) var_b = (b); \
|
|
||||||
var_a op var_b ? var_a : var_b; \
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
#define __CMP(a, b, op) __builtin_choose_expr( \
|
|
||||||
__builtin_constant_p(a) && __builtin_constant_p(b), \
|
|
||||||
__CMP_UNSAFE(a, b, op), __CMP_SAFE(a, b, op, __TMPNAME, __TMPNAME))
|
|
||||||
|
|
||||||
#ifndef MIN
|
|
||||||
#define MIN(a, b) __CMP(a, b, <)
|
|
||||||
#endif
|
|
||||||
#ifndef MAX
|
|
||||||
#define MAX(a, b) __CMP(a, b, >)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef ABS
|
|
||||||
#define ABS(a) ({ \
|
|
||||||
__typeof__(a) _abs_local_a = (a); \
|
|
||||||
(_abs_local_a < 0) ? (-_abs_local_a) : _abs_local_a; \
|
|
||||||
})
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define IS_POWER_OF_2(x) ({ \
|
|
||||||
__typeof__(x) _power_local_x = (x); \
|
|
||||||
(_power_local_x & (_power_local_x - 1)) == 0; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define DIV_ROUND_UP(x, y) ({ \
|
|
||||||
__typeof__(x) _div_local_x = (x); \
|
|
||||||
__typeof__(y) _div_local_y = (y); \
|
|
||||||
(_div_local_x + _div_local_y - 1) / _div_local_y; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define SWAP(a, b) do { \
|
|
||||||
__typeof__(&(a)) _swap_local_a = &(a); \
|
|
||||||
__typeof__(&(b)) _swap_local_b = &(b); \
|
|
||||||
__typeof__(a) _swap_local_tmp = *_swap_local_a; \
|
|
||||||
*_swap_local_a = *_swap_local_b; \
|
|
||||||
*_swap_local_b = _swap_local_tmp; \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Divide positive or negative dividend by positive divisor and round
|
* Divide positive or negative dividend by positive divisor and round
|
||||||
|
@ -93,25 +34,6 @@
|
||||||
((_div_local_x - (_div_local_d / 2)) / _div_local_d); \
|
((_div_local_x - (_div_local_d / 2)) / _div_local_d); \
|
||||||
})
|
})
|
||||||
|
|
||||||
/* Standard units. */
|
|
||||||
#define KiB (1<<10)
|
|
||||||
#define MiB (1<<20)
|
|
||||||
#define GiB (1<<30)
|
|
||||||
/* Could we ever run into this one? I hope we get this much memory! */
|
|
||||||
#define TiB (1<<40)
|
|
||||||
|
|
||||||
#define KHz (1000)
|
|
||||||
#define MHz (1000 * KHz)
|
|
||||||
#define GHz (1000 * MHz)
|
|
||||||
|
|
||||||
#ifndef offsetof
|
|
||||||
#define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define check_member(structure, member, offset) _Static_assert( \
|
|
||||||
offsetof(struct structure, member) == offset, \
|
|
||||||
"`struct " #structure "` offset for `" #member "` is not " #offset)
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* container_of - cast a member of a structure out to the containing structure
|
* container_of - cast a member of a structure out to the containing structure
|
||||||
* @param ptr: the pointer to the member.
|
* @param ptr: the pointer to the member.
|
||||||
|
@ -123,9 +45,6 @@
|
||||||
const __typeof__(((type *)0)->member) *__mptr = (ptr); \
|
const __typeof__(((type *)0)->member) *__mptr = (ptr); \
|
||||||
(type *)((char *)__mptr - offsetof(type, member)); })
|
(type *)((char *)__mptr - offsetof(type, member)); })
|
||||||
|
|
||||||
/* Calculate size of structure member. */
|
|
||||||
#define member_size(type, member) (sizeof(((type *)0)->member))
|
|
||||||
|
|
||||||
#ifndef __unused
|
#ifndef __unused
|
||||||
#define __unused __attribute__((unused))
|
#define __unused __attribute__((unused))
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -16,8 +16,8 @@
|
||||||
#ifndef _FMAP_H_
|
#ifndef _FMAP_H_
|
||||||
#define _FMAP_H_
|
#define _FMAP_H_
|
||||||
|
|
||||||
|
#include <commonlib/bsd/fmap_serialized.h>
|
||||||
#include <commonlib/region.h>
|
#include <commonlib/region.h>
|
||||||
#include <commonlib/fmap_serialized.h>
|
|
||||||
|
|
||||||
/* Locate the named area in the fmap and fill in a region device representing
|
/* Locate the named area in the fmap and fill in a region device representing
|
||||||
* that area. The region is a sub-region of the readonly boot media. Return
|
* that area. The region is a sub-region of the readonly boot media. Return
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
#define __TYPES_H
|
#define __TYPES_H
|
||||||
|
|
||||||
/* types.h is supposed to provide the standard headers defined in here: */
|
/* types.h is supposed to provide the standard headers defined in here: */
|
||||||
|
#include <commonlib/bsd/cb_err.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
@ -30,36 +31,4 @@
|
||||||
#define BIT(x) (1ul << (x))
|
#define BIT(x) (1ul << (x))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
|
||||||
* coreboot error codes
|
|
||||||
*
|
|
||||||
* When building functions that return a status or an error code, use cb_err as
|
|
||||||
* the return type. When failure reason needs to be communicated by the return
|
|
||||||
* value, define a it here. Start new enum groups with values in decrements of
|
|
||||||
* 100.
|
|
||||||
*/
|
|
||||||
enum cb_err {
|
|
||||||
CB_SUCCESS = 0, /**< Call completed successfully */
|
|
||||||
CB_ERR = -1, /**< Generic error code */
|
|
||||||
CB_ERR_ARG = -2, /**< Invalid argument */
|
|
||||||
|
|
||||||
/* NVRAM/CMOS errors */
|
|
||||||
CB_CMOS_OTABLE_DISABLED = -100, /**< Option table disabled */
|
|
||||||
CB_CMOS_LAYOUT_NOT_FOUND = -101, /**< Layout file not found */
|
|
||||||
CB_CMOS_OPTION_NOT_FOUND = -102, /**< Option string not found */
|
|
||||||
CB_CMOS_ACCESS_ERROR = -103, /**< CMOS access error */
|
|
||||||
CB_CMOS_CHECKSUM_INVALID = -104, /**< CMOS checksum is invalid */
|
|
||||||
|
|
||||||
/* Keyboard test failures */
|
|
||||||
CB_KBD_CONTROLLER_FAILURE = -200,
|
|
||||||
CB_KBD_INTERFACE_FAILURE = -201,
|
|
||||||
|
|
||||||
/* I2C controller failures */
|
|
||||||
CB_I2C_NO_DEVICE = -300, /**< Device is not responding */
|
|
||||||
CB_I2C_BUSY = -301, /**< Device tells it's busy */
|
|
||||||
CB_I2C_PROTOCOL_ERROR = -302, /**< Data lost or spurious slave
|
|
||||||
device response, try again? */
|
|
||||||
CB_I2C_TIMEOUT = -303, /**< Transmission timed out */
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* __TYPES_H */
|
#endif /* __TYPES_H */
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <boot_device.h>
|
#include <boot_device.h>
|
||||||
#include <cbfs.h>
|
#include <cbfs.h>
|
||||||
#include <commonlib/compression.h>
|
#include <commonlib/bsd/compression.h>
|
||||||
#include <endian.h>
|
#include <endian.h>
|
||||||
#include <lib.h>
|
#include <lib.h>
|
||||||
#include <symbols.h>
|
#include <symbols.h>
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <bootblock_common.h>
|
#include <bootblock_common.h>
|
||||||
#include <commonlib/compression.h>
|
#include <commonlib/bsd/compression.h>
|
||||||
#include <delay.h>
|
#include <delay.h>
|
||||||
#include <program_loading.h>
|
#include <program_loading.h>
|
||||||
#include <symbols.h>
|
#include <symbols.h>
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include <cbfs.h>
|
||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <endian.h>
|
#include <endian.h>
|
||||||
|
@ -27,7 +28,6 @@
|
||||||
#include <memrange.h>
|
#include <memrange.h>
|
||||||
#include <fit.h>
|
#include <fit.h>
|
||||||
#include <boardid.h>
|
#include <boardid.h>
|
||||||
#include <commonlib/cbfs_serialized.h>
|
|
||||||
#include <commonlib/stdlib.h>
|
#include <commonlib/stdlib.h>
|
||||||
|
|
||||||
static struct list_node image_nodes;
|
static struct list_node image_nodes;
|
||||||
|
|
|
@ -15,6 +15,8 @@
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <cbfs.h>
|
||||||
|
#include <commonlib/bsd/compression.h>
|
||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
#include <bootmem.h>
|
#include <bootmem.h>
|
||||||
#include <cbmem.h>
|
#include <cbmem.h>
|
||||||
|
@ -25,8 +27,6 @@
|
||||||
#include <program_loading.h>
|
#include <program_loading.h>
|
||||||
#include <timestamp.h>
|
#include <timestamp.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <commonlib/cbfs_serialized.h>
|
|
||||||
#include <commonlib/compression.h>
|
|
||||||
#include <lib.h>
|
#include <lib.h>
|
||||||
#include <fit_payload.h>
|
#include <fit_payload.h>
|
||||||
#include <boardid.h>
|
#include <boardid.h>
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
#include <cbmem.h>
|
#include <cbmem.h>
|
||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
#include <fmap.h>
|
#include <fmap.h>
|
||||||
#include <commonlib/fmap_serialized.h>
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <symbols.h>
|
#include <symbols.h>
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <commonlib/compression.h>
|
#include <commonlib/bsd/compression.h>
|
||||||
#include <commonlib/endian.h>
|
#include <commonlib/endian.h>
|
||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
#include <baseboard/variants.h>
|
#include <baseboard/variants.h>
|
||||||
#include <cbfs.h>
|
#include <cbfs.h>
|
||||||
#include <chip.h>
|
#include <chip.h>
|
||||||
#include <commonlib/cbfs_serialized.h>
|
|
||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
#include <device/device.h>
|
#include <device/device.h>
|
||||||
#include <drivers/intel/gma/opregion.h>
|
#include <drivers/intel/gma/opregion.h>
|
||||||
|
|
|
@ -35,7 +35,7 @@ tegra_lp0_resume.elf: tegra_lp0_resume.ld tegra_lp0_resume.c
|
||||||
$(CC) -marm -march=armv4t -mno-unaligned-access -nostdlib -static \
|
$(CC) -marm -march=armv4t -mno-unaligned-access -nostdlib -static \
|
||||||
-Os -fpie -Wl,--build-id=none -ggdb3 -T tegra_lp0_resume.ld \
|
-Os -fpie -Wl,--build-id=none -ggdb3 -T tegra_lp0_resume.ld \
|
||||||
-include ../../../../include/stdint.h \
|
-include ../../../../include/stdint.h \
|
||||||
-include ../../../../commonlib/include/commonlib/compiler.h \
|
-include ../../../../commonlib/bsd/include/commonlib/bsd/compiler.h \
|
||||||
-o $@ $(filter %.c,$+)
|
-o $@ $(filter %.c,$+)
|
||||||
|
|
||||||
tegra_lp0_resume.fw: tegra_lp0_resume.elf
|
tegra_lp0_resume.fw: tegra_lp0_resume.elf
|
||||||
|
|
|
@ -35,7 +35,7 @@ tegra_lp0_resume.elf: tegra_lp0_resume.ld tegra_lp0_resume.c
|
||||||
$(CC) -marm -march=armv4t -mno-unaligned-access -nostdlib -static \
|
$(CC) -marm -march=armv4t -mno-unaligned-access -nostdlib -static \
|
||||||
-Os -fpie -Wl,--build-id=none -ggdb3 -T tegra_lp0_resume.ld \
|
-Os -fpie -Wl,--build-id=none -ggdb3 -T tegra_lp0_resume.ld \
|
||||||
-include ../../../../include/stdint.h \
|
-include ../../../../include/stdint.h \
|
||||||
-include ../../../../commonlib/include/commonlib/compiler.h \
|
-include ../../../../commonlib/bsd/include/commonlib/bsd/compiler.h \
|
||||||
-o $@ $(filter %.c,$+)
|
-o $@ $(filter %.c,$+)
|
||||||
|
|
||||||
tegra_lp0_resume.fw: tegra_lp0_resume.elf
|
tegra_lp0_resume.fw: tegra_lp0_resume.elf
|
||||||
|
|
|
@ -75,12 +75,12 @@ $(agesa_src_path)/$(notdir $1): $1
|
||||||
|
|
||||||
$(call src-to-obj,libagesa,$1): $(agesa_src_path)/$(notdir $1) $(obj)/config.h $(src)/include/kconfig.h
|
$(call src-to-obj,libagesa,$1): $(agesa_src_path)/$(notdir $1) $(obj)/config.h $(src)/include/kconfig.h
|
||||||
@printf " CC $$(subst $(obj)/,,$$(@))\n"
|
@printf " CC $$(subst $(obj)/,,$$(@))\n"
|
||||||
$(CC_libagesa) -c -MMD $(CFLAGS_libagesa) $(AGESA_CFLAGS) \
|
$(CC_libagesa) -c -MMD $(CFLAGS_libagesa) $(AGESA_CFLAGS) \
|
||||||
$(AGESA_INC) \
|
$(AGESA_INC) \
|
||||||
-include $(src)/include/kconfig.h \
|
-include $(src)/include/kconfig.h \
|
||||||
-include $(src)/include/rules.h \
|
-include $(src)/include/rules.h \
|
||||||
-include $(src)/commonlib/include/commonlib/compiler.h \
|
-include $(src)/commonlib/bsd/include/commonlib/bsd/compiler.h \
|
||||||
-o $$@ \
|
-o $$@ \
|
||||||
$(agesa_src_path)/$(notdir $1)
|
$(agesa_src_path)/$(notdir $1)
|
||||||
|
|
||||||
endef
|
endef
|
||||||
|
|
|
@ -66,6 +66,7 @@ AGESA_INC += -I$(src)/southbridge/amd/pi/hudson
|
||||||
AGESA_INC += -I$(src)/arch/x86/include
|
AGESA_INC += -I$(src)/arch/x86/include
|
||||||
AGESA_INC += -I$(src)/include
|
AGESA_INC += -I$(src)/include
|
||||||
AGESA_INC += -I$(src)/commonlib/include
|
AGESA_INC += -I$(src)/commonlib/include
|
||||||
|
AGESA_INC += -I$(src)/commonlib/bsd/include
|
||||||
AGESA_INC += -I$(VBOOT_SOURCE)/firmware/include
|
AGESA_INC += -I$(VBOOT_SOURCE)/firmware/include
|
||||||
|
|
||||||
AGESA_CFLAGS += -march=amdfam10 -mno-3dnow
|
AGESA_CFLAGS += -march=amdfam10 -mno-3dnow
|
||||||
|
@ -98,12 +99,12 @@ $(agesa_src_path)/$(notdir $1): $1
|
||||||
|
|
||||||
$(call src-to-obj,libagesa,$1): $(agesa_src_path)/$(notdir $1) $(obj)/config.h $(src)/include/kconfig.h
|
$(call src-to-obj,libagesa,$1): $(agesa_src_path)/$(notdir $1) $(obj)/config.h $(src)/include/kconfig.h
|
||||||
@printf " CC $$(subst $(obj)/,,$$(@))\n"
|
@printf " CC $$(subst $(obj)/,,$$(@))\n"
|
||||||
$(CC_libagesa) -c -MMD $(CFLAGS_libagesa) $(AGESA_CFLAGS) \
|
$(CC_libagesa) -c -MMD $(CFLAGS_libagesa) $(AGESA_CFLAGS) \
|
||||||
$(AGESA_INC) \
|
$(AGESA_INC) \
|
||||||
-include $(src)/include/kconfig.h \
|
-include $(src)/include/kconfig.h \
|
||||||
-include $(src)/include/rules.h \
|
-include $(src)/include/rules.h \
|
||||||
-include $(src)/commonlib/include/commonlib/compiler.h \
|
-include $(src)/commonlib/bsd/include/commonlib/bsd/compiler.h \
|
||||||
-o $$@ \
|
-o $$@ \
|
||||||
$(agesa_src_path)/$(notdir $1)
|
$(agesa_src_path)/$(notdir $1)
|
||||||
|
|
||||||
endef
|
endef
|
||||||
|
|
|
@ -113,8 +113,8 @@ TOOLCPPFLAGS += -D_XOPEN_SOURCE=700 # strdup() from string.h
|
||||||
TOOLCPPFLAGS += -I$(top)/util/cbfstool/flashmap
|
TOOLCPPFLAGS += -I$(top)/util/cbfstool/flashmap
|
||||||
TOOLCPPFLAGS += -I$(top)/util/cbfstool
|
TOOLCPPFLAGS += -I$(top)/util/cbfstool
|
||||||
TOOLCPPFLAGS += -I$(objutil)/cbfstool
|
TOOLCPPFLAGS += -I$(objutil)/cbfstool
|
||||||
TOOLCPPFLAGS += -I$(top)/src/commonlib/include
|
TOOLCPPFLAGS += -I$(top)/src/commonlib/include -I$(top)/src/commonlib/bsd/include
|
||||||
TOOLCPPFLAGS += -include $(top)/src/commonlib/include/commonlib/compiler.h
|
TOOLCPPFLAGS += -include $(top)/src/commonlib/bsd/include/commonlib/bsd/compiler.h
|
||||||
TOOLCPPFLAGS += -I$(VBOOT_SOURCE)/firmware/include
|
TOOLCPPFLAGS += -I$(VBOOT_SOURCE)/firmware/include
|
||||||
TOOLCPPFLAGS += -I$(VBOOT_SOURCE)/firmware/2lib/include
|
TOOLCPPFLAGS += -I$(VBOOT_SOURCE)/firmware/2lib/include
|
||||||
# UEFI header file support. It's not pretty, but that's what we currently
|
# UEFI header file support. It's not pretty, but that's what we currently
|
||||||
|
@ -163,6 +163,10 @@ $(objutil)/cbfstool/%.o: $(top)/src/commonlib/%.c
|
||||||
printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
|
printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
|
||||||
$(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
|
$(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
|
$(objutil)/cbfstool/%.o: $(top)/src/commonlib/bsd/%.c
|
||||||
|
printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
|
||||||
|
$(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
$(objutil)/cbfstool/%.o: $(top)/util/cbfstool/lz4/lib/%.c
|
$(objutil)/cbfstool/%.o: $(top)/util/cbfstool/lz4/lib/%.c
|
||||||
printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
|
printf " HOSTCC $(subst $(objutil)/,,$(@))\n"
|
||||||
$(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
|
$(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
#include "cbfs.h"
|
#include "cbfs.h"
|
||||||
#include "rmodule.h"
|
#include "rmodule.h"
|
||||||
|
|
||||||
#include <commonlib/compression.h>
|
#include <commonlib/bsd/compression.h>
|
||||||
|
|
||||||
/* Checks if program segment contains the ignored section */
|
/* Checks if program segment contains the ignored section */
|
||||||
static int is_phdr_ignored(Elf64_Phdr *phdr, Elf64_Shdr *shdr)
|
static int is_phdr_ignored(Elf64_Phdr *phdr, Elf64_Shdr *shdr)
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "lz4/lib/lz4frame.h"
|
#include "lz4/lib/lz4frame.h"
|
||||||
#include <commonlib/compression.h>
|
#include <commonlib/bsd/compression.h>
|
||||||
|
|
||||||
static int lz4_compress(char *in, int in_len, char *out, int *out_len)
|
static int lz4_compress(char *in, int in_len, char *out, int *out_len)
|
||||||
{
|
{
|
||||||
|
|
|
@ -20,8 +20,8 @@ INSTALL ?= /usr/bin/env install
|
||||||
PREFIX ?= /usr/local
|
PREFIX ?= /usr/local
|
||||||
CFLAGS ?= -O2
|
CFLAGS ?= -O2
|
||||||
CFLAGS += -Wall -Wextra -Wmissing-prototypes -Werror
|
CFLAGS += -Wall -Wextra -Wmissing-prototypes -Werror
|
||||||
CPPFLAGS += -I . -I $(ROOT)/commonlib/include
|
CPPFLAGS += -I . -I $(ROOT)/commonlib/include -I $(ROOT)/commonlib/bsd/include
|
||||||
CPPFLAGS += -include commonlib/compiler.h
|
CPPFLAGS += -include $(ROOT)/commonlib/bsd/include/commonlib/bsd/compiler.h
|
||||||
|
|
||||||
OBJS = $(PROGRAM).o
|
OBJS = $(PROGRAM).o
|
||||||
|
|
||||||
|
|
|
@ -19,9 +19,9 @@ CC = gcc
|
||||||
INSTALL = /usr/bin/env install
|
INSTALL = /usr/bin/env install
|
||||||
PREFIX = /usr/local
|
PREFIX = /usr/local
|
||||||
CFLAGS = -O2 -g -Wall -Wextra -Wmissing-prototypes -Werror
|
CFLAGS = -O2 -g -Wall -Wextra -Wmissing-prototypes -Werror
|
||||||
CFLAGS += -I../../src/commonlib/include
|
CFLAGS += -I../../src/commonlib/include -I../../src/commonlib/bsd/include
|
||||||
CFLAGS += -I../cbfstool/flashmap
|
CFLAGS += -I../cbfstool/flashmap
|
||||||
CFLAGS += -include ../../src/commonlib/include/commonlib/compiler.h
|
CFLAGS += -include ../../src/commonlib/bsd/include/commonlib/bsd/compiler.h
|
||||||
LDFLAGS =
|
LDFLAGS =
|
||||||
|
|
||||||
OBJS = ifdtool.o
|
OBJS = ifdtool.o
|
||||||
|
|
|
@ -25,7 +25,8 @@ PREFIX ?= /usr/local
|
||||||
CFLAGS ?= -O2 -g -Wall -Wextra -Wmissing-prototypes
|
CFLAGS ?= -O2 -g -Wall -Wextra -Wmissing-prototypes
|
||||||
LDFLAGS += -lpci -lz
|
LDFLAGS += -lpci -lz
|
||||||
|
|
||||||
CPPFLAGS += -I$(top)/src/commonlib/include
|
CPPFLAGS += -I$(top)/src/commonlib/include -I$(top)/src/commonlib/bsd/include
|
||||||
|
|
||||||
|
|
||||||
OBJS = inteltool.o pcr.o cpu.o gpio.o gpio_groups.o rootcmplx.o powermgt.o \
|
OBJS = inteltool.o pcr.o cpu.o gpio.o gpio_groups.o rootcmplx.o powermgt.o \
|
||||||
memory.o pcie.o amb.o ivy_memory.o spi.o gfx.o ahci.o \
|
memory.o pcie.o amb.o ivy_memory.o spi.o gfx.o ahci.o \
|
||||||
|
|
|
@ -17,7 +17,7 @@ PROGRAM = intelvbttool
|
||||||
CC ?= gcc
|
CC ?= gcc
|
||||||
CFLAGS ?= -O2 -g
|
CFLAGS ?= -O2 -g
|
||||||
CFLAGS += -Wall -Werror
|
CFLAGS += -Wall -Werror
|
||||||
CFLAGS += -I../../src/commonlib/include
|
CFLAGS += -I../../src/commonlib/include -I ../../src/commonlib/bsd/include
|
||||||
|
|
||||||
all: $(PROGRAM)
|
all: $(PROGRAM)
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ sconfigobj += sconfig.tab.o
|
||||||
sconfigobj += main.o
|
sconfigobj += main.o
|
||||||
|
|
||||||
SCONFIGFLAGS += -I$(top)/util/sconfig -I$(objutil)/sconfig
|
SCONFIGFLAGS += -I$(top)/util/sconfig -I$(objutil)/sconfig
|
||||||
SCONFIGFLAGS += -I$(top)/src/commonlib/include
|
SCONFIGFLAGS += -I$(top)/src/commonlib/include -I$(top)/src/commonlib/bsd/include
|
||||||
|
|
||||||
$(objutil)/sconfig:
|
$(objutil)/sconfig:
|
||||||
mkdir -p $@
|
mkdir -p $@
|
||||||
|
|
Loading…
Reference in New Issue