bazel: support some build command --upgrade [1/2]

PD#SWPL-127872

Problem:
support some build command --upgrade

Solution:
support some build command --upgrade

Verify:
5.15

Change-Id: Ic5f90990d14b40bc1408c88d12f15b86622261c0
Signed-off-by: qinglin.li <qinglin.li@amlogic.com>
diff --git a/modules.bzl b/modules.bzl
index f888962..13616cc 100644
--- a/modules.bzl
+++ b/modules.bzl
@@ -1,7 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
-
-load("//common:common_drivers/project/project.bzl", "AMLOGIC_MODULES_ANDROID", "GKI_CONFIG")
-
+load("//common:common_drivers/project/project.bzl", "ANDROID_PROJECT", "GKI_CONFIG", "UPGRADE_PROJECT")
+load("//common:common_drivers/project/project.bzl", "VENDOR_MODULES_REMOVE", "VENDOR_MODULES_ADD")
 
 OEM_PROJECT_MODULES = [
 
@@ -15,6 +14,10 @@
 
 ]
 
+AMLOGIC_MODULES_ANDROID = [
+    "common_drivers/drivers/tty/serial/amlogic-uart.ko",
+]
+
 AMLOGIC_COMMON_MODULES = [
     # keep sorted
     "arch/arm64/crypto/sha1-ce.ko",
@@ -123,5 +126,124 @@
     "net/wireless/cfg80211.ko",
 ]
 
+AMLOGIC_UPGRADE_COMMON_MODULES = [
+    # keep sorted
+    "arch/arm64/crypto/sha1-ce.ko",
+    "common_drivers/drivers/crypto/amlogic-crypto-dma.ko",
+    "common_drivers/drivers/debug/amlogic-audio-utils.ko",
+    "common_drivers/drivers/drm/aml_drm.ko",
+    "common_drivers/drivers/dvb_ci/amlogic-dvb-ci.ko",
+    "common_drivers/drivers/dvb/demux/amlogic-dvb-demux.ko",
+    "common_drivers/drivers/firmware/bl40_module.ko",
+    "common_drivers/drivers/hifi4dsp/amlogic-hifidsp.ko",
+    "common_drivers/drivers/hwspinlock/amlogic-hwspinlock.ko",
+    "common_drivers/drivers/iio/adc/amlogic-adc.ko",
+    "common_drivers/drivers/irblaster/amlogic-irblaster.ko",
+    "common_drivers/drivers/jtag/amlogic-jtag.ko",
+    "common_drivers/drivers/led/amlogic-led.ko",
+    "common_drivers/drivers/media/camera/amlogic-camera.ko",
+    "common_drivers/drivers/net/mdio/amlogic-mdio-g12a.ko",
+    "common_drivers/drivers/net/phy/amlogic-inphy.ko",
+    "common_drivers/drivers/pci/controller/amlogic_pcie_v2_host.ko",
+    "common_drivers/drivers/pci/controller/amlogic-pcie-v3_host.ko",
+    "common_drivers/drivers/rtc/amlogic-rtc.ko",
+    "common_drivers/drivers/soc_info/amlogic-socinfo.ko",
+    "common_drivers/drivers/thermal/amlogic-thermal.ko",
+    "common_drivers/drivers/usb/amlogic-usb.ko",
+    "common_drivers/drivers/usb/dwc_otg.ko",
+    "common_drivers/drivers/wireless/amlogic-wireless.ko",
+    "common_drivers/drivers/seckey/amlogic-seckey.ko",
+    "common_drivers/drivers/net/ethernet/stmicro/stmmac/amlogic-phy-debug.ko",
+    "common_drivers/sound/soc/amlogic/amlogic-snd-soc.ko",
+    "common_drivers/sound/soc/codecs/amlogic/amlogic-snd-codec-ad82128.ko",
+    "common_drivers/sound/soc/codecs/amlogic/amlogic-snd-codec-ad82584f.ko",
+    "common_drivers/sound/soc/codecs/amlogic/amlogic-snd-codec-dummy.ko",
+    "common_drivers/sound/soc/codecs/amlogic/amlogic-snd-codec-pa1.ko",
+    "common_drivers/sound/soc/codecs/amlogic/amlogic-snd-codec-t9015.ko",
+    "common_drivers/sound/soc/codecs/amlogic/amlogic-snd-codec-tas5707.ko",
+    "common_drivers/sound/soc/codecs/amlogic/amlogic-snd-codec-tas5805.ko",
+    "common_drivers/sound/soc/codecs/amlogic/amlogic-snd-codec-tl1.ko",
+    "drivers/i2c/i2c-dev.ko",
+    "drivers/media/v4l2-core/v4l2-async.ko",
+    "drivers/media/v4l2-core/v4l2-fwnode.ko",
+    "drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.ko",
+    "drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.ko",
+    "drivers/net/ethernet/stmicro/stmmac/dwmac-meson.ko",
+    "drivers/net/ethernet/stmicro/stmmac/stmmac.ko",
+    "drivers/net/ethernet/stmicro/stmmac/stmmac-platform.ko",
+    "drivers/net/mdio/mdio-mux.ko",
+    "drivers/net/pcs/pcs_xpcs.ko",
+    "drivers/regulator/gpio-regulator.ko",
+    "fs/ntfs3/ntfs3.ko",
+    "net/mac80211/mac80211.ko",
+    "net/wireless/cfg80211.ko",
+]
+
+AMLOGIC_UPGRADE_P_MODULES = AMLOGIC_UPGRADE_COMMON_MODULES + [
+
+]
+
+AMLOGIC_UPGRADE_R_MODULES = AMLOGIC_UPGRADE_COMMON_MODULES + [
+
+]
+
+AMLOGIC_UPGRADE_S_MODULES = AMLOGIC_UPGRADE_COMMON_MODULES + [
+
+]
+
+AMLOGIC_UPGRADE_U_MODULES = AMLOGIC_UPGRADE_COMMON_MODULES + [
+
+]
+
+UPGRADE_MODULES_REMOVE_R = [
+    "common_drivers/drivers/tty/serial/amlogic-uart.ko",
+]
+
+UPGRADE_MODULES_REMOVE_S = [
+    "common_drivers/drivers/tty/serial/amlogic-uart.ko",
+]
+
+UPGRADE_MODULES_REMOVE_P = [
+    "common_drivers/drivers/tty/serial/amlogic-uart.ko",
+    "common_drivers/drivers/drm/aml_drm.ko",
+    "common_drivers/drivers/hwspinlock/amlogic-hwspinlock.ko",
+    "common_drivers/drivers/iio/adc/amlogic-adc.ko",
+    "common_drivers/drivers/irblaster/amlogic-irblaster.ko",
+    "common_drivers/drivers/media/camera/amlogic-camera.ko",
+    "common_drivers/drivers/net/mdio/amlogic-mdio-g12a.ko",
+    "common_drivers/drivers/net/phy/amlogic-inphy.ko",
+    "common_drivers/drivers/thermal/amlogic-thermal.ko",
+    "common_drivers/drivers/usb/amlogic-usb.ko",
+    "common_drivers/drivers/net/ethernet/stmicro/stmmac/amlogic-phy-debug.ko",
+    "drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.ko",
+    "drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.ko",
+    "drivers/net/ethernet/stmicro/stmmac/dwmac-meson.ko",
+    "drivers/net/ethernet/stmicro/stmmac/stmmac.ko",
+    "drivers/net/ethernet/stmicro/stmmac/stmmac-platform.ko",
+    "drivers/net/mdio/mdio-mux.ko",
+    "drivers/net/pcs/pcs_xpcs.ko",
+    "drivers/net/mii.ko",
+]
+
+UPGRADE_MODULES_REMOVE_U = [
+    "common_drivers/drivers/tty/serial/amlogic-uart.ko",
+]
+
 AMLOGIC_GKIX_MODULES = AMLOGIC_GKI20_MODULES if GKI_CONFIG == "gki_20" else AMLOGIC_GKI10_MODULES
-AMLOGIC_MODULES = AMLOGIC_COMMON_MODULES + AMLOGIC_GKIX_MODULES + AMLOGIC_MODULES_ANDROID
+COMMON_MODULES = AMLOGIC_UPGRADE_R_MODULES if UPGRADE_PROJECT == "r" or UPGRADE_PROJECT == "R" else \
+		 AMLOGIC_UPGRADE_S_MODULES if UPGRADE_PROJECT == "s" or UPGRADE_PROJECT == "S" else \
+		 AMLOGIC_UPGRADE_P_MODULES if UPGRADE_PROJECT == "p" or UPGRADE_PROJECT == "P" else \
+		 AMLOGIC_UPGRADE_U_MODULES if UPGRADE_PROJECT == "u" or UPGRADE_PROJECT == "U" else \
+		 AMLOGIC_COMMON_MODULES
+ALL_MODULES = COMMON_MODULES + AMLOGIC_GKIX_MODULES + VENDOR_MODULES_ADD + AMLOGIC_MODULES_ANDROID if ANDROID_PROJECT else \
+	      COMMON_MODULES + AMLOGIC_GKIX_MODULES + VENDOR_MODULES_ADD
+
+ALL_MODULES_REMOVE = \
+	VENDOR_MODULES_REMOVE + UPGRADE_MODULES_REMOVE_R if UPGRADE_PROJECT == "r" or UPGRADE_PROJECT == "R" else \
+	VENDOR_MODULES_REMOVE + UPGRADE_MODULES_REMOVE_S if UPGRADE_PROJECT == "s" or UPGRADE_PROJECT == "S" else \
+	VENDOR_MODULES_REMOVE + UPGRADE_MODULES_REMOVE_P if UPGRADE_PROJECT == "p" or UPGRADE_PROJECT == "P" else \
+	VENDOR_MODULES_REMOVE + UPGRADE_MODULES_REMOVE_U if UPGRADE_PROJECT == "u" or UPGRADE_PROJECT == "U" else \
+	VENDOR_MODULES_REMOVE
+remove_modules_items = {module: None for module in depset(ALL_MODULES_REMOVE).to_list()}
+
+AMLOGIC_MODULES = [module for module in depset(ALL_MODULES).to_list() if module not in remove_modules_items]