Add defconfig only for BTT Pi2.

This commit is contained in:
Andrey Leonchikov 2025-09-14 13:09:55 +02:00
parent 35ccc6b7a3
commit cefd7eab34
8 changed files with 928 additions and 868 deletions

View File

@ -51,7 +51,8 @@
"makeopts": "CROSS_COMPILE=%{CROSS_C}% BL31=%{out_dir}%/bl31.bin"
},
{
"parent": "kernel"
"parent": "kernel",
"config_def": "btt_cb1_printer_defconfig"
}
],
"install":

View File

@ -65,7 +65,8 @@
"makeopts": "CROSS_COMPILE=%{CROSS_C}% ARCHV=%{ARCH}% ROCKCHIP_TPL=%{out_dir}%/%{TPL_BIN}% BL31=%{out_dir}%/%{BL31_BIN}%"
},
{
"parent": "kernel"
"parent": "kernel",
"config_def": "btt_pi2_printer_defconfig"
}
],
"install":

View File

@ -50,34 +50,7 @@
},
{
"parent": "kernel",
"version": "v6.14-rc7",
"version_type": "tag",
"patch_dir": [ "kernel", "kernel/sunxi-6.14", "kernel/rockchip64-6.14" ],
"config_def": "printer_defconfig",
"target": [ "clean", "Image", "modules", "dtbs", "modules_install" ],
"artifacts":
[
{
"file": "arch/arm64/boot/Image",
"store_type": "boot"
},
{
"file": "arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dtb",
"store_type": "boot",
"subdir": "dtb/allwinner"
},
{
"file": "arch/arm64/boot/dts/allwinner/overlay/sun50i-h616*.dtbo",
"store_type": "boot",
"subdir": "dtb/allwinner/overlay"
},
{
"file": "",
"store_type": "boot",
"kmods": true
}
],
"makeopts": "CROSS_COMPILE=%{CROSS_C}% ARCH=arm64 INSTALL_MOD_PATH=%{out_dir}%/kmods/usr"
"config_def": "opi_zero2_printer_defconfig"
}
],
"install":

View File

@ -0,0 +1,43 @@
[
{
"name": "minimize",
"options":
[
"CONFIG_EXPERT",
"CONFIG_UID16",
"CONFIG_BUG",
"CONFIG_ELF_CORE",
"CONFIG_KALLSYMS",
"CONFIG_ARM64_VA_BITS_48",
"CONFIG_NR_CPUS=8",
"CONFIG_EFI",
"CONFIG_SWAP",
"CONFIG_SURFACE_PLATFORMS",
"CONFIG_LOG_BUF_SHIFT=12",
"CONFIG_LOG_CPU_MAX_BUF_SHIFT=11",
"CONFIG_FTRACE",
"CONFIG_MOUSE_PS2",
"CONFIG_SUNXI_SYS_INFO",
"CONFIG_DUMP_REG",
"CONFIG_ETHERNET",
"CONFIG_WLAN_VENDOR_ADMTEK",
"CONFIG_WLAN_VENDOR_ATH",
"CONFIG_WLAN_VENDOR_ATMEL",
"CONFIG_WLAN_VENDOR_BROADCOM",
"CONFIG_WLAN_VENDOR_INTEL",
"CONFIG_WLAN_VENDOR_INTERSIL",
"CONFIG_WLAN_VENDOR_MARVELL",
"CONFIG_WLAN_VENDOR_MEDIATEK",
"CONFIG_WLAN_VENDOR_MICROCHIP",
"CONFIG_WLAN_VENDOR_PURELIFI",
"CONFIG_WLAN_VENDOR_RALINK",
"CONFIG_WLAN_VENDOR_REALTEK",
"CONFIG_WLAN_VENDOR_RSI",
"CONFIG_WLAN_VENDOR_SILABS",
"CONFIG_WLAN_VENDOR_ST",
"CONFIG_WLAN_VENDOR_TI",
"CONFIG_WLAN_VENDOR_ZYDAS",
"CONFIG_WLAN_VENDOR_QUANTENNA"
]
}
]

53
config/kernel/rk35xx.json Normal file
View File

@ -0,0 +1,53 @@
[
{
"name": "rk35xx",
"depends":
[
"initrd",
"kconfig",
"base_arm64"
],
"options":
[
"CONFIG_PERF_EVENTS",
"CONFIG_HW_PERF_EVENTS",
"CONFIG_ARM_PMUV3",
"CONFIG_ARCH_ROCKCHIP",
"CONFIG_ROCKCHIP_MBOX",
"CONFIG_ROCKCHIP_IOMMU",
"CONFIG_ROCKCHIP_IODOMAIN",
"CONFIG_REGULATOR",
"CONFIG_ROCKCHIP_PM_DOMAINS",
"CONFIG_CPU_IDLE",
"CONFIG_ARM_PSCI_CPUIDLE",
"CONFIG_PM_GENERIC_DOMAINS_OF",
"CONFIG_ARM_PSCI_CPUIDLE_DOMAIN",
"CONFIG_ARM_PSCI_FW",
"CONFIG_SHMEM",
"CONFIG_ARM_SCMI_PROTOCOL",
"CONFIG_ARM_SCMI_HAVE_SHMEM",
"CONFIG_ARM_SCMI_TRANSPORT_SMC",
"CONFIG_OF",
"CONFIG_NET",
"CONFIG_NETDEVICES",
"#WiFi",
"CONFIG_WLAN",
"CONFIG_WLAN_VENDOR_BROADCOM",
"CONFIG_CFG80211",
"CONFIG_BRCMFMAC",
"#BT",
"CONFIG_BT",
"CONFIG_BT_HCIUART",
"CONFIG_SERIAL_DEV_BUS",
"CONFIG_BT_HCIUART_SERDEV",
"CONFIG_BT_HCIUART_BCM"
]
},
{
"name": "rk356x",
"depends":
[
"rk35xx"
]
}
]

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,84 @@
from . import *
class CfgOpt:
def __init__(self, s_value):
if ("=" in s_value):
# have a value, parse
val = s_value.split("=")
self.name = val[0]
self.value = val[1]
else:
self.name = s_value
self.value = ""
class CfgSet:
def __init__(self, js_info):
self.save_path = ""
self.depends = []
self.options = []
self.name = js_info["name"]
if ("save_path" in js_info):
self.save_path = js_info["save_path"]
if ("depends" in js_info):
self.depends = js_info["depends"]
if ("options" in js_info):
opts = js_info["options"]
for opt in opts:
opt_o = CfgOpt(opt)
self.options.append(opt_o)
Logger.build(f"Loaded config {self.name} with {len(self.options)} options")
class Defconfig:
def __init__(self, name):
self.name = name
def __init__(self, name=""):
self.sets = []
self.configs = []
if (name != ""):
meta_fn = f"{ROOT_DIR}/config/{name}_meta.json"
with open(meta_fn) as json_data:
js_data = json.load(json_data)
json_data.close()
self.load_json(name, js_data)
def load_json(self, name, js_data):
if ("includes" in js_data):
includes = js_data["includes"]
for inc_name in includes:
inc_fn = f"{ROOT_DIR}/config/{name}/{inc_name}.json"
with open(inc_fn) as inc_data:
inc_js = json.load(inc_data)
inc_data.close()
for inc in inc_js:
cfg = CfgSet(inc)
if (self.__if_set_exists(cfg.name) == True):
Logger.error(f"Duplicate configuration set '{cfg.name}!")
self.sets.append(cfg)
if ("configs" in js_data):
configs = js_data["configs"]
for cfg in configs:
cfg_o = CfgSet(cfg)
self.sets.append(cfg_o)
def __if_set_exists(self, name):
for s in self.sets:
if (s.name == name):
return True
return False
def save(self, dir):
print(f"Saving defconfigs for {self.name} to {dir}")
for cfg in self.sets:
if (cfg.save_path != ""):
cfgs = []
# recursive add depends
for dep in cfg.depends:
print("todo")
for opt in cfg.options:
cfgs.append(opt)
save_fn = f"{dir}/{cfg.save_path}"
Logger.build(f"Saving config set '{cfg.name}' to '{save_fn}'")
with open(save_fn, "w") as f:
for opt in cfgs:
if (opt.value != ""):
f.write(f"{opt.name}={opt.value}\n")
else:
f.write(f"{opt.name}\n")
f.close()

View File

@ -50,7 +50,7 @@ class Target:
if ("makeopts" in info_js):
self.makeopts = info_js["makeopts"]
if ("config_def" in info_js):
self.defconfig = info_js["config_def"]
self.defconfig_name = info_js["config_def"]
if ("no_build" in info_js):
self.no_build = True
if ("artifacts" in info_js):
@ -98,7 +98,7 @@ class Target:
targets = self.target
else:
if (sub_target == "config"):
opts.append(self.defconfig)
opts.append(self.defconfig_name)
opts.append(self.config_target)
else:
Logger.error("Invalid sub-target!")