Merge branch '2022-01-12-assorted-updates'

- Fix binman fake blob support to write outside source directory
- Azure now has stages in the pipeline
- Update to latest focal tag for containers in CI.
- Finish dropping LynxOS
- Add migration message for timer code
This commit is contained in:
Tom Rini 2022-01-13 07:34:27 -05:00
commit 37b876359f
12 changed files with 67 additions and 30 deletions

View file

@ -2,14 +2,16 @@ variables:
windows_vm: windows-2019
ubuntu_vm: ubuntu-18.04
macos_vm: macOS-10.15
ci_runner_image: trini/u-boot-gitlab-ci-runner:focal-20211006-14Nov2021
ci_runner_image: trini/u-boot-gitlab-ci-runner:focal-20220105-10Jan2022
# Add '-u 0' options for Azure pipelines, otherwise we get "permission
# denied" error when it tries to "useradd -m -u 1001 vsts_azpcontainer",
# since our $(ci_runner_image) user is not root.
container_option: -u 0
work_dir: /u
jobs:
stages:
- stage: testsuites
jobs:
- job: tools_only_windows
displayName: 'Ensure host tools build for Windows'
pool:
@ -199,6 +201,8 @@ jobs:
export PATH=/opt/gcc-11.1.0-nolibc/arm-linux-gnueabi/bin:$PATH
test/nokia_rx51_test.sh
- stage: test_py
jobs:
- job: test_py
displayName: 'test.py'
pool:
@ -381,6 +385,8 @@ jobs:
# Some tests using libguestfs-tools need the fuse device to run
docker run "$@" --device /dev/fuse:/dev/fuse -v $PWD:$(work_dir) $(ci_runner_image) /bin/bash $(work_dir)/test.sh
- stage: world_build
jobs:
- job: build_the_world
displayName: 'Build the World'
pool:

View file

@ -2,7 +2,7 @@
# Grab our configured image. The source for this is found at:
# https://source.denx.de/u-boot/gitlab-ci-runner
image: trini/u-boot-gitlab-ci-runner:focal-20211006-14Nov2021
image: trini/u-boot-gitlab-ci-runner:focal-20220105-10Jan2022
# We run some tests in different order, to catch some failures quicker.
stages:

View file

@ -1129,6 +1129,10 @@ endif
$(call deprecated,CONFIG_DM_ETH,Ethernet drivers,v2020.07,$(CONFIG_NET))
$(call deprecated,CONFIG_DM_I2C,I2C drivers,v2022.04,$(CONFIG_SYS_I2C_LEGACY))
$(call deprecated,CONFIG_DM_KEYBOARD,Keyboard drivers,v2022.10,$(CONFIG_KEYBOARD))
@# CONFIG_SYS_TIMER_RATE has brackets in it for some boards which
@# confuses this rule. Use if() to send just a single character which
@# is enable to tell 'deprecated' that one of these symbols exists
$(call deprecated,CONFIG_TIMER,Timer drivers,v2023.01,$(if $(strip $(CONFIG_SYS_TIMER_RATE)$(CONFIG_SYS_TIMER_COUNTER)),x))
@# Check that this build does not use CONFIG options that we do not
@# know about unless they are in Kconfig. All the existing CONFIG
@# options are whitelisted, so new ones should not be added.
@ -2184,7 +2188,9 @@ CLEAN_FILES += include/bmp_logo.h include/bmp_logo_data.h tools/version.h \
u-boot* MLO* SPL System.map fit-dtb.blob* \
u-boot-ivt.img.log u-boot-dtb.imx.log SPL.log u-boot.imx.log \
lpc32xx-* bl31.c bl31.elf bl31_*.bin image.map tispl.bin* \
idbloader.img flash.bin flash.log defconfig keep-syms-lto.c
idbloader.img flash.bin flash.log defconfig keep-syms-lto.c \
mkimage-out.spl.mkimage mkimage.spl.mkimage imx-boot.map \
itb.fit.fit itb.fit.itb itb.map spl.map
# Directories & files removed with 'make mrproper'
MRPROPER_DIRS += include/config include/generated spl tpl \

3
README
View file

@ -2912,8 +2912,7 @@ details; basically, the header defines the following image properties:
* Target Operating System (Provisions for OpenBSD, NetBSD, FreeBSD,
4.4BSD, Linux, SVR4, Esix, Solaris, Irix, SCO, Dell, NCR, VxWorks,
LynxOS, pSOS, QNX, RTEMS, INTEGRITY;
Currently supported: Linux, NetBSD, VxWorks, QNX, RTEMS, LynxOS,
INTEGRITY).
Currently supported: Linux, NetBSD, VxWorks, QNX, RTEMS, INTEGRITY).
* Target CPU Architecture (Provisions for Alpha, ARM, Intel x86,
IA64, MIPS, NDS32, Nios II, PowerPC, IBM S390, SuperH, Sparc, Sparc 64 Bit;
Currently supported: ARM, Intel x86, MIPS, NDS32, Nios II, PowerPC).

View file

@ -102,9 +102,6 @@ static const table_entry_t uimage_os[] = {
{ IH_OS_INVALID, "invalid", "Invalid OS", },
{ IH_OS_ARM_TRUSTED_FIRMWARE, "arm-trusted-firmware", "ARM Trusted Firmware" },
{ IH_OS_LINUX, "linux", "Linux", },
#if defined(USE_HOSTCC)
{ IH_OS_LYNXOS, "lynxos", "LynxOS", },
#endif
{ IH_OS_NETBSD, "netbsd", "NetBSD", },
{ IH_OS_OSE, "ose", "Enea OSE", },
{ IH_OS_PLAN9, "plan9", "Plan 9", },

View file

@ -106,3 +106,15 @@ Deadline: 2022.10
This is a legacy option which has been replaced by driver model.
Maintainers should submit patches switching over to using CONFIG_DM_KEYBOARD and
other base driver model options in time for inclusion in the 2022.10 release.
CONFIG_SYS_TIMER_RATE and CONFIG_SYS_TIMER_COUNTER
--------------------------------------------------
Deadline: 2023.01
These are legacy options which have been replaced by driver model.
Maintainers should submit patches switching over to using CONFIG_TIMER and
other base driver model options in time for inclusion in the 2022.10 release.
There is only one method to implement, unless you want to support bootstage,
in which case you need an early timer also. For example drivers, see
sandbox_timer.c and rockchip_timer.c

View file

@ -577,9 +577,11 @@ def ProcessImage(image, update_fdt, write_map, get_contents=True,
faked_list = []
image.CheckFakedBlobs(faked_list)
if faked_list:
tout.Warning("Image '%s:%s' has faked external blobs and is non-functional: %s" %
(image.name, image.image_name,
' '.join([e.GetDefaultFilename() for e in faked_list])))
tout.Warning(
"Image '%s:%s' has faked external blobs and is non-functional: %s" %
(image.name, image.image_name,
' '.join([os.path.basename(e.GetDefaultFilename())
for e in faked_list])))
return bool(missing_list) or bool(faked_list)

View file

@ -7,6 +7,7 @@
from collections import namedtuple
import importlib
import os
import pathlib
import sys
from dtoc import fdt_util
@ -972,6 +973,25 @@ features to produce new behaviours.
if self.missing:
missing_list.append(self)
def check_fake_fname(self, fname):
"""If the file is missing and the entry allows fake blobs, fake it
Sets self.faked to True if faked
Args:
fname (str): Filename to check
Returns:
fname (str): Filename of faked file
"""
if self.allow_fake and not pathlib.Path(fname).is_file():
outfname = tools.GetOutputFilename(os.path.basename(fname))
with open(outfname, "wb") as out:
out.truncate(1024)
self.faked = True
return outfname
return fname
def CheckFakedBlobs(self, faked_blobs_list):
"""Check if any entries in this section have faked external blobs

View file

@ -5,8 +5,6 @@
# Entry-type module for blobs, which are binary objects read from files
#
import pathlib
from binman.entry import Entry
from binman import state
from dtoc import fdt_util
@ -38,16 +36,12 @@ class Entry_blob(Entry):
self._filename = fdt_util.GetString(self._node, 'filename', self.etype)
def ObtainContents(self):
if self.allow_fake and not pathlib.Path(self._filename).is_file():
with open(self._filename, "wb") as out:
out.truncate(1024)
self.faked = True
self._filename = self.GetDefaultFilename()
self._pathname = tools.GetInputFilename(self._filename,
self.external and self.section.GetAllowMissing())
# Allow the file to be missing
if not self._pathname:
self._pathname = self.check_fake_fname(self._filename)
self.SetContents(b'')
self.missing = True
return True

View file

@ -4667,16 +4667,6 @@ class TestFunctional(unittest.TestCase):
str(e.exception),
"Not enough space in '.*u_boot_binman_embed_sm' for data length.*")
def testFakeBlob(self):
"""Test handling of faking an external blob"""
with test_util.capture_sys_output() as (stdout, stderr):
self._DoTestFile('203_fake_blob.dts', allow_missing=True,
allow_fake_blobs=True)
err = stderr.getvalue()
self.assertRegex(err,
"Image '.*' has faked external blobs and is non-functional: .*")
os.remove('binman_faking_test_blob')
def testVersion(self):
"""Test we can get the binman version"""
version = '(unreleased)'
@ -4965,5 +4955,16 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
# There should be a U-Boot after the final FIP
self.assertEqual(U_BOOT_DATA, data[-4:])
def testFakeBlob(self):
"""Test handling of faking an external blob"""
with test_util.capture_sys_output() as (stdout, stderr):
self._DoTestFile('217_fake_blob.dts', allow_missing=True,
allow_fake_blobs=True)
err = stderr.getvalue()
self.assertRegex(
err,
"Image '.*' has faked external blobs and is non-functional: .*")
if __name__ == "__main__":
unittest.main()

View file

@ -2,7 +2,7 @@
# This Dockerfile is used to build an image containing basic stuff to be used
# to build U-Boot and run our test suites.
FROM ubuntu:focal-20211006
FROM ubuntu:focal-20220105
MAINTAINER Tom Rini <trini@konsulko.com>
LABEL Description=" This image is for building U-Boot inside a container"