Skip to content
Snippets Groups Projects
  1. Apr 18, 2023
  2. Mar 23, 2023
  3. Jan 28, 2022
  4. Nov 10, 2021
  5. Oct 18, 2021
    • Elliot Berman's avatar
      _setup_env.sh: Add DISABLE_HERMETIC_SYSROOT · 4e198441
      Elliot Berman authored
      
      Add internal flag to disable hermetic sysroot to allow for a
      mostly-hermetic toolchain on targets which need openssl. Kernel
      platform 1.0 toolchain is missing the support to enable hermetic
      toolchain with openssl. This change will allow targets which need
      openssl to enable a more hermetic build option where the PATH is
      hermetic, but still using sysroot from host.
      
      Change-Id: I645d3613f9eaba8feb9109cda4afda0f22b84796
      Signed-off-by: default avatarElliot Berman <quic_eberman@quicinc.com>
      4e198441
  6. Sep 02, 2021
    • Elliot Berman's avatar
      merge_dtbs.py: Correct dt split logic · 43b33020
      Elliot Berman authored
      
      The current loop bail-out condition was whether none of plat/board/pmic
      should be removed
      
      To split a devicetree across another devicetree's identifiers, a
      devicetree is first created containing only the "other" identifiers.
      Then, we run a loop to form the remaining possible devicetree
      combinations. For instance, if board identifier is different between
      "self" and "other", then one additional devicetree would be added where
      that devicetree has only the board identifier unique to self.
      
      More concretely:
      DT[A] has board ID = <X Y>
      DT[B] has board ID = <Y>
      
      First step would create DT with board ID = <Y>. Next, a loop runs to
      create a devicetree with: board ID = <X Y> - <Y> = <X>.
      
      Since it is possible for any of platform, board, and pmic to be
      different, a loop is run to go over possible combinations. This loop
      will first split platform id, then platform and board ids, then
      platform, board, and pmic ids. The loop should be skipped if nothing
      would be removed from DT[A] since that would result in the original DTB
      being re-generated.
      
      Change-Id: Ic2a48f44bf7cd2a98e6dd59102d454debacd2138
      Signed-off-by: default avatarElliot Berman <eberman@codeaurora.org>
      43b33020
  7. Aug 04, 2021
  8. Jul 29, 2021
  9. Jul 26, 2021
  10. Jul 23, 2021
  11. Jul 21, 2021
  12. Jul 14, 2021
    • Ivaylo Georgiev's avatar
      Merge keystone/mirror-aosp-master-kernel-build-2021@4346db8141 · 505629a0
      Ivaylo Georgiev authored
      
      * commit '4346db81':
        ABI: pass --no-report-untyped to abitidy
        ABI: fix typos relating to TIDY_ABI
        ABI: tidy ABI XML only if requested
        ABI: post-process abidw output with abitidy --all
        ABI: add abitidy to build-tools
        GKI: build_abi.sh: copy updated symbols to DIST_DIR
        build.sh: Do not require KERNEL_BINARY when not building boot.img
        build.sh: Add support for building vendor_boot images alone
        build_abi.sh: correct KMI_SYMBOL_LIST_MODULE_GROUPING check
        build.sh: Separate module.load for vendor_boot and vendor_dlkm
        build.sh: Add support for GKI prebuilts for mixed builds
        build.sh: Expand path for KBUILD_MIXED_TREE in mixed builds
        build.sh: Unset EXT_MODULES for GKI kernel in mixed build
      
      Conflicts:
      	build.sh
      
      Change-Id: I07e80c24f9ea8b34c5850bd36e3e0125d7386a67
      Signed-off-by: default avatarIvaylo Georgiev <irgeorgiev@codeaurora.org>
      505629a0
  13. Jul 13, 2021
    • Elliot Berman's avatar
      android: prepare_vendor.sh: Remove la symlink · 3ec93c82
      Elliot Berman authored
      
      The la symlink is unused and KERNEL_KIT are specified in Android flows,
      so remove it.
      
      Change-Id: I146df4bf1b2c53a620b3968787c1374490c9ce0b
      Signed-off-by: default avatarElliot Berman <eberman@codeaurora.org>
      3ec93c82
    • Elliot Berman's avatar
      android: prepare_vendor.sh: Use kernel-uapi-headers.tar.gz · 8551e2c0
      Elliot Berman authored
      
      To avoid needing to copy kernel_uapi_headers folder, use the
      kernel-uapi-headers.tar.gz folder when preparing device kernel headers
      for Android.
      
      Change-Id: Ic71fee1b5d16029613e3f58c93589a3ce7dfaff4
      Signed-off-by: default avatarElliot Berman <eberman@codeaurora.org>
      8551e2c0
    • Elliot Berman's avatar
      android: prepare_vendor.sh: Support kernel kit build_module.sh · 7534d6dc
      Elliot Berman authored
      
      Specify KERNEL_KIT and OUT_DIR to align with build_module v2. With
      build_module v2, out-of-tree modules can be compiled "directly" in the
      desired output location: ${ANDROID_PRODUCT_OUT}/obj/DLKM_OBJ. This is
      achieved by creating the real kernel platform output folder (for
      out-of-tree modules) inside
      ${ANDROID_PRODUCT_OUT}/obj/DLKM_OBJ/kernel_platform. As far as
      Android-built out of tree modules are concerned, kernel platform was
      compiled into that folder.
      
      This change has the added benefit of being able to remove the previous
      hack of creating a symlink of "la" to the root of the Android build
      environment. That comes at a cost of no longer being able to use an
      kernel platform source tree that lived outside of Android's workspace.
      However, that wasn't a well supported use case anyone and there are no
      known users of it.
      
      Change-Id: I923fb4d9ece28e998c463b8550cb7c39231e26c5
      Signed-off-by: default avatarElliot Berman <eberman@codeaurora.org>
      7534d6dc
    • Elliot Berman's avatar
      android: prepare_vendor.sh: Make copying KP to Android prebuilts optional · 1737b4b7
      Elliot Berman authored
      
      To support use case where only
      device/qcom/${TARGET_BOARD_PLATFORM}-kernel folder is present, make
      copying artifacts from prebuilt kernel platform output optional. Always
      copy them from KP OUT_DIR if present. The only time kernel artifacts
      aren't copied is if there is already
      device/qcom/${TARGET_BOARD_PLATFORM}-kernel/Image *and* the kernel
      platform output folder doesn't exist.
      
      There is possibility that techpack devicetree has changed and needs to
      be re-generated and re-merged by prepare_vendor.sh. For instance, if
      a prebuilt ${TARGET_BOARD_PLATFORM}-kernel folder is created from an
      older version of Android workspace and we want to integrate that older
      prebuilt with newer version of Android. To support this use case, copy
      the kernel platform DTBs to the ${TARGET_BOARD_PLATFORM}-kernel/kp-dtbs
      folder. merge_dtbs.sh will reference this folder for the kernel platform
      DTBs.
      
      To support KERNEL_KIT-based module compilation, need to copy the
      following additional files:
       - .config
       - Module.symvers
       - ${KP_OUT_DIR}/host/** (contains DTC).
      
      Change-Id: I6cecf287c0c547e784892c0b916190908df703ad
      Signed-off-by: default avatarElliot Berman <eberman@codeaurora.org>
      1737b4b7
    • Elliot Berman's avatar
      android: prepare_vendor.sh: Reduce side-effects of determining KP_OUT_DIR · 8050bb40
      Elliot Berman authored
      
      In kernel/build commit 740908a7 ("Add support for full hermetic
      toolchain restrictions"), the OUT_DIR is created at _setup_env.sh time.
      _setup_env.sh is run early by prepare_vendor.sh when running brunch and
      when determing the default output directory folder. Create a temporary
      output directory so that an output directory tree isn't implicitly
      created by running prepare_vendor.sh.
      
      Also, make the "real" prebuilt kernel platform output folder a fully
      qualified path that is either inside ANDROID_BUILD_TOP (android
      workspace) or inside ROOT_DIR (kernel platform workspace). The purpose
      of this change is to improve handling in developer case where
      they may have built the kernel in a separate command locally and the
      output was put in ROOT_DIR, but it wasn't moved to ANDROID_BUILD_TOP.
      
      Change-Id: I74a1a1b0f647b246a9b15865492910ba85b48432
      Signed-off-by: default avatarElliot Berman <eberman@codeaurora.org>
      8050bb40
    • Elliot Berman's avatar
      android: prepare_vendor.sh: Improve usage of Android lunch environment · 9cd89814
      Elliot Berman authored
      
      Make it easier to run prepare_vendor.sh without a full Android
      environment. Previously, ANDROID_BUILD_TOP and ANDROID_PRODUCT_OUT must
      be set in order to run prepare_vendor.sh. Now, the real requirement is
      that ANDROID_KERNEL_OUT is set. If not specified, it's derived from
      ANDROID_BUILD_TOP and TARGET_BOARD_PLATFORM.
      
      Add documentation for those variables and highlight other important
      environment variables used by prepare_vendor.sh, such as KERNEL_TARGET,
      KERNEL_VARIANT, and RECOMPILE_KERNEL.
      
      This change switches from using TARGET_PRODUCT to TARGET_BOARD_PLATFORM
      to determine the name of "device/qcom/${TARGET_BOARD_PLATFORM}-kernel".
      
      Change-Id: I2b0326bf2cfba6c2055dffe2f510d698d98a548c
      Signed-off-by: default avatarElliot Berman <eberman@codeaurora.org>
      9cd89814
    • Elliot Berman's avatar
      build_module.sh: Introduce KERNEL_KIT · 419f27ca
      Elliot Berman authored
      
      The current version of build_module.sh has a limitation that it requires
      a complete pre-compiled kernel source tree. This is not ideal as it
      requires a complete kernel build available inside Android builds.
      
      Introduce support for a new variable, KERNEL_KIT, which allows the
      caller to specify a prebuilt folder which contains the necessary
      pre-compiled artifacts (.config, Module.symvers, and host tools). Then,
      "make modules_prepare" is run to create necessary generated header files
      and Kbuild host tools (like fixdep).
      
      With this change, Android can compile its out-of-tree kernel modules
      like this:
      
        cd kernel_platform
        OUT_DIR=${ANDROID_PRODUCT_OUT}/obj/DLKM_OBJ \
        KERNEL_KIT=../device/qcom/taro-kernel \
        EXT_MODULES=../vendor/qcom/opensource/audio-kernel \
        ./build/build_module.sh
      
      This change is also backwards compatible with a userspace that doesn't
      know how to use KERNEL_KIT. In that case, the end-to-end behavior is the
      same as the original build_module.sh.
      
      Change-Id: Ib23444572c4aa1b647a1213d49375cce998fc83a
      Signed-off-by: default avatarElliot Berman <eberman@codeaurora.org>
      419f27ca
  14. Jul 08, 2021
  15. Jul 01, 2021
  16. Jun 30, 2021
  17. Jun 28, 2021
  18. Jun 18, 2021
  19. Jun 14, 2021
    • J. Avila's avatar
      Merge changes Ib8912ba6,I60c1a3dc · 089caf0c
      J. Avila authored
      * changes:
        build.sh: Add support for GKI prebuilts for mixed builds
        build.sh: Expand path for KBUILD_MIXED_TREE in mixed builds
      089caf0c
  20. Jun 10, 2021
    • J. Avila's avatar
      build.sh: Separate module.load for vendor_boot and vendor_dlkm · f9b8aadb
      J. Avila authored
      
      Modules can be loaded from two different partitions - vendor_boot and
      vendor_dlkm. Provide separate outputs in the DIST_DIR for which modules
      are to be loaded in each: vendor_boot.modules.load and
      vendor_dlkm.modules.load.
      
      Additionally, because it is redundant to load modules from both the
      vendor_boot and vendor_dlkm partitions, remove any modules loaded in
      vendor_boot from the vendor_dlkm.modules.load.
      
      Signed-off-by: default avatarJ. Avila <elavila@google.com>
      Change-Id: I0e4e67914b7df7bddbb0bdb7dc1514f505e2c526
      f9b8aadb
    • J. Avila's avatar
      build.sh: Add support for GKI prebuilts for mixed builds · f87379ee
      J. Avila authored
      
      When making a mixed build, you can avoid needing to build both the GKI
      and device kernels if you provide a set of prebuilts that contains all
      of the outputs the device kernel modules require. Add support for this
      to build.sh.
      
      Signed-off-by: default avatarJ. Avila <elavila@google.com>
      Change-Id: Ib8912ba64dabe8465b00cff7f1fa2cc93fd6e587
      f87379ee
    • J. Avila's avatar
      build.sh: Expand path for KBUILD_MIXED_TREE in mixed builds · 7e7e87d1
      J. Avila authored
      
      Much of build.sh works when providing paths relative to the ROOT_DIR,
      but the KBUILD_MIXED_TREE variable used by kernel builds requires an
      absolute path. Ensure that, when GKI_BUILD_CONFIG is set, we give the
      absolute path to GKI_DIST_DIR to KBUILD_MIXED_TREE.
      
      Signed-off-by: default avatarJ. Avila <elavila@google.com>
      Change-Id: I60c1a3dc6aad2a94729ee510176d328406c1f6a9
      7e7e87d1
  21. Jun 09, 2021
  22. Jun 06, 2021
  23. May 27, 2021
  24. May 24, 2021
  25. May 19, 2021
Loading