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
When a device kernel builds their own modules that
conflicts with the GKI modules (zram and zsmalloc
for android13-5.15), the dist target will produce a
warning about conflicting source files.
Hence, do not include zram and zsmalloc to the device
dist targets by default when they include //common:kernel_aarch64
only.
If they wish to include zram and zsmalloc in
the distribution on the android13-5.15 branch,
they may add the following to the
dist target:
"//common:kernel_aarch64_modules",
or individual modules:
"//common:kernel_aarch64/drivers/block/zram/zram.ko",
"//common:kernel_aarch64/mm/zsmalloc.ko",
//common:kernel_aarch64_dist continues to include GKI
modules defined by the branch.
Bug: 244215515
Test: manual
Change-Id: Iae701d7d452e6ed3a849fdfd03550551ca2af17e
Signed-off-by: Yifan Hong <elsk@google.com>
Revert submission 2188970-db845c_mixed_build
Reason for revert: It breaks android-mainline
Reverted Changes:
I6cfb1ef19:ANDROID: Convert db845c to a mixed build.
I6680cb8ef:kleaf: Convert db845c to a mixed build.
I6cfb1ef19:ANDROID: Convert db845c to a mixed build.
Signed-off-by: Ulises Mendez Martinez <umendez@google.com>
Change-Id: I337800cc4483877587f0a25d1fde2dadc444a81e
In commit 3158e39aa5f4 ("phy: qcom-qmp: switch to new split QMP PHY
driver") the qcom-qmp driver got split up into smaller drivers, so
update the BUILD.bazel file so that the build can continue to work
properly.
Fixes: 3158e39aa5f4 ("phy: qcom-qmp: switch to new split QMP PHY driver")
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I23da8f220c78a497d2a7d2406cbcca36c4637b6f
Signed-off-by: Will McVicker <willmcvicker@google.com>
Upsteam commit 9ce49018c692 ("pinctrl: qcom: Extract chip
specific LPASS LPI code") moved the RB5 (SM8250) specific
code from the LPASS LPI pinctrl driver to a new SM8250
LPASS LPI pinctrl driver. So enable that driver explicitly
otherwise sound drivers on RB5 won't probe.
Bug: 146449535
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Change-Id: Idfe2a097f11f0203f0ffb7cbaad780bd82271441
Commit dd11376b9f1b ("scsi: ufs: Split the drivers/scsi/ufs directory")
moved the UFS host drivers into drivers/scsi/ufs/host/ so fix that up in
the BUILD.bazel file for when it tries to find the built modules.
Fixes: dd11376b9f1b ("scsi: ufs: Split the drivers/scsi/ufs directory")
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I7cb54980c50822ecbda244882b1481be16d0f3aa
Add the drivers/leds/rgb/leds-qcom-lpg.ko driver to the list of modules
that the db845c build needs as it is now upstream and actually builds.
Fixes: 24e2d05d1b68 ("leds: Add driver for Qualcomm LPG")
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I5bb6ffe688c5c9fe85313d1d7302d248789508ab
In commit 1e0f66420b13 ("drm/display: Introduce a DRM display-helper
module") the generated module file names were changed. This patch
updates the BUILD.bazel db845c section to update it with the new
module names.
Additionally commit f5d01644921b ("drm/msm: select DRM_DP_AUX_BUS
for the AUX bus support") added a dependency on the drm_dp_aux_bus
module.
Fixes: 1a016dd7ce28 ("Merge 2518f226c60d ("Merge tag 'drm-next-2022-05-25' of git://anongit.freedesktop.org/drm/drm") into android-mainline")
Reported-by: Greg Kroah-Hartman <gregkh@google.com>
Signed-off-by: John Stultz <jstultz@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I5b0695c92e9627d3b5f3ac38b32ee7240a8a894b
db845c is not a mixed build yet, so need to add GKI
modules to it's module_outs for kleaf builds to
resolve hard failures in kleaf build for module copy.
Bug: 230519159
Test: tools/bazel run //common:db845c_dist
Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
Change-Id: If3ce64a2b5f6b2f019a393f4674de30ac7437069
(cherry picked from commit eb38c6d799525c89bc3b1817dc22c34fa2281e09)
Enable zram and zsmalloc (dependency for zram) as
unprotected modules for aarch64. These are already
being used as modules by the vendor currently; so
needs to be unprotected.
Bug: 230519159
Test: TH
Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
Change-Id: I7c617c1a24f6e083301cbed67d0d323388cbd622
(cherry picked from commit 0fe423433bb3fa0b5003409bbd59a972e6c235e2)
Remove because the config is no longer enabled.
This fixes the kleaf build for db845c.
Test: manual
Bug: 229913034
Change-Id: Ie54e843d4dce6216ac25be0a57cd84b4ee8537b1
Signed-off-by: Yifan Hong <elsk@google.com>
Kleaf replaces build.sh. Define db845c target in Bazel
so it may be built with the following command.
Kleaf requires the list of in-tree kernel modules to be
listed explicitly.
Test: tools/bazel run //common:db845c_dist
Bug: 229913034
Change-Id: I725d7d6c4e9897cad58f970821cd2b222ac64889
Signed-off-by: Yifan Hong <elsk@google.com>
This is part of a migration process from build/
to build/kernel.
Test: builds
Bug: 204425264
Change-Id: Id29f8e476fbb3590196789b2b578865798f24cd3
Signed-off-by: Yifan Hong <elsk@google.com>
In order to update the Clang version per branch, use the branch specific
value defined in build.config.constants instead of falling back to the
default toolchain defined in the Kleaf implementation.
Bug: 210296725
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: I8929ec4b4174fc286710a5c66741b140656bb455
.... so it can be referenced in mixed builds.
Test: build cuttlefish
Bug: 202075496
Change-Id: I8d79847c54c639fa619edf3280c021f02ba76645
Signed-off-by: Yifan Hong <elsk@google.com>
Signed-off-by: Matthias Maennich <maennich@google.com>
Using the macro avoids duplication and boilerplate across branches.
Bug: 192655270
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: Ie0034ae396baaaaf07035c3532b71a70918e0aba
Build config files can now be expressed as files relative to the
BUILD.bazel file. That makes this mechanism much more portable.
Bug: 192656402
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: Iefa7277f21e9412e71c9738664d006246b05be6e
That's the common keyword we use.
Test: pass
Bug: 192655270
Signed-off-by: Yifan Hong <elsk@google.com>
Change-Id: I77d58fb99e0186e88a63ba8576ac23eabc72833e
For the moment, do not bother with the kernel headers as outputs. While
splitting up the bazel build build/build.sh invocation, this will get
in the way as those will not be immediately produced by the new macros.
Hence, do not not expect them.
Bug: 192656402
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: Ieb041d34cf5667f7e3cee14b4cea41a7c6024998
The updated kernel_build macro requires the usage of glob() to express
the sources involved.
Bug: 189451175
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: Ib5953fe4ed2c4a219f2296c1991daa317032f64e
Add build rules to build the GKI kernels using the hermetic bazel build.
The rules understand how to set up a build environment from build_config
and locations of the sources and build_configs.
Sample invocations:
$ bazel build //common:kernel_aarch64
$ bazel build //common:kernel_aarch64_debug
$ bazel build //common:kernel_x86_64
$ bazel build //common:kernel_x86_64_debug
Bug: 189451175
Change-Id: I2f06b2b79dbcbf197cb23d68b3c2f6786191e19d
Signed-off-by: Matthias Maennich <maennich@google.com>