solidrun / lx2160a_uefi Goto Github PK
View Code? Open in Web Editor NEWParent build repository for generating UEFI firmware for the LX2160a
Parent build repository for generating UEFI firmware for the LX2160a
The SMBIOS Type 1 table uses the same hard-coded system UUID for all systems, which isn't a good idea. The specification says that if a UUID isn't available, it can be all zeroes.
/**
* System information (section 7.2)
*/
STATIC CONST ARM_TYPE1 mArmDefaultType1 = {
{
{ /* SMBIOS_STRUCTURE Hdr */
EFI_SMBIOS_TYPE_SYSTEM_INFORMATION,
sizeof (SMBIOS_TABLE_TYPE1),
SMBIOS_HANDLE_PI_RESERVED,
},
1, /* Manufacturer */
2, /* Product Name */
3, /* Version */
4, /* Serial */
{ 0x8a95d198, 0x7f46, 0x11e5, { 0xbf,0x8b,0x08,0x00,0x27,0x04,0xd4,0x8e }}, /* UUID */
in script edk2 repository is initialized within flag but variable value is not retrieved in script
###############################################################################
###############################################################################
if [ "x$MAKE_CLEAN" != "x" ]; then
git submodule init
git submodule update --remote
fi
But MAKE_CLEAN variable is not initialized or retrieved from command line.
From openSUSE Tumbleweed (kernel 5.11.6) with latest firmware, I cannot read rtc-efi
.
Kernel log:
[ 2.717445] rtc-efi rtc-efi.0: registered as rtc0
[ 2.719612] rtc-efi rtc-efi.0: hctosys: unable to read the hardware clock
And if I try to read it from user-space:
hwclock: ioctl(RTC_RD_TIME) to /dev/rtc0 to read the time failed: Input/output error
Is it something known?
Here's what I did:
set -euvx
mkdir -vp /tmp/lx2160a_uefi
cd /tmp/lx2160a_uefi
find . -mindepth 1 -delete
git clone https://github.com/SolidRun/lx2160a_uefi.git .
INITIALIZE=1 ./runme.sh
./runme.sh
Here's what happened:
...
build.py...
: error F002: Failed to build module
/tmp/lx2160a_uefi/build/tianocore/edk2-platforms/Silicon/NXP/LX2160A/AcpiTables/LX2160aCex7.inf [AARCH64, GCC5, RELEASE]
- Failed -
Here's the complete log of stdout and stderr:
I'm guessing that this is some kind of copypasta:
Line 145 in ee5c233
What's this snippet supposed to be doing? Why hasn't continuous integration caught it?
My recent build attempt after synchronizing to the recently updated git repository got:
make[1]: Entering directory '/root/lx2160a_uefi/build/tianocore/edk2/BaseTools/Source/Python'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/root/lx2160a_uefi/build/tianocore/edk2/BaseTools/Source/Python'
make -C Tests
make[1]: Entering directory '/root/lx2160a_uefi/build/tianocore/edk2/BaseTools/Tests'
/bin/sh: 1: python: not found
make[1]: *** [GNUmakefile:11: test] Error 127
make[1]: Leaving directory '/root/lx2160a_uefi/build/tianocore/edk2/BaseTools/Tests'
make: *** [GNUmakefile:19: Tests] Error 2
make: Leaving directory '/root/lx2160a_uefi/build/tianocore/edk2/BaseTools'
A local hack that enabled getting past this was to replace a "python" with a "python3" in the specific GNUmakefile:
# git diff --ignore-cr-at-eol GNUmakefile
diff --git a/BaseTools/Tests/GNUmakefile b/BaseTools/Tests/GNUmakefile
index 1cb77f84b1..8db874d2a1 100644
--- a/BaseTools/Tests/GNUmakefile
+++ b/BaseTools/Tests/GNUmakefile
@@ -8,7 +8,7 @@
all: test
test:
- @if command -v $(PYTHON_COMMAND) >/dev/null 1; then $(PYTHON_COMMAND) RunTests.py; else python RunTests.py; fi
+ @if command -v $(PYTHON_COMMAND) >/dev/null 1; then $(PYTHON_COMMAND) RunTests.py; else python3 RunTests.py; fi^M
clean:
find . -name '*.pyc' -exec rm '{}' ';'
I could have used python3.9 instead in my hack for my local context:
# python3 --version
Python 3.9.2
The context is ubuntu on a RPi4B where I've been building lx2160a_uefi before (just to get more familiar with procedures, since the lx2160a has not arrived yet). I did a rm -fr, git clone, and INITIALIZE=1 runme.sh sequence just before it produced the reported failure of a build. python3.9 was present before I started this and had been in place for a while.
I've not tracked down why $(PYTHON_COMMAND) use in the specific GNUmakefile did not work. The context does have python3 where runme.sh expects:
# grep -r PYTHON_COMMAND runme.sh | more
PYTHON_COMMAND=/usr/bin/python3 make -C $ROOTDIR/build/tianocore/edk2/BaseTools
# which python3
/usr/bin/python3
I'm trying to get the SFP+ Ports on the Honeycomb working.
Using the latest kernel from the linux-5.10.y-cex7
branch and UEFI from this repository, ls-addni dpmac.9
fails with MC error: Unsupported operation (status 0xb)
.
Using the same Kernel, but bootet from u-boot, everything works perfectly, except I'm missing 2G of RAM, which is why I was trying the UEFI boot method.
I was wondering, what the difference was and ran sh -x ls-addni
to see which command was actually failing.
restool --script dpni create --options= --num-queues=16
fails on UEFI with the error above.
ls-addni log u-boot: https://gist.github.com/lemmi/1d54353e8e2f5fb14f44245bf3263d14
ls-addni log UEFI: https://gist.github.com/lemmi/6b87193888617c16931cb81fdd682d3c
diff -u1 u-boot uefi
:
--- u-boot 2021-04-13 10:25:54.772189263 +0200
+++ uefi 2021-04-13 10:11:40.986419934 +0200
@@ -76,3 +76,3 @@
+ restool dpmac info dpmac.9
-+ cep=dpmac version: 4.7
++ cep=dpmac version: 4.5
dpmac object id/portal id: 9
@@ -83,3 +83,3 @@
DPMAC ethernet interface: DPMAC_ETH_IF_XFI
-MAC address: 96:0f:b5:73:07:fa
+MAC address: fe:76:20:17:00:09
maximum supported rate 10000 Mbps
@@ -114,3 +114,3 @@
tx bytes: 0
-+ [ dpmac version: 4.7
++ [ dpmac version: 4.5
dpmac object id/portal id: 9
@@ -121,3 +121,3 @@
DPMAC ethernet interface: DPMAC_ETH_IF_XFI
-MAC address: 96:0f:b5:73:07:fa
+MAC address: fe:76:20:17:00:09
maximum supported rate 10000 Mbps
@@ -151,3 +151,3 @@
tx b-pause: 0
-tx bytes: 0 != dpmac version: 4.7
+tx bytes: 0 != dpmac version: 4.5
dpmac object id/portal id: 9
@@ -158,3 +158,3 @@
DPMAC ethernet interface: DPMAC_ETH_IF_XFI
-MAC address: 96:0f:b5:73:07:fa
+MAC address: fe:76:20:17:00:09
maximum supported rate 10000 Mbps
@@ -211,5 +211,5 @@
+ restool --script dpbp create --container=dprc.1
-+ local obj=dpbp.2
-+ [ -z dpbp.2 ]
-+ restool dprc assign dprc.1 --object=dpbp.2 --plugged=1
++ local obj=dpbp.1
++ [ -z dpbp.1 ]
++ restool dprc assign dprc.1 --object=dpbp.1 --plugged=1
+ create_dpmcp dprc.1
@@ -224,5 +224,5 @@
+ restool --script dpcon create --num-priorities=2 --container=dprc.1
-+ local obj=dpcon.32
-+ [ -z dpcon.32 ]
-+ restool dprc assign dprc.1 --object=dpcon.32 --plugged=1
++ local obj=dpcon.16
++ [ -z dpcon.16 ]
++ restool dprc assign dprc.1 --object=dpcon.16 --plugged=1
+ [ 0 -ne 0 ]
@@ -231,5 +231,5 @@
+ restool --script dpcon create --num-priorities=2 --container=dprc.1
-+ local obj=dpcon.33
-+ [ -z dpcon.33 ]
-+ restool dprc assign dprc.1 --object=dpcon.33 --plugged=1
++ local obj=dpcon.17
++ [ -z dpcon.17 ]
++ restool dprc assign dprc.1 --object=dpcon.17 --plugged=1
+ [ 0 -ne 0 ]
@@ -238,5 +238,5 @@
+ restool --script dpcon create --num-priorities=2 --container=dprc.1
-+ local obj=dpcon.34
-+ [ -z dpcon.34 ]
-+ restool dprc assign dprc.1 --object=dpcon.34 --plugged=1
++ local obj=dpcon.18
++ [ -z dpcon.18 ]
++ restool dprc assign dprc.1 --object=dpcon.18 --plugged=1
+ [ 0 -ne 0 ]
@@ -245,5 +245,5 @@
+ restool --script dpcon create --num-priorities=2 --container=dprc.1
-+ local obj=dpcon.35
-+ [ -z dpcon.35 ]
-+ restool dprc assign dprc.1 --object=dpcon.35 --plugged=1
++ local obj=dpcon.19
++ [ -z dpcon.19 ]
++ restool dprc assign dprc.1 --object=dpcon.19 --plugged=1
+ [ 0 -ne 0 ]
@@ -252,5 +252,5 @@
+ restool --script dpcon create --num-priorities=2 --container=dprc.1
-+ local obj=dpcon.36
-+ [ -z dpcon.36 ]
-+ restool dprc assign dprc.1 --object=dpcon.36 --plugged=1
++ local obj=dpcon.20
++ [ -z dpcon.20 ]
++ restool dprc assign dprc.1 --object=dpcon.20 --plugged=1
+ [ 0 -ne 0 ]
@@ -259,5 +259,5 @@
+ restool --script dpcon create --num-priorities=2 --container=dprc.1
-+ local obj=dpcon.37
-+ [ -z dpcon.37 ]
-+ restool dprc assign dprc.1 --object=dpcon.37 --plugged=1
++ local obj=dpcon.21
++ [ -z dpcon.21 ]
++ restool dprc assign dprc.1 --object=dpcon.21 --plugged=1
+ [ 0 -ne 0 ]
@@ -266,5 +266,5 @@
+ restool --script dpcon create --num-priorities=2 --container=dprc.1
-+ local obj=dpcon.38
-+ [ -z dpcon.38 ]
-+ restool dprc assign dprc.1 --object=dpcon.38 --plugged=1
++ local obj=dpcon.22
++ [ -z dpcon.22 ]
++ restool dprc assign dprc.1 --object=dpcon.22 --plugged=1
+ [ 0 -ne 0 ]
@@ -273,5 +273,5 @@
+ restool --script dpcon create --num-priorities=2 --container=dprc.1
-+ local obj=dpcon.39
-+ [ -z dpcon.39 ]
-+ restool dprc assign dprc.1 --object=dpcon.39 --plugged=1
++ local obj=dpcon.23
++ [ -z dpcon.23 ]
++ restool dprc assign dprc.1 --object=dpcon.23 --plugged=1
+ [ 0 -ne 0 ]
@@ -280,5 +280,5 @@
+ restool --script dpcon create --num-priorities=2 --container=dprc.1
-+ local obj=dpcon.40
-+ [ -z dpcon.40 ]
-+ restool dprc assign dprc.1 --object=dpcon.40 --plugged=1
++ local obj=dpcon.24
++ [ -z dpcon.24 ]
++ restool dprc assign dprc.1 --object=dpcon.24 --plugged=1
+ [ 0 -ne 0 ]
@@ -287,5 +287,5 @@
+ restool --script dpcon create --num-priorities=2 --container=dprc.1
-+ local obj=dpcon.41
-+ [ -z dpcon.41 ]
-+ restool dprc assign dprc.1 --object=dpcon.41 --plugged=1
++ local obj=dpcon.25
++ [ -z dpcon.25 ]
++ restool dprc assign dprc.1 --object=dpcon.25 --plugged=1
+ [ 0 -ne 0 ]
@@ -294,5 +294,5 @@
+ restool --script dpcon create --num-priorities=2 --container=dprc.1
-+ local obj=dpcon.42
-+ [ -z dpcon.42 ]
-+ restool dprc assign dprc.1 --object=dpcon.42 --plugged=1
++ local obj=dpcon.26
++ [ -z dpcon.26 ]
++ restool dprc assign dprc.1 --object=dpcon.26 --plugged=1
+ [ 0 -ne 0 ]
@@ -301,5 +301,5 @@
+ restool --script dpcon create --num-priorities=2 --container=dprc.1
-+ local obj=dpcon.43
-+ [ -z dpcon.43 ]
-+ restool dprc assign dprc.1 --object=dpcon.43 --plugged=1
++ local obj=dpcon.27
++ [ -z dpcon.27 ]
++ restool dprc assign dprc.1 --object=dpcon.27 --plugged=1
+ [ 0 -ne 0 ]
@@ -308,5 +308,5 @@
+ restool --script dpcon create --num-priorities=2 --container=dprc.1
-+ local obj=dpcon.44
-+ [ -z dpcon.44 ]
-+ restool dprc assign dprc.1 --object=dpcon.44 --plugged=1
++ local obj=dpcon.28
++ [ -z dpcon.28 ]
++ restool dprc assign dprc.1 --object=dpcon.28 --plugged=1
+ [ 0 -ne 0 ]
@@ -315,5 +315,5 @@
+ restool --script dpcon create --num-priorities=2 --container=dprc.1
-+ local obj=dpcon.45
-+ [ -z dpcon.45 ]
-+ restool dprc assign dprc.1 --object=dpcon.45 --plugged=1
++ local obj=dpcon.29
++ [ -z dpcon.29 ]
++ restool dprc assign dprc.1 --object=dpcon.29 --plugged=1
+ [ 0 -ne 0 ]
@@ -322,5 +322,5 @@
+ restool --script dpcon create --num-priorities=2 --container=dprc.1
-+ local obj=dpcon.46
-+ [ -z dpcon.46 ]
-+ restool dprc assign dprc.1 --object=dpcon.46 --plugged=1
++ local obj=dpcon.30
++ [ -z dpcon.30 ]
++ restool dprc assign dprc.1 --object=dpcon.30 --plugged=1
+ [ 0 -ne 0 ]
@@ -329,50 +329,9 @@
+ restool --script dpcon create --num-priorities=2 --container=dprc.1
-+ local obj=dpcon.47
-+ [ -z dpcon.47 ]
-+ restool dprc assign dprc.1 --object=dpcon.47 --plugged=1
++ local obj=dpcon.31
++ [ -z dpcon.31 ]
++ restool dprc assign dprc.1 --object=dpcon.31 --plugged=1
+ [ 0 -ne 0 ]
+ restool --script dpni create --options= --num-queues=16
-+ dpni=dpni.1
-+ [ -n ]
-+ [ -z dpni.1 ]
-+ restool dprc assign dprc.1 --object=dpni.1 --plugged=1
-+ [ -n ]
-+ [ ! -z dpmac.9 ]
-+ connect dprc.1 dpni.1 dpmac.9
-+ local container=dprc.1
-+ local ep1=dpni.1
-+ local ep2=dpmac.9
-+ restool dprc connect dprc.1 --endpoint1=dpni.1 --endpoint2=dpmac.9
-+ [ 0 -eq 1 ]
-+ restool dprc sync
-[ 56.290355] fsl_dpaa2_eth dpni.1: Probed interface eth1
-+ object_exists dprc.1 dpni.1
-+ local parent_container=dprc.1
-+ local object=dpni.1
-+ restool dprc show dprc.1
-+ grep dpni.1
-+ wc -l
-+ object_exists_status=1
-+ [ 1 = 1 ]
-+ [ dprc.1 = dprc.1 ]
-+ get_interface_name dpni.1
-+ get_root_container
-+ restool dprc list
-+ res=dprc.1
-+ echo dprc.1
-+ cut -f 1 -d
-+ root_c=dprc.1
-+ [ -z dprc.1 ]
-+ local tries=0
-+ local dir=/sys/bus/fsl-mc/drivers/fsl_mc_dprc/dprc.1/dpni.1/net/
-+ local interface=
-+ true
-+ [ -d /sys/bus/fsl-mc/drivers/fsl_mc_dprc/dprc.1/dpni.1/net/ ]
-+ ls /sys/bus/fsl-mc/drivers/fsl_mc_dprc/dprc.1/dpni.1/net/
-+ interface=eth1
-+ break
-+ echo eth1
-+ ni=eth1
-+ echo Created interface: eth1 (object:dpni.1, endpoint: dpmac.9)
-Created interface: eth1 (object:dpni.1, endpoint: dpmac.9)
+MC error: Unsupported operation (status 0xb)
++ dpni=
+ do_cleanup
"/home/dingo/lx2160a_uefi/build/toolchain/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc" -MMD -MF /home/dingo/lx2160a_uefi/build/tianocore/Build/LX2160aCex7/RELEASE_GCC5/AARCH64/ArmPkg/Library/ArmLib/ArmBaseLib/OUTPUT/AArch64/AArch64Support.obj.deps -E -x assembler-with-cpp -include AutoGen.h -DOPENSBI_EXTERNAL_SBI_TYPES=OpensbiTypes.h -I/home/dingo/lx2160a_uefi/build/tianocore/edk2/ArmPkg/Library/ArmLib/AArch64 -I/home/dingo/lx2160a_uefi/build/tianocore/edk2/ArmPkg/Library/ArmLib -I/home/dingo/lx2160a_uefi/build/tianocore/Build/LX2160aCex7/RELEASE_GCC5/AARCH64/ArmPkg/Library/ArmLib/ArmBaseLib/DEBUG -I/home/dingo/lx2160a_uefi/build/tianocore/edk2/ArmPkg -I/home/dingo/lx2160a_uefi/build/tianocore/edk2/ArmPkg/Include -I/home/dingo/lx2160a_uefi/build/tianocore/edk2/MdePkg -I/home/dingo/lx2160a_uefi/build/tianocore/edk2/MdePkg/Include -I/home/dingo/lx2160a_uefi/build/tianocore/edk2/MdePkg/Test/UnitTest/Include -I/home/dingo/lx2160a_uefi/build/tianocore/edk2/MdePkg/Include/AArch64 /home/dingo/lx2160a_uefi/build/tianocore/edk2/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S > /home/dingo/lx2160a_uefi/build/tianocore/Build/LX2160aCex7/RELEASE_GCC5/AARCH64/ArmPkg/Library/ArmLib/ArmBaseLib/OUTPUT/AArch64/AArch64Support.ii
Error: /home/dingo/lx2160a_uefi/build/tianocore/edk2-platforms/Platform/SolidRun/LX2160aCex7/DeviceTree/fsl-lx2160a-clearfog-itx.dtsi:8.1-9 syntax error
FATAL ERROR: Unable to parse input tree
GNUmakefile:317: recipe for target '/home/dingo/lx2160a_uefi/build/tianocore/Build/LX2160aCex7/RELEASE_GCC5/AARCH64/Platform/SolidRun/LX2160aCex7/DeviceTree/DeviceTree/OUTPUT/fsl-lx2160a-honeycomb.dtb' failed
make: *** [/home/dingo/lx2160a_uefi/build/tianocore/Build/LX2160aCex7/RELEASE_GCC5/AARCH64/Platform/SolidRun/LX2160aCex7/DeviceTree/DeviceTree/OUTPUT/fsl-lx2160a-honeycomb.dtb] Error 1
build.py...
: error 7000: Failed to execute command
make tbuild [/home/dingo/lx2160a_uefi/build/tianocore/Build/LX2160aCex7/RELEASE_GCC5/AARCH64/Platform/SolidRun/LX2160aCex7/DeviceTree/DeviceTree]
build.py...
: error F002: Failed to build module
/home/dingo/lx2160a_uefi/build/tianocore/edk2-platforms/Platform/SolidRun/LX2160aCex7/DeviceTree/DeviceTree.inf [AARCH64, GCC5, RELEASE]
FWIW, I ran into a compile error on RHEL 9 with the docker option.
docker run -e SOC_SPEED=2000 -e BUS_SPEED=700 -e DDR_SPEED=3200 -e XMP_PROFILE=1 -v /mypath/lx2160a_uefi:/work:Z --rm -i -t lx2160a_uefi build
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
Performing SW Build
Checking all required tools are installed
Building boot loader
Checking all required tools are installed
Building boot loader
Building RCW
python3 ../rcw.py -i rcws/rcw_lx2160acex7.rcw -o rcws/rcw_lx2160acex7.bin
Build UEFI
make: Entering directory '/work/build/tianocore/edk2/BaseTools'
make -C Source/C
make[1]: Entering directory '/work/build/tianocore/edk2/BaseTools/Source/C'
Attempting to detect HOST_ARCH from 'uname -m': aarch64
Detected HOST_ARCH of AARCH64 using uname.
mkdir -p .
make -C Common
make[2]: Entering directory '/work/build/tianocore/edk2/BaseTools/Source/C/Common'
make[2]: *** No rule to make target '/usr/lib/gcc/aarch64-redhat-linux/11/include/stdint.h', needed by 'BasePeCoff.o'. Stop.
The answer was here:
https://stackoverflow.com/questions/30751029/why-does-gcc-search-header-files-from-non-exist-folders
Long story short, moving the .d files out of the way fixed this issue (although there are others I'm also running into.)
find . -name "*.d" -exec mv {} {}.old \;
On my HoneyComb Lx2k, my mSATA disk (Samsung 860EVO 250GB) is connected using a SATA/mSATA converter and I need a number of reset (between 1 and 3 most of the time) to get the mSATA disk detected and to be able to boot from there.
Maybe some timings are a bit short due to the mSATA/SATA converter?
I am using the latest UEFI firmware from this repo, but this is not a regression as I have this problem for a while.
My LX2160A Com Express Type 7 is rev. 1.3.
runme.sh is not detecting the following build dependencies / tools :
Checking all required tools are installed Building boot loader Building RCW python3 ../rcw.py -i rcws/rcw_lx2160acex7.rcw -o rcws/rcw_lx2160acex7.bin Build UEFI make: Entering directory '/home/titanium/git/lx2160a_uefi/build/tianocore/edk2/BaseTools' make -C Source/C make[1]: Entering directory '/home/titanium/git/lx2160a_uefi/build/tianocore/edk2/BaseTools/Source/C' Attempting to detect HOST_ARCH from 'uname -m': x86_64 Detected HOST_ARCH of X64 using uname. mkdir -p . make -C Common make[2]: Entering directory '/home/titanium/git/lx2160a_uefi/build/tianocore/edk2/BaseTools/Source/C/Common' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/home/titanium/git/lx2160a_uefi/build/tianocore/edk2/BaseTools/Source/C/Common' make -C BrotliCompress make[2]: Entering directory '/home/titanium/git/lx2160a_uefi/build/tianocore/edk2/BaseTools/Source/C/BrotliCompress' gcc -c -I ./brotli/c/include -I .. -I ../Include/Common -I ../Include/ -I ../Include/IndustryStandard -I ../Common/ -I .. -I . -I ../Include/X64/ -MD -fshort-wchar -fno-strict-aliasing -fwrapv -fno-delete-null-pointer-checks -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-unused-result -nostdlib -g -O2 brotli/c/dec/decode.c -o brotli/c/dec/decode.o brotli/c/dec/decode.c:2033:41: error: argument 2 of type ‘const uint8_t *’ {aka ‘const unsigned char *’} declared as a pointer [-Werror=vla-parameter] 2033 | size_t encoded_size, const uint8_t* encoded_buffer, size_t* decoded_size, | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~ In file included from brotli/c/dec/decode.c:7: ./brotli/c/include/brotli/decode.h:204:19: note: previously declared as a variable length array ‘const uint8_t[encoded_size]’ {aka ‘const unsigned char[encoded_size]’} 204 | const uint8_t encoded_buffer[BROTLI_ARRAY_PARAM(encoded_size)], | ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ brotli/c/dec/decode.c:2034:14: error: argument 4 of type ‘uint8_t *’ {aka ‘unsigned char *’} declared as a pointer [-Werror=vla-parameter] 2034 | uint8_t* decoded_buffer) { | ~~~~~~~~~^~~~~~~~~~~~~~ ./brotli/c/include/brotli/decode.h:206:13: note: previously declared as a variable length array ‘uint8_t[*decoded_size]’ {aka ‘unsigned char[*decoded_size]’} 206 | uint8_t decoded_buffer[BROTLI_ARRAY_PARAM(*decoded_size)]); | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[2]: *** [../Makefiles/footer.makefile:21: brotli/c/dec/decode.o] Error 1 make[2]: Leaving directory '/home/titanium/git/lx2160a_uefi/build/tianocore/edk2/BaseTools/Source/C/BrotliCompress' make[1]: *** [GNUmakefile:76: BrotliCompress] Error 2 make[1]: Leaving directory '/home/titanium/git/lx2160a_uefi/build/tianocore/edk2/BaseTools/Source/C' make: *** [GNUmakefile:19: Source/C] Error 2 make: Leaving directory '/home/titanium/git/lx2160a_uefi/build/tianocore/edk2/BaseTools'
Food for thought. I tried:
# git diff runme.sh
diff --git a/runme.sh b/runme.sh
index aa6dcc2..2c49fd6 100755
--- a/runme.sh
+++ b/runme.sh
@@ -114,7 +114,8 @@ cd $ROOTDIR
# submodule init
###############################################################################
if [ "x$INITIALIZE" != "x" ]; then
- git submodule update --init --recursive
+ git submodule update --init
+ cd build/tianocore/edk2/ && git submodule update --init
exit
fi
because the bottom of the edk2 ReadMe.rst indicates to avoid the --recursive inside edk2, indicating why as well. (I'll not repeat the material here.) Making the above change after cloning lx21060a_uefi and then doing the initialize allowed me to build images afterwards. (But I've no lx2160a yet.) Thus, it appears that the --recursive is not necessary when edk2 also gets its own "update --init" and, so, that the edk2 ReadMe.rst indication could be followed.
It looks like the above eliminated having 7 .git repositories in my file system, those in each of the following (listed based on context from before this experiment):
edk2/BaseTools/Source/C/BrotliCompress/brotli/research/libdivsufsort/
edk2/BaseTools/Source/C/BrotliCompress/brotli/research/esaxx/
edk2/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/research/libdivsufsort/
edk2/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/research/esaxx/
edk2/CryptoPkg/Library/OpensslLib/openssl/pyca-cryptography/
edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/
edk2/CryptoPkg/Library/OpensslLib/openssl/boringssl/
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.