From 770560b353901ef9c0144f796708771458ae2ec7 Mon Sep 17 00:00:00 2001 From: Evan Severson <208220+eseverson@users.noreply.github.com> Date: Fri, 18 Sep 2026 14:26:01 -0700 Subject: [PATCH] hi3516cv6xx: add the lite variant, and trim the shared kernel to fit it cv6xx has no image for 8 MiB NOR parts. It was added as a lite/8 MB target in 679c2c7e and renamed to ultimate/16 MB two days later in 8d5d02de, because "the previous 8 MB lite variant cannot fit majestic + vendor MPP libs + 42 V5 kernel modules". 679c2c7e had already booked the choice -- "follow-up will either rebalance to 16 MB or trim rootfs". The rebalance happened; the trim did not. This does the trim, against the budget the cv610 u-boot actually enforces. Its compiled-in env is 256k(boot),64k(env),2048k(kernel),5120k(rootfs); the kernel slot is read whole by `sf read ${kernaddr} ${kernsize}` and root is mounted at the fixed rootfs offset, so an image boots from the release layout only if the FIT is under 2048 KB and the squashfs under 5120 KB. The Makefile's ceiling for this family is FLASH_SIZE * 1024 on the combined blob, which measures neither; the 8 MiB arm now checks both halves against their slots, where a PR sees it. Most of the kernel trim is one bug. The shared cv6xx kernel config builds 146 satellite and terrestrial television drivers into every image -- DVB frontends (cx24116, stv0900, si2168), tuners (tda18271, xc5000, r820t) and the analog TV, radio and SDR stacks. Nothing in the tree can reach them: no defconfig enables gst1-plugins-bad, whose DVB plugins are the only DVB reference in userspace, and no overlay opens a /dev/dvb device. They are not there by choice. 679c2c7e regenerated this config from hi3516cv{608,610}_defconfig in the BSP, which sets CONFIG_MEDIA_SUPPORT=y and never mentions digital TV. In 5.10, MEDIA_DIGITAL_TV_SUPPORT and its siblings carry a prompt only if MEDIA_SUPPORT_FILTER is set and otherwise default to y, so the expansion turned all six media classes on by itself. Reproducible: a bare `make hi3516cv610_defconfig` in openipc/linux yields 147 DVB and tuner symbols. rv1106 builds clean by a different route -- the Rockchip tree patches MEDIA_DIGITAL_TV_SUPPORT to carry an unconditional prompt; hi3519dv500 has the same root cause at a smaller scale, 15 symbols, and is left alone here. The sensor path on this SoC is HiSilicon MPP through the out-of-tree open_*.ko modules, not V4L2, and nothing in the tree captures from a USB camera on it, so MEDIA_SUPPORT goes entirely rather than being filtered down to the UVC class. REGMAP_I2C goes with it: its only selector was dvb-frontends. In the same spirit, and for the 2048 KB slot: the eBPF syscall (no bpftool, libbpf or cgroup user anywhere in the tree; classic BPF for tcpdump stays), io_uring (no caller in musl, busybox or majestic), the NAND/UBI/UBIFS stack (no cv6xx NAND board exists in the tree and the family's repack is NOR-only), the NFS client (cv6xx cannot NFS-root -- ROOT_NFS and IP_PNP are off -- and nothing mounts one at runtime), the USB gadget stack and ALSA, whose only user it was, and the zstd compressor, which only UBIFS and CRYPTO_ZSTD pulled in. hi3519dv500, the other V5 family, already builds without NAND, media, sound, BPF, io_uring and zstd. zImage goes from 2722 KB to 2045 KB; the FIT lands at 2014 KB of 2048. The rootfs side, to 5076 KB of 5120: - 15 ultimate-only packages dropped: aws-webrtc, divinus, exfat + exfatprogs, iptables, lame, libwebsockets, mosquitto, motors, quirc, uacme, vtund, wireguard (compat + tools) and zerotier-one. - 1 MiB squashfs blocks instead of the 128 KiB default. Measured on this rootfs: 128K 8704 KB, 256K 8512, 512K 8384, 1024K 8320. The price is about 2.5 MiB of RAM against 512K blocks, since the fragment cache and the xz dictionary scale with the block; the camera below has 19.9 MB available with them, and the 64 KB is an erase block this budget does not have. - Buildroot's squashfs EXTREME_COMP, which for xz on ARM is `-Xbcj arm,armthumb`: 52 KiB. The kernel's xz decoder already carries XZ_DEC_ARM and XZ_DEC_ARMTHUMB, so there is nothing to pay at read time. - The 42 vendor modules were installed unstripped: Buildroot's target-finalize skips *.ko on purpose and nothing else stripped them. `--strip-unneeded`, the operation INSTALL_MOD_STRIP=1 performs, takes 16 KB off the squashfs. Both cv6xx variants get that. - lite drops the eight modules nothing loads: load_hisilicon has no modprobe for adc, aiisp, devstat, spi_dma_transfer, user, user_proc or uvc, and open_svac3e -- the SVAC3 encoder -- is probed only on the 20g/00s/00g dies, for a codec majestic has no code for. 60 KB. ultimate keeps all of them. Four package symbols ultimate never has to state are spelled out here, because it gets them by side effect and lite does not: quirc and uacme select libcurl, libwebsockets and mbedtls drag in zlib and the TLS backend. sysupgrade shells out to curl over https, so a lite image without them has a sysupgrade that cannot fetch its manifest. Enabling only the libcurl parent is not enough -- that yields a curl linked TLS_NONE against an absent libz. zlib also settles majestic's own libz.so.1 and libevent_mbedtls dependencies, which on this family were previously left to the integrator to supply. Kept, because majestic will not start without them: the HiSilicon audio/VQE libraries its DT_NEEDED pulls in, opus, ogg, libevent, libcurl and protobuf-c. dropbear, ipctool, yaml-cli and uboot-tools survive the trim. The kernel config is the family's shared one, so ultimate builds the same kernel; its own differs from lite's by the netfilter symbols the iptables package fixup switches on (IP_NF_IPTABLES, IP_NF_FILTER, NETFILTER_XTABLES) and nothing else. ci-matrix.py's self-test carries three hardcoded row counts that a new board changes; they are bumped here so the merge gate passes. The config was generated with olddefconfig against openipc/linux 5.10.221 and then applied as a symbol-only edit: every comment, section header and blank line is byte-identical to the file it replaces, and the diff contains nothing but CONFIG_ lines. Section headers left standing with nothing under them are what a regeneration would tidy; leaving them keeps this diff reviewable. --- .github/scripts/ci-matrix.py | 8 +- Makefile | 10 + .../hi3516cv6xx/hi3516cv6xx.generic.config | 499 +----------------- .../configs/hi3516cv6xx_lite_defconfig | 100 ++++ .../hisilicon-opensdk/hisilicon-opensdk.mk | 24 +- 5 files changed, 147 insertions(+), 494 deletions(-) create mode 100644 br-ext-chip-hisilicon/configs/hi3516cv6xx_lite_defconfig diff --git a/.github/scripts/ci-matrix.py b/.github/scripts/ci-matrix.py index 589983de49..bc24fa2219 100644 --- a/.github/scripts/ci-matrix.py +++ b/.github/scripts/ci-matrix.py @@ -66,7 +66,7 @@ # Hisilicon [HI3516CV500] "hi3516av300_lite", "hi3516av300_neo", "hi3516cv500_lite", "hi3516dv300_lite", # Hisilicon [HI3516CV6XX] - "hi3516cv6xx_ultimate", + "hi3516cv6xx_lite", "hi3516cv6xx_ultimate", # Hisilicon [HI3519DV500] "hi3519dv500_ultimate", # Hisilicon [HI3516EV200] @@ -754,7 +754,7 @@ def self_test(): (["general/package/hisilicon-osdrv-hi3516ev200/files/script/load_hisilicon"], 8, "osdrv narrows to its family"), (["general/package/hisilicon-opensdk/hisilicon-opensdk.mk"], - 43, "opensdk spans HiSilicon and Goke"), + 44, "opensdk spans HiSilicon and Goke"), (["general/package/goke-osdrv-gk7205v200/Config.in"], 7, "goke osdrv"), (["general/package/hisilicon-osdrv-hi3520dv200/files/script/load_hisilicon"], 1, "single-board osdrv"), @@ -766,7 +766,7 @@ def self_test(): (["general/package/sigmastar-osdrv-sensors/Config.in"], 24, "reached via Config.in select"), # Shared packages narrow too, just barely. - (["general/package/majestic/majestic.mk"], 87, "majestic is nearly everywhere"), + (["general/package/majestic/majestic.mk"], 88, "majestic is nearly everywhere"), # Board configs and kernel configs. (["br-ext-chip-goke/configs/gk7205v200_lite_defconfig"], 1, "one defconfig"), (["br-ext-chip-hisilicon/board/hi3516ev200/hi3516ev300.generic.config"], @@ -832,7 +832,7 @@ def self_test(): (["LICENSES/vendor.txt"], full, "LICENSES/ is not the licence file"), (["READMEgenerator.c"], full, "README prefix is not a readme"), (["general/package/majestic/README.md"], - 87, "markdown inside a package is that package"), + 88, "markdown inside a package is that package"), (["br-ext-chip-hisilicon/board/hi3516ev200/NOTES.md"], 8, "markdown inside a board dir is that family"), (["general/scripts/pr_compliance_checklist.yaml"], diff --git a/Makefile b/Makefile index 6bc91f1d68..464b692535 100644 --- a/Makefile +++ b/Makefile @@ -165,6 +165,16 @@ else endif else ifeq ($(BR2_OPENIPC_SOC_FAMILY),"hi3516cv6xx") +# The cv610 u-boot boots from a fixed table: 2048K(kernel) read whole by +# `sf read ${kernaddr} ${kernsize}`, then 5120K(rootfs) at a fixed offset. The +# combined firmware.bin hides both bounds, so on the 8 MiB part measure the two +# halves against their slots here, where a PR sees it. 16 MiB is left on the +# whole-blob figure: its kernel already overruns 2048K on master, and that is a +# u-boot table question, not one a size check here can settle. +ifeq ($(BR2_OPENIPC_FLASH_SIZE),"8") + @$(call CHECK_SIZE,fitImage,2048) + @$(call CHECK_SIZE,rootfs.squashfs,5120) +endif @$(call PREPARE_REPACK,firmware.bin,$(shell expr $(subst ",,$(BR2_OPENIPC_FLASH_SIZE)) \* 1024),,,nor) else ifeq ($(BR2_OPENIPC_SOC_FAMILY),"hi3519dv500") @$(call PREPARE_REPACK,firmware.bin,$(shell expr $(subst ",,$(BR2_OPENIPC_FLASH_SIZE)) \* 1024),,,nor) diff --git a/br-ext-chip-hisilicon/board/hi3516cv6xx/hi3516cv6xx.generic.config b/br-ext-chip-hisilicon/board/hi3516cv6xx/hi3516cv6xx.generic.config index ccc29a6596..7805a7d12e 100644 --- a/br-ext-chip-hisilicon/board/hi3516cv6xx/hi3516cv6xx.generic.config +++ b/br-ext-chip-hisilicon/board/hi3516cv6xx/hi3516cv6xx.generic.config @@ -104,8 +104,6 @@ CONFIG_TREE_RCU=y # CONFIG_RCU_EXPERT is not set CONFIG_SRCU=y CONFIG_TREE_SRCU=y -CONFIG_TASKS_RCU_GENERIC=y -CONFIG_TASKS_TRACE_RCU=y CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_NEED_SEGCBLIST=y # end of RCU Subsystem @@ -163,15 +161,13 @@ CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y -CONFIG_IO_URING=y +# CONFIG_IO_URING is not set CONFIG_ADVISE_SYSCALLS=y CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set CONFIG_KALLSYMS_BASE_RELATIVE=y -CONFIG_BPF_SYSCALL=y -# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set -# CONFIG_BPF_PRELOAD is not set +# CONFIG_BPF_SYSCALL is not set CONFIG_USERFAULTFD=y CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y # CONFIG_KCMP is not set @@ -676,7 +672,6 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 # CONFIG_ZSMALLOC is not set CONFIG_GENERIC_EARLY_IOREMAP=y # CONFIG_IDLE_PAGE_TRACKING is not set -CONFIG_FRAME_VECTOR=y # CONFIG_PERCPU_STATS is not set # CONFIG_GUP_BENCHMARK is not set # end of Memory Management options @@ -695,7 +690,6 @@ CONFIG_UNIX_SCM=y # CONFIG_TLS is not set # CONFIG_XFRM_USER is not set # CONFIG_NET_KEY is not set -# CONFIG_XDP_SOCKETS is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y # CONFIG_IP_ADVANCED_ROUTER is not set @@ -857,10 +851,7 @@ CONFIG_ALLOW_DEV_COREDUMP=y CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_GENERIC_CPU_VULNERABILITIES=y CONFIG_REGMAP=y -CONFIG_REGMAP_I2C=m CONFIG_REGMAP_MMIO=y -CONFIG_DMA_SHARED_BUFFER=y -# CONFIG_DMA_FENCE_TRACE is not set CONFIG_GENERIC_ARCH_TOPOLOGY=y # end of Generic Driver Options @@ -944,39 +935,22 @@ CONFIG_MTD_BLOCK2MTD=y # # NAND # -CONFIG_MTD_NAND_CORE=y # CONFIG_MTD_ONENAND is not set -CONFIG_MTD_SPI_NAND_BSP=y -# CONFIG_BSP_NAND_ECC_STATUS_REPORT is not set # CONFIG_BSP_NAND_FS_MAY_NO_YAFFS2 is not set -CONFIG_MTD_NAND_ECC_SW_HAMMING=y -# CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set -CONFIG_MTD_RAW_NAND=y -# CONFIG_MTD_NAND_ECC_SW_BCH is not set +# CONFIG_MTD_RAW_NAND is not set # # Raw/parallel NAND flash controllers # -# CONFIG_MTD_NAND_DENALI_DT is not set -# CONFIG_MTD_NAND_BRCMNAND is not set -# CONFIG_MTD_NAND_MXIC is not set -# CONFIG_MTD_NAND_GPIO is not set -# CONFIG_MTD_NAND_PLATFORM is not set -# CONFIG_MTD_NAND_CADENCE is not set -# CONFIG_MTD_NAND_ARASAN is not set # # Misc # -# CONFIG_MTD_NAND_NANDSIM is not set -# CONFIG_MTD_NAND_DISKONCHIP is not set -CONFIG_MTD_SPI_NAND_FMC100=y # CONFIG_MTD_SPI_NAND is not set # # ECC engine support # -CONFIG_MTD_NAND_ECC=y # end of ECC engine support # end of NAND @@ -993,12 +967,7 @@ CONFIG_SPI_BSP_SFC=y # CONFIG_MTD_SPI_IDS is not set # CONFIG_CLOSE_SPI_8PIN_4IO is not set CONFIG_BSP_SPI_BLOCK_PROTECT=y -CONFIG_MTD_UBI=y -CONFIG_MTD_UBI_WL_THRESHOLD=4096 -CONFIG_MTD_UBI_BEB_LIMIT=20 -# CONFIG_MTD_UBI_FASTMAP is not set -# CONFIG_MTD_UBI_GLUEBI is not set -# CONFIG_MTD_UBI_BLOCK is not set +# CONFIG_MTD_UBI is not set # CONFIG_MTD_HYPERBUS is not set CONFIG_DTC=y CONFIG_OF=y @@ -1746,100 +1715,56 @@ CONFIG_MFD_SYSCON=y # CONFIG_REGULATOR is not set # CONFIG_RC_CORE is not set # CONFIG_MEDIA_CEC_SUPPORT is not set -CONFIG_MEDIA_SUPPORT=y -# CONFIG_MEDIA_SUPPORT_FILTER is not set -# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set +# CONFIG_MEDIA_SUPPORT is not set # # Media device types # -CONFIG_MEDIA_CAMERA_SUPPORT=y -CONFIG_MEDIA_ANALOG_TV_SUPPORT=y -CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y -CONFIG_MEDIA_RADIO_SUPPORT=y -CONFIG_MEDIA_SDR_SUPPORT=y -CONFIG_MEDIA_PLATFORM_SUPPORT=y -CONFIG_MEDIA_TEST_SUPPORT=y # end of Media device types # # Media core support # -CONFIG_VIDEO_DEV=y -CONFIG_MEDIA_CONTROLLER=y -CONFIG_DVB_CORE=y # end of Media core support # # Video4Linux options # -CONFIG_VIDEO_V4L2=y -CONFIG_VIDEO_V4L2_I2C=y -# CONFIG_VIDEO_V4L2_SUBDEV_API is not set -# CONFIG_VIDEO_ADV_DEBUG is not set -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set # end of Video4Linux options # # Media controller options # -# CONFIG_MEDIA_CONTROLLER_DVB is not set # end of Media controller options # # Digital TV options # -# CONFIG_DVB_MMAP is not set -CONFIG_DVB_NET=y -CONFIG_DVB_MAX_ADAPTERS=16 -CONFIG_DVB_DYNAMIC_MINORS=y -# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set -# CONFIG_DVB_ULE_DEBUG is not set # end of Digital TV options # # Media drivers # -CONFIG_MEDIA_USB_SUPPORT=y # # Webcam devices # -CONFIG_USB_VIDEO_CLASS=y -CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y -# CONFIG_USB_GSPCA is not set -# CONFIG_USB_PWC is not set -# CONFIG_VIDEO_CPIA2 is not set -# CONFIG_USB_ZR364XX is not set -# CONFIG_USB_STKWEBCAM is not set -# CONFIG_USB_S2255 is not set -# CONFIG_VIDEO_USBTV is not set # # Analog TV USB devices # -# CONFIG_VIDEO_PVRUSB2 is not set -# CONFIG_VIDEO_HDPVR is not set -# CONFIG_VIDEO_STK1160_COMMON is not set -# CONFIG_VIDEO_GO7007 is not set # # Analog/digital TV USB devices # -# CONFIG_VIDEO_AU0828 is not set # # Digital TV USB devices # -# CONFIG_DVB_USB_V2 is not set -# CONFIG_SMS_USB_DRV is not set -# CONFIG_DVB_B2C2_FLEXCOP_USB is not set -# CONFIG_DVB_AS102 is not set # # Webcam, TV (analog/digital) USB devices # -# CONFIG_VIDEO_EM28XX is not set # # Software defined radio USB devices @@ -1847,113 +1772,50 @@ CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y # CONFIG_USB_AIRSPY is not set # CONFIG_USB_HACKRF is not set # CONFIG_USB_MSI2500 is not set -# CONFIG_RADIO_ADAPTERS is not set -CONFIG_VIDEOBUF2_CORE=y -CONFIG_VIDEOBUF2_V4L2=y -CONFIG_VIDEOBUF2_MEMOPS=y -CONFIG_VIDEOBUF2_VMALLOC=y -# CONFIG_V4L_PLATFORM_DRIVERS is not set -# CONFIG_V4L_MEM2MEM_DRIVERS is not set -# CONFIG_DVB_PLATFORM_DRIVERS is not set # CONFIG_SDR_PLATFORM_DRIVERS is not set # # MMC/SDIO DVB adapters # -# CONFIG_SMS_SDIO_DRV is not set # CONFIG_V4L_TEST_DRIVERS is not set -# CONFIG_DVB_TEST_DRIVERS is not set # end of Media drivers # # Media ancillary drivers # -CONFIG_MEDIA_ATTACH=y # # Audio decoders, processors and mixers # -# CONFIG_VIDEO_TVAUDIO is not set -# CONFIG_VIDEO_TDA7432 is not set -# CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TEA6415C is not set -# CONFIG_VIDEO_TEA6420 is not set -# CONFIG_VIDEO_MSP3400 is not set -# CONFIG_VIDEO_CS3308 is not set -# CONFIG_VIDEO_CS5345 is not set -# CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_TLV320AIC23B is not set -# CONFIG_VIDEO_UDA1342 is not set -# CONFIG_VIDEO_WM8775 is not set -# CONFIG_VIDEO_WM8739 is not set -# CONFIG_VIDEO_VP27SMPX is not set -# CONFIG_VIDEO_SONY_BTF_MPX is not set # end of Audio decoders, processors and mixers # # RDS decoders # -# CONFIG_VIDEO_SAA6588 is not set # end of RDS decoders # # Video decoders # -# CONFIG_VIDEO_ADV7180 is not set -# CONFIG_VIDEO_ADV7183 is not set -# CONFIG_VIDEO_ADV748X is not set -# CONFIG_VIDEO_ADV7604 is not set -# CONFIG_VIDEO_ADV7842 is not set -# CONFIG_VIDEO_BT819 is not set -# CONFIG_VIDEO_BT856 is not set -# CONFIG_VIDEO_BT866 is not set -# CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_ML86V7667 is not set -# CONFIG_VIDEO_SAA7110 is not set -# CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_TC358743 is not set -# CONFIG_VIDEO_TVP514X is not set -# CONFIG_VIDEO_TVP5150 is not set -# CONFIG_VIDEO_TVP7002 is not set -# CONFIG_VIDEO_TW2804 is not set -# CONFIG_VIDEO_TW9903 is not set -# CONFIG_VIDEO_TW9906 is not set -# CONFIG_VIDEO_TW9910 is not set -# CONFIG_VIDEO_VPX3220 is not set # # Video and audio decoders # -# CONFIG_VIDEO_SAA717X is not set -# CONFIG_VIDEO_CX25840 is not set # end of Video decoders # # Video encoders # -# CONFIG_VIDEO_SAA7127 is not set -# CONFIG_VIDEO_SAA7185 is not set -# CONFIG_VIDEO_ADV7170 is not set -# CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_ADV7343 is not set -# CONFIG_VIDEO_ADV7393 is not set -# CONFIG_VIDEO_ADV7511 is not set -# CONFIG_VIDEO_AD9389B is not set -# CONFIG_VIDEO_AK881X is not set -# CONFIG_VIDEO_THS8200 is not set # end of Video encoders # # Video improvement chips # -# CONFIG_VIDEO_UPD64031A is not set -# CONFIG_VIDEO_UPD64083 is not set # end of Video improvement chips # # Audio/Video compression chips # -# CONFIG_VIDEO_SAA6752HS is not set # end of Audio/Video compression chips # @@ -1965,139 +1827,37 @@ CONFIG_MEDIA_ATTACH=y # # Miscellaneous helper chips # -# CONFIG_VIDEO_THS7303 is not set -# CONFIG_VIDEO_M52790 is not set -# CONFIG_VIDEO_I2C is not set -# CONFIG_VIDEO_ST_MIPID02 is not set # end of Miscellaneous helper chips # # Camera sensor devices # -# CONFIG_VIDEO_HI556 is not set -# CONFIG_VIDEO_IMX214 is not set -# CONFIG_VIDEO_IMX219 is not set -# CONFIG_VIDEO_IMX258 is not set -# CONFIG_VIDEO_IMX274 is not set -# CONFIG_VIDEO_IMX290 is not set -# CONFIG_VIDEO_IMX319 is not set -# CONFIG_VIDEO_IMX355 is not set -# CONFIG_VIDEO_OV2640 is not set -# CONFIG_VIDEO_OV2659 is not set -# CONFIG_VIDEO_OV2680 is not set -# CONFIG_VIDEO_OV2685 is not set -# CONFIG_VIDEO_OV5640 is not set -# CONFIG_VIDEO_OV5645 is not set -# CONFIG_VIDEO_OV5647 is not set -# CONFIG_VIDEO_OV6650 is not set -# CONFIG_VIDEO_OV5670 is not set -# CONFIG_VIDEO_OV5675 is not set -# CONFIG_VIDEO_OV5695 is not set -# CONFIG_VIDEO_OV7251 is not set -# CONFIG_VIDEO_OV772X is not set -# CONFIG_VIDEO_OV7640 is not set -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_OV7740 is not set -# CONFIG_VIDEO_OV8856 is not set -# CONFIG_VIDEO_OV9640 is not set -# CONFIG_VIDEO_OV9650 is not set -# CONFIG_VIDEO_OV13858 is not set -# CONFIG_VIDEO_VS6624 is not set -# CONFIG_VIDEO_MT9M001 is not set -# CONFIG_VIDEO_MT9M032 is not set -# CONFIG_VIDEO_MT9M111 is not set -# CONFIG_VIDEO_MT9P031 is not set -# CONFIG_VIDEO_MT9T001 is not set -# CONFIG_VIDEO_MT9T112 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_MT9V032 is not set -# CONFIG_VIDEO_MT9V111 is not set -# CONFIG_VIDEO_SR030PC30 is not set -# CONFIG_VIDEO_NOON010PC30 is not set -# CONFIG_VIDEO_M5MOLS is not set -# CONFIG_VIDEO_RDACM20 is not set -# CONFIG_VIDEO_RJ54N1 is not set -# CONFIG_VIDEO_S5K6AA is not set -# CONFIG_VIDEO_S5K6A3 is not set -# CONFIG_VIDEO_S5K4ECGX is not set -# CONFIG_VIDEO_S5K5BAF is not set -# CONFIG_VIDEO_SMIAPP is not set -# CONFIG_VIDEO_ET8EK8 is not set -# CONFIG_VIDEO_S5C73M3 is not set # end of Camera sensor devices # # Lens drivers # -# CONFIG_VIDEO_AD5820 is not set -# CONFIG_VIDEO_AK7375 is not set -# CONFIG_VIDEO_DW9714 is not set -# CONFIG_VIDEO_DW9768 is not set -# CONFIG_VIDEO_DW9807_VCM is not set # end of Lens drivers # # Flash devices # -# CONFIG_VIDEO_ADP1653 is not set -# CONFIG_VIDEO_LM3560 is not set -# CONFIG_VIDEO_LM3646 is not set # end of Flash devices # # SPI helper chips # -# CONFIG_VIDEO_GS1662 is not set # end of SPI helper chips # # Media SPI Adapters # -CONFIG_CXD2880_SPI_DRV=m # end of Media SPI Adapters -CONFIG_MEDIA_TUNER=y # # Customize TV tuners # -CONFIG_MEDIA_TUNER_SIMPLE=m -CONFIG_MEDIA_TUNER_TDA18250=m -CONFIG_MEDIA_TUNER_TDA8290=m -CONFIG_MEDIA_TUNER_TDA827X=m -CONFIG_MEDIA_TUNER_TDA18271=m -CONFIG_MEDIA_TUNER_TDA9887=m -CONFIG_MEDIA_TUNER_TEA5761=m -CONFIG_MEDIA_TUNER_TEA5767=m -CONFIG_MEDIA_TUNER_MSI001=m -CONFIG_MEDIA_TUNER_MT20XX=m -CONFIG_MEDIA_TUNER_MT2060=m -CONFIG_MEDIA_TUNER_MT2063=m -CONFIG_MEDIA_TUNER_MT2266=m -CONFIG_MEDIA_TUNER_MT2131=m -CONFIG_MEDIA_TUNER_QT1010=m -CONFIG_MEDIA_TUNER_XC2028=m -CONFIG_MEDIA_TUNER_XC5000=m -CONFIG_MEDIA_TUNER_XC4000=m -CONFIG_MEDIA_TUNER_MXL5005S=m -CONFIG_MEDIA_TUNER_MXL5007T=m -CONFIG_MEDIA_TUNER_MC44S803=m -CONFIG_MEDIA_TUNER_MAX2165=m -CONFIG_MEDIA_TUNER_TDA18218=m -CONFIG_MEDIA_TUNER_FC0011=m -CONFIG_MEDIA_TUNER_FC0012=m -CONFIG_MEDIA_TUNER_FC0013=m -CONFIG_MEDIA_TUNER_TDA18212=m -CONFIG_MEDIA_TUNER_E4000=m -CONFIG_MEDIA_TUNER_FC2580=m -CONFIG_MEDIA_TUNER_M88RS6000T=m -CONFIG_MEDIA_TUNER_TUA9001=m -CONFIG_MEDIA_TUNER_SI2157=m -CONFIG_MEDIA_TUNER_IT913X=m -CONFIG_MEDIA_TUNER_R820T=m -CONFIG_MEDIA_TUNER_MXL301RF=m -CONFIG_MEDIA_TUNER_QM1D1C0042=m -CONFIG_MEDIA_TUNER_QM1D1B0004=m # end of Customize TV tuners # @@ -2107,159 +1867,51 @@ CONFIG_MEDIA_TUNER_QM1D1B0004=m # # Multistandard (satellite) frontends # -CONFIG_DVB_STB0899=m -CONFIG_DVB_STB6100=m -CONFIG_DVB_STV090x=m -CONFIG_DVB_STV0910=m -CONFIG_DVB_STV6110x=m -CONFIG_DVB_STV6111=m -CONFIG_DVB_MXL5XX=m # # Multistandard (cable + terrestrial) frontends # -CONFIG_DVB_DRXK=m -CONFIG_DVB_TDA18271C2DD=m -CONFIG_DVB_SI2165=m -CONFIG_DVB_MN88472=m -CONFIG_DVB_MN88473=m # # DVB-S (satellite) frontends # -CONFIG_DVB_CX24110=m -CONFIG_DVB_CX24123=m -CONFIG_DVB_MT312=m -CONFIG_DVB_ZL10036=m -CONFIG_DVB_ZL10039=m -CONFIG_DVB_S5H1420=m -CONFIG_DVB_STV0288=m -CONFIG_DVB_STB6000=m -CONFIG_DVB_STV0299=m -CONFIG_DVB_STV6110=m -CONFIG_DVB_STV0900=m -CONFIG_DVB_TDA8083=m -CONFIG_DVB_TDA10086=m -CONFIG_DVB_TDA8261=m -CONFIG_DVB_VES1X93=m -CONFIG_DVB_TUNER_ITD1000=m -CONFIG_DVB_TUNER_CX24113=m -CONFIG_DVB_TDA826X=m -CONFIG_DVB_TUA6100=m -CONFIG_DVB_CX24116=m -CONFIG_DVB_CX24117=m -CONFIG_DVB_CX24120=m -CONFIG_DVB_SI21XX=m -CONFIG_DVB_TS2020=m -CONFIG_DVB_DS3000=m -CONFIG_DVB_MB86A16=m -CONFIG_DVB_TDA10071=m # # DVB-T (terrestrial) frontends # -CONFIG_DVB_SP8870=m -CONFIG_DVB_SP887X=m -CONFIG_DVB_CX22700=m -CONFIG_DVB_CX22702=m -CONFIG_DVB_S5H1432=m -CONFIG_DVB_DRXD=m -CONFIG_DVB_L64781=m -CONFIG_DVB_TDA1004X=m -CONFIG_DVB_NXT6000=m -CONFIG_DVB_MT352=m -CONFIG_DVB_ZL10353=m -CONFIG_DVB_DIB3000MB=m -CONFIG_DVB_DIB3000MC=m -CONFIG_DVB_DIB7000M=m -CONFIG_DVB_DIB7000P=m -CONFIG_DVB_DIB9000=m -CONFIG_DVB_TDA10048=m -CONFIG_DVB_EC100=m -CONFIG_DVB_STV0367=m -CONFIG_DVB_CXD2820R=m -CONFIG_DVB_CXD2841ER=m -CONFIG_DVB_ZD1301_DEMOD=m -CONFIG_DVB_CXD2880=m # # DVB-C (cable) frontends # -CONFIG_DVB_VES1820=m -CONFIG_DVB_TDA10021=m -CONFIG_DVB_TDA10023=m -CONFIG_DVB_STV0297=m # # ATSC (North American/Korean Terrestrial/Cable DTV) frontends # -CONFIG_DVB_NXT200X=m -CONFIG_DVB_OR51211=m -CONFIG_DVB_OR51132=m -CONFIG_DVB_BCM3510=m -CONFIG_DVB_LGDT330X=m -CONFIG_DVB_LGDT3305=m -CONFIG_DVB_LG2160=m -CONFIG_DVB_S5H1409=m -CONFIG_DVB_AU8522=m -CONFIG_DVB_AU8522_DTV=m -CONFIG_DVB_AU8522_V4L=m -CONFIG_DVB_S5H1411=m # # ISDB-T (terrestrial) frontends # -CONFIG_DVB_S921=m -CONFIG_DVB_DIB8000=m -CONFIG_DVB_MB86A20S=m # # ISDB-S (satellite) & ISDB-T (terrestrial) frontends # -CONFIG_DVB_TC90522=m -CONFIG_DVB_MN88443X=m # # Digital terrestrial only tuners/PLL # -CONFIG_DVB_PLL=m -CONFIG_DVB_TUNER_DIB0070=m -CONFIG_DVB_TUNER_DIB0090=m # # SEC control devices for DVB-S # -CONFIG_DVB_DRX39XYJ=m -CONFIG_DVB_LNBH25=m -CONFIG_DVB_LNBH29=m -CONFIG_DVB_LNBP21=m -CONFIG_DVB_LNBP22=m -CONFIG_DVB_ISL6405=m -CONFIG_DVB_ISL6421=m -CONFIG_DVB_ISL6423=m -CONFIG_DVB_A8293=m -CONFIG_DVB_LGS8GL5=m -CONFIG_DVB_LGS8GXX=m -CONFIG_DVB_ATBM8830=m -CONFIG_DVB_TDA665x=m -CONFIG_DVB_IX2505V=m -CONFIG_DVB_M88RS2000=m -CONFIG_DVB_AF9033=m -CONFIG_DVB_HORUS3A=m -CONFIG_DVB_ASCOT2E=m -CONFIG_DVB_HELENE=m # # Common Interface (EN50221) controller drivers # -CONFIG_DVB_CXD2099=m -CONFIG_DVB_SP2=m # end of Customise DVB Frontends # # Tools to develop new frontends # -# CONFIG_DVB_DUMMY_FE is not set # end of Media ancillary drivers # @@ -2292,46 +1944,13 @@ CONFIG_DVB_SP2=m # end of Console display driver support # end of Graphics support -CONFIG_SOUND=y -CONFIG_SND=y -CONFIG_SND_TIMER=y -CONFIG_SND_PCM=y -# CONFIG_SND_OSSEMUL is not set -CONFIG_SND_PCM_TIMER=y -# CONFIG_SND_DYNAMIC_MINORS is not set -CONFIG_SND_SUPPORT_OLD_API=y -CONFIG_SND_PROC_FS=y -CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set -# CONFIG_SND_DEBUG is not set -# CONFIG_SND_SEQUENCER is not set -CONFIG_SND_DRIVERS=y -# CONFIG_SND_DUMMY is not set -# CONFIG_SND_ALOOP is not set -# CONFIG_SND_MTPAV is not set -# CONFIG_SND_SERIAL_U16550 is not set -# CONFIG_SND_MPU401 is not set +# CONFIG_SOUND is not set # # HD-Audio # # end of HD-Audio -CONFIG_SND_HDA_PREALLOC_SIZE=64 -# CONFIG_SND_ARM is not set -CONFIG_SND_SPI=y -CONFIG_SND_USB=y -# CONFIG_SND_USB_AUDIO is not set -# CONFIG_SND_USB_UA101 is not set -# CONFIG_SND_USB_CAIAQ is not set -# CONFIG_SND_USB_6FIRE is not set -# CONFIG_SND_USB_HIFACE is not set -# CONFIG_SND_BCD2000 is not set -# CONFIG_SND_USB_POD is not set -# CONFIG_SND_USB_PODHD is not set -# CONFIG_SND_USB_TONEPORT is not set -# CONFIG_SND_USB_VARIAX is not set -# CONFIG_SND_SOC is not set # # HID support @@ -2449,16 +2068,13 @@ CONFIG_USB_STORAGE=y # CONFIG_USB_CDNS3 is not set # CONFIG_USB_MUSB_HDRC is not set CONFIG_USB_DWC3=y -# CONFIG_USB_DWC3_HOST is not set -# CONFIG_USB_DWC3_GADGET is not set -CONFIG_USB_DWC3_DUAL_ROLE=y +CONFIG_USB_DWC3_HOST=y # # Platform Glue Driver Support # CONFIG_USB_DWC3_OF_SIMPLE=y # CONFIG_USB_DWC2 is not set -# CONFIG_USB_CHIPIDEA is not set # CONFIG_USB_ISP1760 is not set # @@ -2503,83 +2119,17 @@ CONFIG_USB_DWC3_OF_SIMPLE=y # CONFIG_USB_ULPI is not set # end of USB Physical Layer drivers -CONFIG_USB_GADGET=y -# CONFIG_USB_GADGET_DEBUG is not set -# CONFIG_USB_GADGET_DEBUG_FILES is not set -CONFIG_USB_GADGET_VBUS_DRAW=2 -CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 -# CONFIG_U_SERIAL_CONSOLE is not set +# CONFIG_USB_GADGET is not set # # USB Peripheral Controller # -# CONFIG_USB_FUSB300 is not set -# CONFIG_USB_FOTG210_UDC is not set -# CONFIG_USB_GR_UDC is not set -# CONFIG_USB_R8A66597 is not set -# CONFIG_USB_PXA27X is not set -# CONFIG_USB_MV_UDC is not set -# CONFIG_USB_MV_U3D is not set -# CONFIG_USB_SNP_UDC_PLAT is not set -# CONFIG_USB_M66592 is not set -# CONFIG_USB_BDC_UDC is not set -# CONFIG_USB_NET2272 is not set -# CONFIG_USB_GADGET_XILINX is not set -# CONFIG_USB_MAX3420_UDC is not set -# CONFIG_USB_DUMMY_HCD is not set # end of USB Peripheral Controller -CONFIG_USB_LIBCOMPOSITE=y -CONFIG_USB_F_ACM=y -CONFIG_USB_U_SERIAL=y -CONFIG_USB_U_ETHER=y -CONFIG_USB_U_AUDIO=y -CONFIG_USB_F_RNDIS=y -CONFIG_USB_F_MASS_STORAGE=y -CONFIG_USB_F_UAC1=y -CONFIG_USB_F_UVC=y -CONFIG_USB_CONFIGFS=y -# CONFIG_USB_CONFIGFS_SERIAL is not set -CONFIG_USB_CONFIGFS_ACM=y -# CONFIG_USB_CONFIGFS_OBEX is not set -# CONFIG_USB_CONFIGFS_NCM is not set -# CONFIG_USB_CONFIGFS_ECM is not set -# CONFIG_USB_CONFIGFS_ECM_SUBSET is not set -CONFIG_USB_CONFIGFS_RNDIS=y -# CONFIG_USB_CONFIGFS_EEM is not set -CONFIG_USB_CONFIGFS_MASS_STORAGE=y -# CONFIG_USB_CONFIGFS_F_LB_SS is not set -# CONFIG_USB_CONFIGFS_F_FS is not set -CONFIG_USB_CONFIGFS_F_UAC1=y -# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set -# CONFIG_USB_CONFIGFS_F_UAC2 is not set -# CONFIG_USB_CONFIGFS_F_MIDI is not set -# CONFIG_USB_CONFIGFS_F_HID is not set -CONFIG_USB_CONFIGFS_F_UVC=y -# CONFIG_UVC_NO_STATUS_INT_EP is not set -# CONFIG_USB_F_UVC_STILL_IMAGE is not set -# CONFIG_USB_CONFIGFS_F_PRINTER is not set # # USB Gadget precomposed configurations # -# CONFIG_USB_ZERO is not set -# CONFIG_USB_AUDIO is not set -# CONFIG_USB_ETH is not set -# CONFIG_USB_G_NCM is not set -# CONFIG_USB_GADGETFS is not set -# CONFIG_USB_FUNCTIONFS is not set -# CONFIG_USB_MASS_STORAGE is not set -# CONFIG_USB_G_SERIAL is not set -# CONFIG_USB_MIDI_GADGET is not set -# CONFIG_USB_G_PRINTER is not set -# CONFIG_USB_CDC_COMPOSITE is not set -# CONFIG_USB_G_ACM_MS is not set -# CONFIG_USB_G_MULTI is not set -# CONFIG_USB_G_HID is not set -# CONFIG_USB_G_DBGP is not set -# CONFIG_USB_G_WEBCAM is not set -# CONFIG_USB_RAW_GADGET is not set # end of USB Gadget precomposed configurations # CONFIG_TYPEC is not set @@ -2630,9 +2180,6 @@ CONFIG_RTC_LIB=y # DMABUF options # # CONFIG_SYNC_FILE is not set -# CONFIG_UDMABUF is not set -# CONFIG_DMABUF_MOVE_NOTIFY is not set -# CONFIG_DMABUF_SELFTESTS is not set # CONFIG_DMABUF_HEAPS is not set # end of DMABUF options @@ -2940,15 +2487,6 @@ CONFIG_JFFS2_FS_WRITEBUFFER=y # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set CONFIG_JFFS2_ZLIB=y CONFIG_JFFS2_RTIME=y -CONFIG_UBIFS_FS=y -# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set -CONFIG_UBIFS_FS_LZO=y -CONFIG_UBIFS_FS_ZLIB=y -CONFIG_UBIFS_FS_ZSTD=y -# CONFIG_UBIFS_ATIME_SUPPORT is not set -CONFIG_UBIFS_FS_XATTR=y -CONFIG_UBIFS_FS_SECURITY=y -# CONFIG_UBIFS_FS_AUTHENTICATION is not set CONFIG_CRAMFS=y CONFIG_CRAMFS_BLOCKDEV=y # CONFIG_CRAMFS_MTD is not set @@ -2979,20 +2517,8 @@ CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 # CONFIG_UFS_FS is not set # CONFIG_EROFS_FS is not set CONFIG_NETWORK_FILESYSTEMS=y -CONFIG_NFS_FS=y -CONFIG_NFS_V2=y -CONFIG_NFS_V3=y -CONFIG_NFS_V3_ACL=y -# CONFIG_NFS_V4 is not set -CONFIG_NFS_DISABLE_UDP_SUPPORT=y +# CONFIG_NFS_FS is not set # CONFIG_NFSD is not set -CONFIG_GRACE_PERIOD=y -CONFIG_LOCKD=y -CONFIG_LOCKD_V4=y -CONFIG_NFS_ACL_SUPPORT=y -CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=y -# CONFIG_SUNRPC_DEBUG is not set # CONFIG_CEPH_FS is not set # CONFIG_CIFS is not set # CONFIG_CODA_FS is not set @@ -3050,7 +2576,6 @@ CONFIG_NLS_ISO8859_1=y # CONFIG_NLS_UTF8 is not set # CONFIG_DLM is not set # CONFIG_UNICODE is not set -CONFIG_IO_WQ=y # end of File systems # @@ -3215,7 +2740,7 @@ CONFIG_CRYPTO_LZO=y # CONFIG_CRYPTO_842 is not set # CONFIG_CRYPTO_LZ4 is not set # CONFIG_CRYPTO_LZ4HC is not set -CONFIG_CRYPTO_ZSTD=y +# CONFIG_CRYPTO_ZSTD is not set # # Random Number Generation @@ -3227,7 +2752,6 @@ CONFIG_CRYPTO_ZSTD=y # CONFIG_CRYPTO_USER_API_SKCIPHER is not set # CONFIG_CRYPTO_USER_API_RNG is not set # CONFIG_CRYPTO_USER_API_AEAD is not set -CONFIG_CRYPTO_HASH_INFO=y CONFIG_CRYPTO_HW=y # CONFIG_CRYPTO_DEV_ATMEL_ECC is not set # CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set @@ -3286,14 +2810,11 @@ CONFIG_CRC32_SLICEBY8=y # CONFIG_CRC7 is not set # CONFIG_LIBCRC32C is not set # CONFIG_CRC8 is not set -CONFIG_XXHASH=y # CONFIG_RANDOM32_SELFTEST is not set CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y -CONFIG_ZSTD_COMPRESS=y -CONFIG_ZSTD_DECOMPRESS=y CONFIG_XZ_DEC=y CONFIG_XZ_DEC_X86=y CONFIG_XZ_DEC_POWERPC=y diff --git a/br-ext-chip-hisilicon/configs/hi3516cv6xx_lite_defconfig b/br-ext-chip-hisilicon/configs/hi3516cv6xx_lite_defconfig new file mode 100644 index 0000000000..5723f84d86 --- /dev/null +++ b/br-ext-chip-hisilicon/configs/hi3516cv6xx_lite_defconfig @@ -0,0 +1,100 @@ +# OpenIPC +BR2_OPENIPC_SOC_VENDOR="hisilicon" +BR2_OPENIPC_SOC_MODEL="hi3516cv6xx" +BR2_OPENIPC_SOC_FAMILY="hi3516cv6xx" +# One cv6xx image serves dies that report distinct ids (hi3516cv610, +# hi3516cv608) via fw_printenv/ipcinfo. Upgrade identity comes from +# BUILD_PLATFORM=hi3516cv6xx_lite; these aliases are a defensive route +# for any image/camera that still surfaces the per-die id. +BR2_OPENIPC_SOC_ALIASES="hi3516cv610 hi3516cv608" +BR2_OPENIPC_VARIANT="lite" +BR2_OPENIPC_FLASH_SIZE="8" +# OPENIPC_MAJESTIC defaults to "lite", which is the only cv6xx majestic +# flavor published to OpenIPC S3 — what this variant wants anyway. + +# Architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_EABI=y +BR2_ARM_FPU_NEON_VFPV4=y +BR2_ARM_INSTRUCTIONS_THUMB2=y + +# Toolchain +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/openipc/firmware/releases/download/$(OPENIPC_TOOLCHAIN).tgz" +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-openipc-linux-musleabi" +BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_10=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y +BR2_GCC_VERSION_13_X=y +BR2_TOOLCHAIN_EXTERNAL_CXX=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/openipc/linux/archive/$(OPENIPC_KERNEL).tar.gz" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(EXTERNAL_VENDOR)/board/$(OPENIPC_SOC_FAMILY)/$(BR2_OPENIPC_SOC_MODEL).generic.config" +BR2_ROOTFS_POST_IMAGE_SCRIPT="$(EXTERNAL_VENDOR)/board/$(OPENIPC_SOC_FAMILY)/post-image.sh" +BR2_LINUX_KERNEL_ZIMAGE=y +BR2_LINUX_KERNEL_XZ=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x40018000" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +# BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT is not set +BR2_LINUX_KERNEL_INTREE_DTS_NAME="hi3516cv610-demb" + +# Filesystem +BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL)/package/busybox/busybox.config" +BR2_PACKAGE_UBOOT_TOOLS=y +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set +# Wireless stack omitted — openipc/linux hi3516cv6xx kernel has +# CONFIG_WIRELESS off, so cfg80211/mac80211-dependent USB WiFi drivers +# (mt7601u, rtl8188fu) and wpa_supplicant/wireless-tools have nothing +# to bind to. Re-enable once the kernel config gains the wireless stack. +BR2_TARGET_ROOTFS_CPIO=y +BR2_TARGET_ROOTFS_SQUASHFS=y +BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y +# 1 MiB blocks buy ~430 KiB over the 128 KiB default, measured across the +# four sizes. The cost is decompression buffer per read on a 48 MiB part. +BR2_TARGET_ROOTFS_SQUASHFS_BS_1024K=y +# EXTREME_COMP is Buildroot's switch for the compressor's arch options; for +# xz on ARM it is `-Xbcj arm,armthumb`, so mksquashfs tries the ARM branch +# filters on each block and keeps whichever packs smaller. 52 KiB on this +# rootfs, which is the erase block it needed. Nothing to pay at read time: +# the kernel's xz decoder already carries XZ_DEC_ARM and XZ_DEC_ARMTHUMB. +BR2_TARGET_ROOTFS_SQUASHFS_EXTREME_COMP=y + +# Packages +BR2_PACKAGE_DROPBEAR_OPENIPC=y +BR2_PACKAGE_HISILICON_OPENSDK=y +BR2_PACKAGE_HISILICON_OSDRV_HI3516CV6XX=y +BR2_PACKAGE_IPCTOOL=y +# sysupgrade shells out to curl for the manifest probe and the release +# download, over https. ultimate never states any of this: quirc and uacme +# select libcurl, libwebsockets and mbedtls drag in zlib and the TLS backend. +# lite ships none of those packages, so each has to be asked for by name -- +# without them the options below sit inside a disabled +# `if BR2_PACKAGE_LIBCURL_OPENIPC`, curl is not built at all, and enabling +# only the parent yields a curl linked TLS_NONE against an absent libz. +BR2_PACKAGE_ZLIB=y +BR2_PACKAGE_MBEDTLS_OPENIPC=y +BR2_PACKAGE_LIBCURL_OPENIPC=y +BR2_PACKAGE_LIBCURL_OPENIPC_MBEDTLS=y +BR2_PACKAGE_LIBCURL_OPENIPC_CURL=y +# BR2_PACKAGE_LIBCURL_OPENIPC_PROXY_SUPPORT is not set +# BR2_PACKAGE_LIBCURL_OPENIPC_COOKIES_SUPPORT is not set +# BR2_PACKAGE_LIBCURL_OPENIPC_EXTRA_PROTOCOLS_FEATURES is not set +BR2_PACKAGE_LIBEVENT_OPENIPC=y +BR2_PACKAGE_LIBOGG_OPENIPC=y +BR2_PACKAGE_MAJESTIC=y +BR2_PACKAGE_MAJESTIC_FONTS=y +BR2_PACKAGE_MAJESTIC_WEBUI=y +BR2_PACKAGE_OPUS_OPENIPC=y +BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y +BR2_PACKAGE_OPUS_OPENIPC_HISI_SHIM=y +# protobuf-c is dynamically loaded by the cv6xx-flavored majestic binary +# (libprotobuf-c.so.1 appears in DT_NEEDED but no other config selects +# it — the vendor majestic build was linked against a private protobuf-c +# version). +BR2_PACKAGE_PROTOBUF_C=y +BR2_PACKAGE_YAML_CLI=y diff --git a/general/package/hisilicon-opensdk/hisilicon-opensdk.mk b/general/package/hisilicon-opensdk/hisilicon-opensdk.mk index 1b558487d9..f2685bfee8 100644 --- a/general/package/hisilicon-opensdk/hisilicon-opensdk.mk +++ b/general/package/hisilicon-opensdk/hisilicon-opensdk.mk @@ -519,12 +519,19 @@ endef # Sensor .so files built from source under libraries/sensor/hi3516cv6xx/ # get installed to /usr/lib/sensors/, overwriting any prebuilt vendor # copies that hisilicon-osdrv-hi3516cv6xx may also have installed. +# The .ko are installed unstripped: Buildroot's target-finalize skips *.ko on +# purpose, and nothing here strips them either, so every module ships its +# .symtab, .strtab and a .comment for each object file. --strip-unneeded keeps +# every symbol a relocation or __ksymtab needs (INSTALL_MOD_STRIP=1 in the +# kernel is the same operation); the rest is dead weight on a NOR part. else ifeq ($(OPENIPC_SOC_FAMILY),hi3516cv6xx) HISILICON_OPENSDK_KMOD_DST = $(HISILICON_OPENSDK_KMOD_BASE) define HISILICON_OPENSDK_INSTALL_TARGET_CMDS $(INSTALL) -m 755 -d $(HISILICON_OPENSDK_KMOD_DST) for ko in $(@D)/kernel/open_*.ko; do \ - [ -f $${ko} ] && $(INSTALL) -m 644 -t $(HISILICON_OPENSDK_KMOD_DST) $${ko} || true; \ + [ -f $${ko} ] || continue; \ + $(TARGET_STRIP) --strip-unneeded --remove-section=.comment --remove-section=.note $${ko}; \ + $(INSTALL) -m 644 -t $(HISILICON_OPENSDK_KMOD_DST) $${ko}; \ done $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/lib/sensors $(foreach s,$(HISILICON_OPENSDK_SENSORS), \ @@ -624,11 +631,26 @@ endif # TARGET_FINALIZE_HOOKS (linux package is processed before this one), so # it has already executed by the time we get here — we need a second pass # so modules.dep reflects the post-cleanup state. +# hi3516cv6xx_lite has a 5120 KB rootfs slot in the cv610 u-boot's partition +# table and the V5 module set is a third of it. Eight of the 42 modules are +# never loaded on this family: load_hisilicon has no modprobe for adc, aiisp, +# devstat, spi_dma_transfer, user, user_proc or uvc, and open_svac3e (the SVAC3 +# encoder) is only probed on the 20g/00s/00g dies, for a codec majestic has no +# code for. 60 KB of squashfs together; ultimate keeps all of them. +ifeq ($(OPENIPC_SOC_MODEL)/$(OPENIPC_VARIANT),hi3516cv6xx/lite) +define HISILICON_OPENSDK_PRUNE_CV6XX_LITE + for m in adc aiisp devstat spi_dma_transfer user user_proc uvc svac3e; do \ + rm -f $(TARGET_DIR)/lib/modules/*/hisilicon/open_$$m.ko; \ + done +endef +endif + ifneq ($(filter hi3516cv500 hi3516cv200 hi3516cv100 hi3516av100 hi3519v101 hi3516cv300 hi3520dv200 hi3516cv6xx hi3519dv500,$(OPENIPC_SOC_FAMILY)),) define HISILICON_OPENSDK_FINALIZE_MODULES $(if $(BR2_PER_PACKAGE_DIRECTORIES),rsync -a $(PER_PACKAGE_DIR)/hisilicon-opensdk/target/lib/modules/ $(TARGET_DIR)/lib/modules/) rm -rf $(TARGET_DIR)/lib/modules/*/extra/open_*.ko $(HISILICON_OPENSDK_DEDUP_CV500_NEO) + $(HISILICON_OPENSDK_PRUNE_CV6XX_LITE) $(LINUX_RUN_DEPMOD) endef HISILICON_OPENSDK_TARGET_FINALIZE_HOOKS += HISILICON_OPENSDK_FINALIZE_MODULES