This commit is for adding initial symbol list form Exynos SoC.
"abi_gki_aarch64_exynos" is generated from minimal configs for build.
2 function symbol(s) added
'int devm_hwrng_register(struct device*, struct hwrng*)'
'int irq_force_affinity(unsigned int, const struct cpumask*)'
Bug: 278466304
Change-Id: I6a700eda5639bf46f694524fefe91b759583704d
Signed-off-by: Junki Min <joonki.min@samsung.com>
Initial symbol list for imx that adds it to the build and does not add
any new symbols at this point in time.
Bug: 277651618
Change-Id: I19d4463295bc2f2a22fa5983765a20838d8615ce
Signed-off-by: Zhipeng Wang <zhipeng.wang_1@nxp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Add initial MTK symbol list and add to the build system.
Bug: 277305001
Change-Id: I3944eb4517c5040dac4fb8769907800af3b5495e
Signed-off-by: Chun-Hung Wu <chun-hung.wu@mediatek.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
_aarch64_additional_kmi_symbol_list has all vendor's kmi symbol list file,
but it is inaccessible from outside. Added a filegroup for it.
Bug: 275670969
Signed-off-by: Junki Min <joonki.min@samsung.com>
Change-Id: I65ad4008ae2135fae88c8eaf1c09d141ea562294
ABI is being implemented for x86_64, making it necessary
to support protected exports header file generation for
the GKI modules for multiple architecture.
Enable support to select required inputs based on the ARCH
to generate gki_module_protected_exports.h during kernel
build.
Inputs for generating gki_module_protected_exports.h are:
ARCH = arm64:
ABI Protected exports list: abi_gki_protected_exports_aarch64
Protected GKI modules list: gki_aarch64_protected_modules
ARCH = x86_64:
ABI Protected exports list: abi_gki_protected_exports_x86_64
Protected GKI modules list: gki_x86_64_protected_modules
Test: TH
Test: Manual verification of the generated header file
Test: bazel run //common:kernel_aarch64_abi_update_protected_exports
Bug: 151893768
Change-Id: Ic4bcb2732199b71a7973b5ce4c852bcd95d37131
Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
Enables the KMI strict mode for the aarch64;
also remove the TODO comment for aarch64-debug
as KMI strict mode shouldn't be enabled for
that target.
Bug: 269346251
Test: bazel build //common:kernel_aarch64
Test: TH
Change-Id: If8cb717d2e3dfef29004fafe1315a69caa940716
Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
Define protected modules and exports list for the aarch64 target.
This enables support to update and/or create protected
exports list at common/android/abi_gki_protected_exports based on
the modules listed in common/android/gki_protected_modules.
Command:
bazel run --config=fast //common:kernel_aarch64_abi_update_protected_exports
Bug: 268679215
Test: bazel run //common:kernel_aarch64_abi_update_protected_exports
Test: TH
Change-Id: I36a18162c2ef253fcf691b016b4da861d9c61e4a
Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
Needed for monitoring the KMI.
Bug: 269587270
Change-Id: I6f688a9d81cbe9c891a2e39727a4bf4b687369aa
Signed-off-by: Will McVicker <willmcvicker@google.com>
Add android/abi_gki_aarch64.stg as initial ABI representation of the
KMI and start enforcing KMI. Kernel is not trimmed yet, the trimming
will be enabled after adding symbols lists.
This is not KMI freeze. While this is hard enforcement in the code
base, we still allow controlled changes to the ABI.
Test: TH
Bug: 269323432
Change-Id: Ic3a126a6d60242ae713ae396bb239af5b3e58c53
Signed-off-by: Aleksei Vetrov <vvvvvv@google.com>
Add snd-soc-qcom-sdw to module_outs for db845.
This was split out of the common qcom-snd module
to avoid a regression on older platforms that didn't
support soundwire.
Fixes: c878ac66db ("ASoC: qcom: Fix building APQ8016 machine driver without SOUNDWIRE")
Change-Id: I957bccf8ce8e947332aad81e5e5ec33bcbbbbaa1
Signed-off-by: Peter Griffin <gpeter@google.com>
This will be reverted before freezing the KMI on this branch.
Bug: 264279944
Change-Id: Ic0229cf4e8a9462732cb0555af980747eaee6ebc
Signed-off-by: T.J. Mercier <tjmercier@google.com>
To meet FIPS 140 requirements, add support for building a kernel module
"fips140.ko" that contains various cryptographic algorithms built from
existing kernel source files. At load time, the module checks its own
integrity and self-tests its algorithms, then registers the algorithms
with the crypto API to supersede the original algorithms provided by the
kernel itself.
[ebiggers: this commit originated from "ANDROID: crypto: fips140 -
perform load time integrity check", but I've folded many later commits
into it to make forward porting easier. See below]
Original commits:
android12-5.10:
6be141eb36fe ("ANDROID: crypto: fips140 - perform load time integrity check")
868be244bbed ("ANDROID: inject correct HMAC digest into fips140.ko at build time")
091338cb398e ("ANDROID: fips140: add missing static keyword to fips140_init()")
c799c6644b52 ("ANDROID: fips140: adjust some log messages")
92de53472e68 ("ANDROID: fips140: log already-live algorithms")
0af06624eadc ("ANDROID: fips140: check for errors from initcalls")
634445a640a4 ("ANDROID: fips140: fix deadlock in unregister_existing_fips140_algos()")
e886dd4c339e ("ANDROID: fips140: unregister existing DRBG algorithms")
b7397e89db29 ("ANDROID: fips140: add power-up cryptographic self-tests")
50661975be74 ("ANDROID: fips140: add/update module help text")
b397a0387cb2 ("ANDROID: fips140: test all implementations")
17ccefe14021 ("ANDROID: fips140: use full 16-byte IV")
1be58af0776a ("ANDROID: fips140: remove non-prediction-resistant DRBG test")
2b5843ae2d90 ("ANDROID: fips140: add AES-CBC-CTS")
2ee56aad318c ("ANDROID: fips140: add AES-CMAC")
960ebb2b565b ("ANDROID: fips140: add jitterentropy to fips140 module")
e5b14396f9d2 ("ANDROID: fips140: take into account AES-GCM not being approvable")
52b70d491bd4 ("ANDROID: fips140: use FIPS140_CFLAGS when compiling fips140-selftests.c")
6b995f5a5403 ("ANDROID: fips140: preserve RELA sections without relying on the module loader")
e45108ecff64 ("ANDROID: fips140: block crypto operations until tests complete")
ecf9341134d1 ("ANDROID: fips140: remove in-place updating of live algorithms")
482b0323cf29 ("ANDROID: fips140: zeroize temporary values from integrity check")
64d769e53f20 ("ANDROID: fips140: add service indicators")
8d7f609cdaa4 ("ANDROID: fips140: add name and version, and a function to retrieve them")
6b7c37f6c449 ("ANDROID: fips140: use UTS_RELEASE as FIPS version")
903e97a0ca6d ("ANDROID: fips140: refactor evaluation testing support")
97fb2104fe22 ("ANDROID: fips140: add support for injecting integrity error")
109f31ac23f5 ("ANDROID: fips140: add userspace interface for evaluation testing")
android14-5.15:
84572a0c7981 ("ANDROID: fips140: split dump-section+add-section into 2 ops")
b0f8873811d4 ("ANDROID: kleaf: convert fips140 to kleaf")
2535deae8069 ("ANDROID: GKI: Source GKI_BUILD_CONFIG_FRAGMENT after setting all variables")
685a2ade28bb ("ANDROID: fips140: add crypto_memneq() back to the module")
320dfca58a3d ("ANDROID: fips140: fix in-tree builds")
d4966a820397 ("ANDROID: fips140: remove CONFIG_CRYPTO_FIPS140 option")
6da26b8750f5 ("ANDROID: fips140: require 'm' to enable CRYPTO_FIPS140_MOD")
bfcfcce3803b ("ANDROID: fips140: unapply ABS32 relocations generated by KCFI")
63f46b45dda2 ("ANDROID: fips140: eliminate crypto-fips.a build step")
ae4ca7a09bb6 ("ANDROID: fips140: allow building without LTO")
Bug: 153614920
Bug: 188620248
Test: tested that the module builds and can be loaded on raven.
Change-Id: I3fde49dbc3d16b149b072a27ba5b4c6219015c94
Signed-off-by: Ard Biesheuvel <ardb@google.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Add a "fake" GKI for RISC-V based on the arm64 one. This implementation
simply symlinks the arm64 gki_defconfig and merges in two other configs:
- arch/riscv/configs/64-bit.config
This is an upstream file which enables RISC-V for 64-bit.
- arch/riscv/configs/gki.config
This is a workaround file which enables things the ARM64 architecture
pre-selects, such as GPIOLIB. Without enabling these options, some
drivers are incorrectly dropped from the gki_defconfig.
Bug: 260012551
Signed-off-by: Alistair Delva <adelva@google.com>
Change-Id: Ifad59ed483bdbb736e905eefc5107328155a361b
Similar to aarch64 and x86_64, we also add ddk_headers
for arm so we can build DDK (Driver development kit) modules
for the arm architecture for virtual devices.
Test: Treehugger
Bug: 254735056
Change-Id: I7ade4a6053e59d84b825285fbc6162b6e642682e
Signed-off-by: Yifan Hong <elsk@google.com>
* This is to follow the convention:
kernel_<arch>_<target>
Bug: 260313194
Change-Id: I643fef0ed77b24c6564f8b8e1ed152180beeaf80
Signed-off-by: Ulises Mendez Martinez <umendez@google.com>
These corresponds to the build.config.allmodconfig.*
build configs.
Unlike build.sh, the Kleaf variant deliberately does not copy
any outputs to the distribution directory. There's not
even a dist target.
This is because allmodconfig is a build test only.
Test: bazel build --allow_undeclared_mdoules //common:allmodconfig_{aarch64,arm,x86_64}
Bug: 258259749
Change-Id: Iefe8f69149f6391938696e90243939d42d4fda84
Signed-off-by: Yifan Hong <elsk@google.com>
Use Kleaf to build rockpi4.
This does not enable mixed build. Mixed build is enabled
in follow-up CLs.
Test: bazel build //common:rockpi4_dist
Bug: 258259749
Change-Id: I4828953495c862afe517fff48195d2f6a97e3fcf
Signed-off-by: Yifan Hong <elsk@google.com>
This is so that it can be loaded by other packages. Some
device's may wish to not build mixed build, in which case
they'll either need to use 'auto' in module_outs (discouraged),
or load the list of GKI modules.
Test: TH
Bug: 258308697
Change-Id: Iff7778b9edae7101a2debd44a49bb5eb403bfb2f
Signed-off-by: Yifan Hong <elsk@google.com>
CONFIG_BT_HIDP: HIDP protocol support
HIDP (Human Interface Device Protocol) is a transport
layer for HID reports. HIDP is required for the Bluetooth
Human Interface Device Profile.
Bug: 232431151
Test: TH
Change-Id: Ibe9ed98370ecc9c9825c3a735070817d16254138
Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
(cherry picked from commit 4747c631a478866edd2cd6e0c98ce8febedf6ab1)
CONFIG_BT_RFCOMM: RFCOMM protocol support
RFCOMM provides connection oriented stream transport.
RFCOMM support is required for Dialup Networking,
OBEX and other Bluetooth applications.
Bug: 232431151
Test: TH
Change-Id: I573d8c7a1eff02b1554b5d6793b5c3c06fb35931
Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
(cherry picked from commit 264b55ef9b11bdc59c6164de01e3daf6a44bc95d)
Converts following networking features to modules:
CONFIG_TIPC: The Transparent Inter Process Communication (TIPC) protocol.
CONFIG_TIPC_DIAG: TIPC: socket monitoring interface
Bug: 232431151
Test: TH
Change-Id: I370cc7a34f67222b619107d773cc4a13edd6b538
Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
(cherry picked from commit e516a098e2a4605ce113dc85ba6ac4c93d5136fc)
CONFIG_USB_SERIAL: USB Serial Converter support
CONFIG_USB_FTDI_SIO: FTDI SIO single port USB to
serial converter device.
Bug: 232431151
Test: TH
Change-Id: I1522a9beb0f70740fdce11d1c50b606d81ddf6c6
Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
(cherry picked from commit 1383c8eae920fe95de79d0ce39e4468ad22034d6)
CONFIG_USB_ACM:
This driver supports USB modems and ISDN adapters
which support the Communication Device Class
Abstract Control Model interface.
Bug: 232431151
Test: TH
Change-Id: I15e07607121546eee4e6fa6b8bd8a8fd510a02d9
Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
(cherry picked from commit d0bdbdcadf547044e8be402f597a0ecc7ce341eb)
A new attribute, linux_includes, is added to ddk_headers to
denote that certain include directories should be added
to LINUXINCLUDE, not ccflags-y.
Change includes to linux_includes for the allowlist of
ddk_headers targets in //common. These are already
added to LINUXINCLUDE in common/Makefile, but we should
make them explicit in BUILD files too so the ordering can
be listed clearly in BUILD files.
Test: build cuttlefish with DDK
Bug: 257342715
Bug: 254735056
Change-Id: I97678264b37036cb5ab86973428e4e0d7f5b645d
Signed-off-by: Yifan Hong <elsk@google.com>
(cherry picked from commit 943d5a70d5a3a79bae02690a20e600974c7a644a)
The ddk_headers targets should be architecture specific; that
is, an x86_64 ddk_module should not be able to see arm64 headers,
and vice versa.
Since the majority of devices is arm64, the //common:all_headers
alias points to //common:all_headers_aarch64. x86_64 devices
can use //common:all_headers_x86_64 instead.
After this change:
- arm64 ddk_modules can continue depending on //common:all_headers, or
they can depend on //common:all_headers_aarch64 to be explicit.
In this case, they will not see the x86 headers.
- x86 ddk_modules can depend on //common:all_headers_x86_64.
In this case, they will not see the arm64 headers.
- unsafe headers under drivers/ are not splitted; they aren't arch specific.
This change ensures that e.g. virtual_device_x86_64 does not
search the headers from the arm64 folders.
Test: bazel build //common:all_headers
Test: bazel build --allow_ddk_unsafe_headers_set //common:all_headers
Bug: 256225968
Bug: 254735056
Signed-off-by: Yifan Hong <elsk@google.com>
Change-Id: I80dd33fb4c0e93dcba3e0714f9fd67d78596ab15
(cherry picked from commit 366ac32d7d8f0f67ac0c9b856cd387cb9e0354eb)
This CL includes headers used by the external modules
of virtual_device_x86_64.
Allowlist: This is a list of headers and a list of
include directories that are known to be safe
to be used by modules.
- This list includes:
- Everything under
- arch/x86/include
- include
Unsafe list: This is the list of headers that are known to be used
by the external modules of virtual_device_x86_64, minus allowlist.
This means, with the allowlist and unsafe list, the certain Pixel
device kernel build can be transitioned to DDK without any change
to the source code.
- Note that for cleaness of DDK modules, we may want to
remove some items in the allowlist of includes and
require device source code to #include from the
correct directory.
The command to generate this list is:
bazel run //build/kernel/kleaf:gen_ddk_headers \
--gen_ddk_headers_target=//common-modules/virtual-device:virtual_device_x86_64_modules_install \
--gen_ddk_headers_input_archives=//common:kernel_x86_64_ddk_allowlist_headers \
-- -k
Manual edits:
- arch/arm64/include/ is added back. This is due to a limitation
of the generation script that globs aren't properly handled.
Bug: 248351908
Bug: 254735056
Signed-off-by: Yifan Hong <elsk@google.com>
Change-Id: I0eae9213493d78a6899aa15c8096f3c7694328a3
(cherry picked from commit 3d56edf4a961a522ffc4d422c7d7f80eaa970391)
This CL includes headers used by the external modules of
a typical arm64 device.
Allowlist: This is a list of headers and a list of
include directories that are known to be safe
to be used by modules.
- This list includes:
- Everything under
- arch/arm64/include
- include
Unsafe list: This is the list of headers that are known to be used
by a certain Pixel device kernel build, minus allowlist.
The unsafe list is untouched in this CL because:
- mainline is volatile;
- we don't have ddk_module's for arm64 devices on mainline yet.
The command to generate this list is:
bazel run //build/kernel/kleaf:gen_ddk_headers \
--gen_ddk_headers_target=//gs/google-modules/soc-modules:slider_modules_install
-- -k
Manual edits:
- manually deleted changes to all_headers_unsafe
This change is a partial cherry-pick of
14e14cc4e9407783a559b22dffd4bd2062714dd5
Bug: 248351908
Bug: 254735056
Signed-off-by: Yifan Hong <elsk@google.com>
Change-Id: I2daf9c1583e59e6852c247c2f3f59a7c91d0022e
Create the skeleton rules for DDK headers, and write comments
with hands.
This CL has no real effect; all targets are declared empty
and content is filled in in follow up CLs.
Allowlist: This is a list of headers and a list of
include directories that are known to be safe
to be used by modules.
Unsafe list: This is the list of headers that are known to be used
by some device kernel build, minus allowlist.
This means, with the allowlist and unsafe list, an unspecified
device kernel build can be transitioned to DDK without any change
to the source code.
- Note that for cleaness of DDK modules, we may want to
remove some items in the allowlist of includes and
require device source code to #include from the
correct directory.
Bug: 248351908
Bug: 254735056
Signed-off-by: Yifan Hong <elsk@google.com>
Change-Id: I4f15d2fac703bc3b7100a72e90f289236db3e7e5
(cherry picked from commit ede1fd38eeafa71983e0f578bed60f12e0b87ca1)
Add CAN related non bus drivers as GKI modules.
Bug: 229934827
Bug: 232431151
Test: TH
Change-Id: I5d876363a0ea3007e5a83bbca53dcaae1e09e707
Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
(cherry picked from commit d166d423879bdec8b13903f1b5e0e568a657e856)
Create a generic global list for GKI modules' list
and use that instead of cluttering the long list in
every target to keep it more robust and readable.
Bug: 232431151
Test: TH
Change-Id: Ib7f7be7988204c483519be0b38a90007d54b7912
Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
Add buildifier sorting directives for modules lists
to catch non sorted lists in presubmit as well as
to help sort lists using the buildifier.
Bug: 232431151
Test: TH
Change-Id: I508652429f26f85ce5d760024574d68d63f2da9e
Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
(cherry picked from commit 39228dd9f2eadd22a747eac65dc14dc6436fb0d8)
In preparation of going away from the build.config.*,
remove the comments to keep bazel in sync with them.
Bug: 232431151
Test: TH
Change-Id: Iadf09d1a7c5afbbfdafb8225471352a48842be34
Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
(cherry picked from commit 94afa3c4e00a7ea1b7135428d19c5fbd48c2e3ee)
Sort modules listing in an ascending order,
since order is not important.
Bug: 232431151
Test: TH
Change-Id: Icaad772671bf3d6a78ce1fda84b3a6fe566df0f6
Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
(cherry picked from commit 8fdddc52afcd89debfedb66451c37872fbc0a5d3)
Enable zram and zsmalloc as modules to be in sync
with the aarch64 builds.
Bug: 232431151
Test: TH
Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
Change-Id: I55053eeb6beda342689c854f95f4307871a3729b
(cherry picked from commit 44e9b82e013edee43f02f68e0b8a011135d290db)
Enable CONFIG_QCOM_GPI_DMA to configure I2C and SPI
in GPI DMA mode on SDM845.
Bug: 146449535
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Change-Id: Iab55bcf605d995a2d2e7ab51a1d36c67baf3cb8f
REGMAP_SPMI is a hidden symbol normally selected by other SPMI drivers,
but it wasn't built-in to GKI like other REGMAP APIs so vendors had to
build it downstream.
This is a small amount of code and can be modularized later.
For allmodconfig, select SPMI via Kconfig.gki instead of gki_defconfig,
because otherwise allmodconfig will build SPMI=m and REGMAP_SPMI=y,
which is not allowed.
Bug: 248307451
Signed-off-by: Alistair Delva <adelva@google.com>
Change-Id: Ic3833e3a2dc44386c12a2422562994a1581a549c